Gets basic information from a binary stream to allow correct processing of
    the attribute header.

    This function allows the interpretation of the Attribute type, attribute length
    and if the attribute is non resident.

    Args:
        binary_view (memoryview of bytearray) - A binary stream with the
            information of the attribute

    Returns:
        An tuple with the attribute type, the attribute length, in bytes, and
        if the attribute is resident or not.

def get_attr_info(binary_view):
    '''Gets basic information from a binary stream to allow correct processing of
    the attribute header.

    This function allows the interpretation of the Attribute type, attribute length
    and if the attribute is non resident.

    Args:
        binary_view (memoryview of bytearray) - A binary stream with the
            information of the attribute

    Returns:
        An tuple with the attribute type, the attribute length, in bytes, and
        if the attribute is resident or not.
    '''
    global _ATTR_BASIC

    attr_type, attr_len, non_resident = _ATTR_BASIC.unpack(binary_view[:9])

    return (AttrTypes(attr_type), attr_len, bool(non_resident))