Subscriber

Subscriber sind eine spezifische Form von Adaptern, die Verwendung findet, wenn alle Adapter eines Objekts zu einem Adapter zusammengefasst werden sollen.

Subscriber registrieren

Subscriber lassen sich registrieren mit registerSubscriptionAdapter.

>>> components.registerSubscriptionAdapter(tests.A1_2)
... # doctest: +NORMALIZE_WHITESPACE
Registered event:
SubscriptionRegistration(<Components comps>, [I1], IA2, u'', A1_2, u'')

Subscriber bereitstellen

Subscriber können bereitgestellt werden mit provideSubscriptionAdapter.

>>> component.provideSubscriptionAdapter(SingleLineSummary)
>>> component.provideSubscriptionAdapter(AdequateLength)

>>> doc = Document("A\nDocument", "blah")
>>> [adapter.validate()
...  for adapter in component.subscribers([doc], IValidate)
...  if adapter.validate()]
['Summary should only have one line', 'too short']

Subscriber verwenden

Mit subscribers erhalten Sie die Subscriber der jeweiligen Komponente.

>>> doc = Document("A\nDocument", "blah")
>>> [adapter.validate()
...  for adapter in component.subscribers([doc], IValidate)
...  if adapter.validate()]
['Summary should only have one line', 'too short']

Informationen zu Subscribern erhalten

Der Name und die Factory-Methode eines Subscribers sowie die Angabe, ob der Subscriber erforderlich ist, erhalten Sie mit provided, factory und required aus registeredSubscriptionAdapters:

>>> for registration in sorted(
...     components.registeredSubscriptionAdapters()):
...     print registration.required
...     print registration.provided, registration.name
...     print registration.factory, registration.info

Subscriber löschen

Subscriber lassen sich löschen mit unregisterSubscriptionAdapter.

>>> components.unregisterSubscriptionAdapter(tests.A1_2)
... # doctest: +NORMALIZE_WHITESPACE
Unregistered event:
SubscriptionRegistration(<Components comps>, [I1], IA2, u'', A1_2, '')
True