server/hook.py
branchstable
changeset 5116 a2ce436e00ad
parent 5093 8d073d2e089d
child 5160 27d4cab5db03
child 5191 6d182c7d4392
equal deleted inserted replaced
5115:2e43ef618d14 5116:a2ce436e00ad
    73                 if not cls.enabled:
    73                 if not cls.enabled:
    74                     warn('[3.6] %s: enabled is deprecated' % cls)
    74                     warn('[3.6] %s: enabled is deprecated' % cls)
    75                     self.unregister(cls)
    75                     self.unregister(cls)
    76 
    76 
    77     def register(self, obj, **kwargs):
    77     def register(self, obj, **kwargs):
    78         try:
       
    79             iter(obj.events)
       
    80         except AttributeError:
       
    81             raise
       
    82         except:
       
    83             raise Exception('bad .events attribute %s on %s.%s' % (
       
    84                 obj.events, obj.__module__, obj.__name__))
       
    85         for event in obj.events:
    78         for event in obj.events:
    86             if event not in ALL_HOOKS:
    79             if event not in ALL_HOOKS:
    87                 raise Exception('bad event %s on %s.%s' % (
    80                 raise Exception('bad event %s on %s.%s' % (
    88                     event, obj.__module__, obj.__name__))
    81                     event, obj.__module__, obj.__name__))
    89         super(HooksRegistry, self).register(obj, **kwargs)
    82         super(HooksRegistry, self).register(obj, **kwargs)
   205     order = 0
   198     order = 0
   206     # XXX deprecated
   199     # XXX deprecated
   207     enabled = True
   200     enabled = True
   208 
   201 
   209     @classproperty
   202     @classproperty
   210     def __registries__(self):
   203     def __registries__(cls):
   211         return ['%s_hooks' % ev for ev in self.events]
   204         try:
       
   205             return ['%s_hooks' % ev for ev in cls.events]
       
   206         except AttributeError:
       
   207             raise
       
   208         except TypeError:
       
   209             raise Exception('bad .events attribute %s on %s.%s' % (
       
   210                 cls.events, cls.__module__, cls.__name__))
   212 
   211 
   213     @classproperty
   212     @classproperty
   214     def __regid__(cls):
   213     def __regid__(cls):
   215         warn('[3.6] %s.%s: please specify an id for your hook'
   214         warn('[3.6] %s.%s: please specify an id for your hook'
   216              % (cls.__module__, cls.__name__), DeprecationWarning)
   215              % (cls.__module__, cls.__name__), DeprecationWarning)