'Remove all Attributes on this object.
Args:
category (str, optional): If given, clear only Attributes
of this category.
accessing_obj (object, optional): If given, check the
`attredit` lock on each Attribute before continuing.
default_access (bool, optional): Use this permission as
fallback if `access_obj` is given but there is no lock of
type `attredit` on the Attribute in question.'

def clear(self, category=None, accessing_obj=None, default_access=True):

    if accessing_obj:
        [attr.delete() for attr in self._cache.values() if (attr and attr.access(accessing_obj, self._attredit, default=default_access))]
    else:
        [attr.delete() for attr in self._cache.values() if (attr and attr.pk)]
    self._cache = {}
    self._catcache = {}
    self._cache_complete = False
