cwvreg.py
branchstable
changeset 5035 8469d0acd949
parent 4996 45ce27d538a1
child 5080 cfc7c2b24f9e
equal deleted inserted replaced
5034:4781870e97d9 5035:8469d0acd949
    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: