'getattr() override for types such as Zope interfaces.'

@staticmethod
def get_attr(obj, name, *defargs):

    for (typ, func) in AutoDirective._special_attrgetters.iteritems():
        if isinstance(obj, typ):
            return func(obj, name, *defargs)
    return safe_getattr(obj, name, *defargs)
