-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathevents.py
More file actions
53 lines (39 loc) · 1.59 KB
/
events.py
File metadata and controls
53 lines (39 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from node.behaviors import EventAttribute # noqa
from node.behaviors import Events
from node.behaviors import suppress_events # noqa
from node.behaviors import UnknownEvent # noqa
from node.interfaces import INodeAddedEvent
from node.interfaces import INodeCreatedEvent
from node.interfaces import INodeDetachedEvent
from node.interfaces import INodeModifiedEvent
from node.interfaces import INodeRemovedEvent
from plumber import plumbing
from zope.interface import implementer
from zope.lifecycleevent import ObjectAddedEvent
from zope.lifecycleevent import ObjectCreatedEvent
from zope.lifecycleevent import ObjectModifiedEvent
from zope.lifecycleevent import ObjectRemovedEvent
###############################################################################
# Zope lifecycle events for ILifecycle
###############################################################################
@implementer(INodeCreatedEvent)
class NodeCreatedEvent(ObjectCreatedEvent):
pass
@implementer(INodeAddedEvent)
class NodeAddedEvent(ObjectAddedEvent):
pass
@implementer(INodeModifiedEvent)
class NodeModifiedEvent(ObjectModifiedEvent):
pass
@implementer(INodeRemovedEvent)
class NodeRemovedEvent(ObjectRemovedEvent):
pass
@implementer(INodeDetachedEvent)
class NodeDetachedEvent(ObjectRemovedEvent):
pass
###############################################################################
# Event dispatcher using IEvents plumbing behavior
###############################################################################
@plumbing(Events)
class EventDispatcher(object):
"""Object providing event dispatching."""