equal
deleted
inserted
replaced
72 if not cls.enabled: |
72 if not cls.enabled: |
73 warn('[3.6] %s: enabled is deprecated' % cls) |
73 warn('[3.6] %s: enabled is deprecated' % cls) |
74 self.unregister(cls) |
74 self.unregister(cls) |
75 |
75 |
76 def register(self, obj, **kwargs): |
76 def register(self, obj, **kwargs): |
77 for event in obj.events: |
77 obj.check_events() |
78 if event not in ALL_HOOKS: |
|
79 raise Exception('bad event %s on %s.%s' % ( |
|
80 event, obj.__module__, obj.__name__)) |
|
81 super(HooksRegistry, self).register(obj, **kwargs) |
78 super(HooksRegistry, self).register(obj, **kwargs) |
82 |
79 |
83 def call_hooks(self, event, session=None, **kwargs): |
80 def call_hooks(self, event, session=None, **kwargs): |
84 kwargs['event'] = event |
81 kwargs['event'] = event |
85 if session is None: |
82 if session is None: |
196 category = None |
193 category = None |
197 order = 0 |
194 order = 0 |
198 # XXX deprecated |
195 # XXX deprecated |
199 enabled = True |
196 enabled = True |
200 |
197 |
201 @classproperty |
198 @classmethod |
202 def __registries__(cls): |
199 def check_events(cls): |
203 try: |
200 try: |
204 return ['%s_hooks' % ev for ev in cls.events] |
201 for event in cls.events: |
|
202 if event not in ALL_HOOKS: |
|
203 raise Exception('bad event %s on %s.%s' % ( |
|
204 event, cls.__module__, cls.__name__)) |
205 except AttributeError: |
205 except AttributeError: |
206 raise |
206 raise |
207 except TypeError: |
207 except TypeError: |
208 raise Exception('bad .events attribute %s on %s.%s' % ( |
208 raise Exception('bad .events attribute %s on %s.%s' % ( |
209 cls.events, cls.__module__, cls.__name__)) |
209 cls.events, cls.__module__, cls.__name__)) |
|
210 |
|
211 @classproperty |
|
212 def __registries__(cls): |
|
213 cls.check_events() |
|
214 return ['%s_hooks' % ev for ev in cls.events] |
210 |
215 |
211 @classproperty |
216 @classproperty |
212 def __regid__(cls): |
217 def __regid__(cls): |
213 warn('[3.6] %s.%s: please specify an id for your hook' |
218 warn('[3.6] %s.%s: please specify an id for your hook' |
214 % (cls.__module__, cls.__name__), DeprecationWarning) |
219 % (cls.__module__, cls.__name__), DeprecationWarning) |