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, {}) |