vregistry.py
branchtls-sprint
changeset 695 356da23c57f1
parent 693 cf0817dfc787
child 697 06807984e610
equal deleted inserted replaced
694:520661be60e4 695:356da23c57f1
   241     # methods for explicit (un)registration ###################################
   241     # methods for explicit (un)registration ###################################
   242 
   242 
   243 #     def clear(self, key):
   243 #     def clear(self, key):
   244 #         regname, oid = key.split('.')
   244 #         regname, oid = key.split('.')
   245 #         self[regname].pop(oid, None)
   245 #         self[regname].pop(oid, None)
   246         
   246     def register_all(self, objects, modname, butclasses=()):
       
   247         for obj in objects:
       
   248             try:
       
   249                 if obj.__module__ != modname or obj in butclasses:
       
   250                     continue
       
   251                 oid = obj.id
       
   252             except AttributeError:
       
   253                 continue
       
   254             if oid:
       
   255                 self.register(obj)
       
   256                 
   247     def register(self, obj, registryname=None, oid=None, clear=False):
   257     def register(self, obj, registryname=None, oid=None, clear=False):
   248         """base method to add an object in the registry"""
   258         """base method to add an object in the registry"""
   249         registryname = registryname or obj.__registry__
   259         registryname = registryname or obj.__registry__
   250         oid = oid or obj.id
   260         oid = oid or obj.id
   251         registry = self._registries.setdefault(registryname, {})
   261         registry = self._registries.setdefault(registryname, {})