

def __getattribute__(self, key):
    try:
        return super(AttrDictWrapper, self).__getattribute__(key)
    except AttributeError:
        try:
            return self.__dict__['_mapping'].__getattribute__(key)
        except AttributeError:
            try:
                obj = self.__dict__['_mapping'].__getitem__(key)
                if hasattr(obj, 'keys'):
                    return self.__class__(obj)
                else:
                    return obj
            except KeyError as err:
                raise AttributeError(("no attribute or key '%s' found (%s)." % (key, err)))

dataset/ETHPy150Open kdart/pycopia/aid/pycopia/dictlib.py AttrDictWrapper.__getattribute__/original