[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