Zope3 ノード操作イベント

Zope3 にはコンテンツの追加や移動などノード操作に関する特殊なイベントを通知する機能があります。

from zope.app.container.interfaces import IObjectAddedEvent, IObjectMovedEvent, IObjectRemovedEvent, IContainerModifiedEvent
from zope.app.event.interfaces import IObjectCreatedEvent, IObjectCopiedEvent, IObjectModifiedEvent, IObjectContentModifiedEvent, IObjectAnnotationsModifiedEvent

名前を見れば大体どんな感じか分かります。
注意点としては、INTERFACE.providedBy() でイベントオブジェクトを調べると継承元のインターフェースも真になる点です。IObjectAddedEvent と IObjectRemovedEvent は IObjectMovedEvent から継承しているので、IObjectMovedEvent.providedBy() ではイベントオブジェクトが IObjectAddedEvent と IObjectRemovedEvent の場合も真になります。
また、configure.zcml でイベント種別を interface で指定しますが、ここでも IObjectMovedEvent を指定すると IObjectAddedEvent と IObjectRemovedEvent が送られてくるようです。