equal
deleted
inserted
replaced
19 RegistryOutOfDate, CW_EVENT_MANAGER, onevent) |
19 RegistryOutOfDate, CW_EVENT_MANAGER, onevent) |
20 from cubicweb.utils import dump_class |
20 from cubicweb.utils import dump_class |
21 from cubicweb.vregistry import VRegistry, Registry, class_regid |
21 from cubicweb.vregistry import VRegistry, Registry, class_regid |
22 from cubicweb.rtags import RTAGS |
22 from cubicweb.rtags import RTAGS |
23 |
23 |
|
24 def clear_rtag_objects(): |
|
25 for rtag in RTAGS: |
|
26 rtag.clear() |
24 |
27 |
25 def use_interfaces(obj): |
28 def use_interfaces(obj): |
26 """return interfaces used by the given object by searching for implements |
29 """return interfaces used by the given object by searching for implements |
27 selectors, with a bw compat fallback to accepts_interfaces attribute |
30 selectors, with a bw compat fallback to accepts_interfaces attribute |
28 """ |
31 """ |
260 self.initialized = False |
263 self.initialized = False |
261 self.reset() |
264 self.reset() |
262 if self.config.mode != 'test': |
265 if self.config.mode != 'test': |
263 # don't clear rtags during test, this may cause breakage with |
266 # don't clear rtags during test, this may cause breakage with |
264 # manually imported appobject modules |
267 # manually imported appobject modules |
265 @onevent('before-registry-reload') |
268 CW_EVENT_MANAGER.bind('before-registry-reload', clear_rtag_objects) |
266 def clear_rtag_objects(): |
|
267 for rtag in RTAGS: |
|
268 rtag.clear() |
|
269 |
269 |
270 def setdefault(self, regid): |
270 def setdefault(self, regid): |
271 try: |
271 try: |
272 return self[regid] |
272 return self[regid] |
273 except RegistryNotFound: |
273 except RegistryNotFound: |