'Return all Attribute objects on this object.
Args:
accessing_obj (object, optional): Check the `attrread`
lock on each attribute before returning them. If not
given, this check is skipped.
default_access (bool, optional): Use this permission as a
fallback if `accessing_obj` is given but one or more
Attributes has no lock of type `attrread` defined on them.
Returns:
Attributes (list): All the Attribute objects (note: Not
their values!) in the handler.'

def all(self, accessing_obj=None, default_access=True):

    if (not self._cache_complete):
        self._fullcache()
    attrs = sorted([attr for attr in self._cache.values() if attr], key=(lambda o: o.id))
    if accessing_obj:
        return [attr for attr in attrs if attr.access(accessing_obj, self._attredit, default=default_access)]
    else:
        return attrs
