dip.publish
The dip.publish module implements the infrastructure for publishing
events about a model and for subscribing to those events.
-
class dip.publish.IPublication
Base class: Interface
The IPublication interface defines the API to be implemented by a model
that represents an event related to a published model.
-
event = Str()
The event related to the model. The following events are considered to
be well known.
- ‘dip.events.opened’
- occurs once just after the model has been opened or created.
- ‘dip.events.closed’
- occurs once just before the model is closed.
- ‘dip.event.active’
- occurs whenever the model becomes active.
- ‘dip.events.inactive’
- occurs whenever the model becomes inactive.
-
model = Any()
- The model being published.
-
class dip.publish.IPublicationManager
Base class: Interface
The IPublicationManager interface defines the API of a publication
manager.
-
publishers = List(IPublisher)
- The list of publishers.
-
subscribers = List(ISubscriber)
- The list of subscribers.
-
class dip.publish.IPublisher
Base class: Interface
The IPublisher interface defines the API to be implemented by an object
that publishes an event related to a model to other objects that
implement the ISubscriber interface.
-
publication = Instance(IPublication)
- The publication we have published.
-
class dip.publish.ISubscriber
Base class: Interface
The ISubscriber interface defines the API to be implemented by an
object that subscribes to the publication of events related to a
model by other objects that implement the
IPublisher interface.
-
subscription = Instance(IPublication)
- The publication we have subscribed to.
-
subscription_type = Instance(type)
- The type of model that the subscriber is interested in. If it is
None then publications related to all types of model will be
subscribed to.
-
class dip.publish.Publication
Base class: Model
The Publication class is the default implementation of the
IPublication interface.