def invalidate(self): self._ldap_users = None self.clear() def __iter__(self): try: for key in self.ldap_users: yield key except Exception, e: # XXX: explicit exception print e iterkeys = __iter__ def __getitem__(self, name): try: return BaseNode.__getitem__(self, name) except KeyError: if not name in self.iterkeys(): raise KeyError(name) user = User(self.ldap_users[name], name, self) self[name] = user return user info = BaseNodeInfo() info.title = 'Users' info.description = 'Users Container.' info.node = Users info.addables = ['user'] registerNodeInfo('users', info)