def __getitem__(self, name): p = self.__keys__.pos(Obj.classOfInstance(name)) if p < len(self.__keys__): for key in self.__keys__[p:]: if Obj.isInstance(name, key): return super(SubTypeMap, self).__getitem__(key) raise AttributeError(name)
def __getitem__(self, name): try: return super(DescMap, self).__getitem__(name) except AttributeError: pass except KeyError: pass if type(name) == types.InstanceType: try: return super(DescMap, self).__getitem__(Obj.classOfInstance(name)) except AttributeError: pass except KeyError: pass try: return super(DescMap, self).__getitem__(type(name)) except AttributeError: pass except KeyError: pass raise KeyError(name, self)