[Checkins] SVN: zope.lifecycleevent/trunk/ add convenience functions for posting events, with interface docs
Fred Drake
fdrake at gmail.com
Thu Mar 17 10:42:54 EDT 2011
Log message for revision 121003:
add convenience functions for posting events, with interface docs
Changed:
U zope.lifecycleevent/trunk/CHANGES.txt
U zope.lifecycleevent/trunk/setup.py
U zope.lifecycleevent/trunk/src/zope/lifecycleevent/__init__.py
U zope.lifecycleevent/trunk/src/zope/lifecycleevent/interfaces.py
-=-
Modified: zope.lifecycleevent/trunk/CHANGES.txt
===================================================================
--- zope.lifecycleevent/trunk/CHANGES.txt 2011-03-17 14:09:57 UTC (rev 121002)
+++ zope.lifecycleevent/trunk/CHANGES.txt 2011-03-17 14:42:54 UTC (rev 121003)
@@ -2,10 +2,11 @@
CHANGES
=======
-3.6.3 (unreleased)
+3.7.0 (2011-03-17)
------------------
-- Nothing changed yet.
+- Added convenience functions to parallel zope.lifecycleevent.modified
+ for the other events defined in this package.
3.6.2 (2010-09-25)
Modified: zope.lifecycleevent/trunk/setup.py
===================================================================
--- zope.lifecycleevent/trunk/setup.py 2011-03-17 14:09:57 UTC (rev 121002)
+++ zope.lifecycleevent/trunk/setup.py 2011-03-17 14:42:54 UTC (rev 121003)
@@ -26,7 +26,7 @@
setup(
name='zope.lifecycleevent',
- version='3.6.3dev',
+ version='3.7.0dev',
url='http://pypi.python.org/pypi/zope.lifecycleevent',
author='Zope Foundation and Contributors',
author_email='zope-dev at zope.org',
Modified: zope.lifecycleevent/trunk/src/zope/lifecycleevent/__init__.py
===================================================================
--- zope.lifecycleevent/trunk/src/zope/lifecycleevent/__init__.py 2011-03-17 14:09:57 UTC (rev 121002)
+++ zope.lifecycleevent/trunk/src/zope/lifecycleevent/__init__.py 2011-03-17 14:42:54 UTC (rev 121003)
@@ -16,9 +16,10 @@
__docformat__ = 'restructuredtext'
from zope.component.interfaces import ObjectEvent
-from zope.interface import implements
+from zope.interface import implements, moduleProvides
from zope.event import notify
+from zope.lifecycleevent.interfaces import IZopeLifecycleEvent
from zope.lifecycleevent.interfaces import IObjectCreatedEvent
from zope.lifecycleevent.interfaces import IObjectModifiedEvent
from zope.lifecycleevent.interfaces import IObjectCopiedEvent
@@ -29,12 +30,19 @@
from zope.lifecycleevent.interfaces import ISequence
+moduleProvides(IZopeLifecycleEvent)
+
+
class ObjectCreatedEvent(ObjectEvent):
"""An object has been created"""
implements(IObjectCreatedEvent)
+def created(object):
+ notify(ObjectCreatedEvent(object))
+
+
class Attributes(object) :
"""
Describes modified attributes of an interface.
@@ -54,7 +62,7 @@
self.attributes = attributes
-class Sequence(object) :
+class Sequence(object):
"""
Describes modified keys of an interface.
@@ -110,6 +118,11 @@
super(ObjectCopiedEvent, self).__init__(object)
self.original = original
+
+def copied(object, original):
+ notify(ObjectCopiedEvent(object, original))
+
+
class ObjectMovedEvent(ObjectEvent):
"""An object has been moved"""
@@ -122,6 +135,11 @@
self.newParent = newParent
self.newName = newName
+
+def moved(object, oldParent, oldName, newParent, newName):
+ notify(ObjectCreatedEvent(object, oldParent, oldName, newParent, newName))
+
+
class ObjectAddedEvent(ObjectMovedEvent):
"""An object has been added to a container"""
@@ -134,6 +152,11 @@
newName = object.__name__
ObjectMovedEvent.__init__(self, object, None, None, newParent, newName)
+
+def added(object, newParent=None, newName=None):
+ notify(ObjectAddedEvent(object, newParent, newName))
+
+
class ObjectRemovedEvent(ObjectMovedEvent):
"""An object has been removed from a container"""
@@ -146,3 +169,6 @@
oldName = object.__name__
ObjectMovedEvent.__init__(self, object, oldParent, oldName, None, None)
+
+def removed(object, oldParent=None, oldName=None):
+ notify(ObjectRemovedEvent(object, oldParent, oldName))
Modified: zope.lifecycleevent/trunk/src/zope/lifecycleevent/interfaces.py
===================================================================
--- zope.lifecycleevent/trunk/src/zope/lifecycleevent/interfaces.py 2011-03-17 14:09:57 UTC (rev 121002)
+++ zope.lifecycleevent/trunk/src/zope/lifecycleevent/interfaces.py 2011-03-17 14:42:54 UTC (rev 121003)
@@ -18,6 +18,58 @@
from zope.interface import Interface, Attribute
import zope.component.interfaces
+
+class IZopeLifecycleEvent(Interface):
+
+ def created(object):
+ """Send an IObjectCreatedEvent for `object`."""
+
+ def modified(object, *descriptions):
+ """Send an IObjectModifiedEvent for `object`.
+
+ `descriptions` is a sequence of interfaces or fields which were
+ updated.
+
+ """
+
+ def copied(object, original):
+ """Send an IObjectCopiedEvent for object.
+
+ `original` is the object the copy was created from.
+
+ """
+
+ def moved(object, oldParent, oldName, newParent, newName):
+ """Send an IObjectMovedEvent for object.
+
+ `oldParent` is the container `object` was removed from.
+ `oldName` was the name used to store `object` in `oldParent`.
+ `newParent` is the container `object` was added to.
+ `newName` is the name used to store `object` in `newParent`.
+
+ """
+
+ def added(object, newParent=None, newName=None):
+ """Send an IObjectAddedEvent for object.
+
+ `newParent` is the container `object` was added to.
+ `newName` is the name used to store `object` in the container.
+ These will be determined object.__parent__ and object.__name__
+ if None.
+
+ """
+
+ def removed(object, oldParent=None, oldName=None):
+ """Send an IObjectRemovedEvent for object.
+
+ `oldParent` is the container `object` was removed from.
+ `oldName` was the name used to store `object` in `oldParent`.
+ These will be determined object.__parent__ and object.__name__
+ if None.
+
+ """
+
+
class IObjectCreatedEvent(zope.component.interfaces.IObjectEvent):
"""An object has been created.
@@ -83,6 +135,3 @@
class IObjectRemovedEvent(IObjectMovedEvent):
"""An object has been removed from a container."""
-
-
-
More information about the checkins
mailing list