design_pytterns.observer package

EventPublisher class

class design_pytterns.observer.EventPublisher(events: Sequence[Hashable])

Bases: object

Event based Publisher-pattern.

Parameters

events (Sequence) – The sequence that contains all the possible hashable events

notify(event: Hashable, *args: Any, **kwargs: Any)None

Execute the update method of all the event subscribers.

Parameters
  • event (Hashable) – The event which all its subscribers are notified.

  • *args (Any) – Variable length contextual arguments.

  • **kwargs (Any) – Contextual keyword arguments.

subscribe(event: Hashable, subscriber: design_pytterns.observer.subscriber.Subscriber)None

Register a new subscriber for an event.

If the subscriber instance is already registered for the event the subscription is discarded.

Parameters
  • event (Hashable) – The event which the subscriber registers to.

  • subscriber (Subscriber) – The subscriber instance to register.

unsubscribe(event: Hashable, subscriber: design_pytterns.observer.subscriber.Subscriber)None

Deregister the subscriber from an event.

If the subscriber instance is unknown for the given event, the unsubscription is discarded.

Parameters
  • event (Hashable) – The event which the subscriber deregister from.

  • subscriber (Subscriber) – The subscriber instance to deregister.

Publisher class

class design_pytterns.observer.Publisher

Bases: object

Generic Publisher-pattern.

notify(*args: Any, **kwargs: Any)None

Execute the update method of all the registered subscribers.

Parameters
  • *args (Any) – Variable length contextual arguments.

  • **kwargs (Any) – Contextual keyword arguments.

subscribe(subscriber: design_pytterns.observer.subscriber.Subscriber)None

Register a new subscriber.

If the subscriber instance is already registered the subscription is discarded.

Parameters

subscriber (Subscriber) – The subscriber instance to register.

unsubscribe(subscriber: design_pytterns.observer.subscriber.Subscriber)None

Deregister the subscriber.

If the subscriber instance is unknown, the unsubscription is discarded.

Parameters

subscriber (Subscriber) – The subscriber instance to deregister.

Subscriber

class design_pytterns.observer.Subscriber

Bases: abc.ABC

Abstract subscriber. Define the generic update method.

abstract update(*args: Any, **kwargs: Any)None

Abstract update method.

Parameters
  • *args (Any) – Variable length arguments.

  • **kwargs (Any) – Arbitrary keyword arguments.