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