Repository URL to install this package:
|
Version:
4.1.2 ▾
|
cdocutils.nodes
document
q)q}q(UtagnameqUdocumentqUreporterqNU
attributesq}q(Udupnamesq ]Ubackrefsq
]UsourceXE /home/tseaver/projects/Zope/Z3/zope.interface/docs/foodforthought.rstqUidsq]Uclassesq
]Unamesq]uUparse_messagesq]qU
decorationqNU citationsq]qU rawsourceqU U nametypesq}qX food-based subscription examplesqNsUsettingsq(cdocutils.frontend
Values
qoq}q(Upep_referencesqNUoutput_encoding_error_handlerqUstrictqU
halt_levelqKU
source_urlq NU
dump_settingsq!NUdoctitle_xformq"Udump_pseudo_xmlq#NU tab_widthq$KU id_prefixq%U Utitleq&NUembed_stylesheetq'U
docinfo_xformq(KUfootnote_backlinksq)KUerror_encodingq*UUTF-8q+Uauto_id_prefixq,Uidq-U
language_codeq.Uenq/U datestampq0NUdump_transformsq1NUoutput_encodingq2Uutf-8q3Uexit_status_levelq4KUstrict_visitorq5NU_disable_configq6NUfile_insertion_enabledq7U tracebackq8Urecord_dependenciesq9NUstrip_commentsq:NUdebugq;NU generatorq<NUgettext_compactq=Uenvq>NU
strip_classesq?NUpep_file_url_templateq@Upep-%04dqAUinput_encoding_error_handlerqBhUexpose_internalsqCNUrfc_referencesqDNU
toc_backlinksqEUentryqFUtrim_footnote_reference_spaceqGU_sourceqHhUwarning_streamqINUinput_encodingqJU utf-8-sigqKUsectsubtitle_xformqLUsource_linkqMNUconfigqNNU
sectnum_xformqOKUerror_encoding_error_handlerqPUbackslashreplaceqQU
_config_filesqR]Udump_internalsqSNUsmart_quotesqTUcloak_email_addressesqUUraw_enabledqVKUstrip_elements_with_classesqWNUpep_base_urlqXU https://www.python.org/dev/peps/qYUreport_levelqZKUrfc_base_urlq[Uhttps://tools.ietf.org/html/q\U_destinationq]NUsyntax_highlightq^Ulongq_ubUautofootnote_refsq`]qaU
footnote_refsqb}qcUid_startqdKU
citation_refsqe}qfUsymbol_footnote_refsqg]qhUtransform_messagesqi]qjU footnotesqk]qlUnameidsqm}qnhU food-based-subscription-examplesqosUrefnamesqp}qqUtransformerqrNUidsqs}qthocdocutils.nodes
section
qu)qv}qw(hhhUsectionqxh}qy(h
]h ]h]qzhah]q{hoah
]uUlineq|KUsourceq}hhU Uparentq~hUchildrenq]q(cdocutils.nodes
title
q)q}q(hhhh&h}q(h
]h ]h]h]h
]uh|Kh}hhX Food-based subscription examplesq
h~hvh]qcdocutils.nodes
Text
qX Food-based subscription examplesq
q}q(hh
h~hubaubcdocutils.nodes
paragraph
q)q}q(hhhU paragraphqh}q(h
]h ]h]h]h
]uh|Kh}hhXI This file gives more subscription examples using a cooking-based example:qh~hvh]qhXI This file gives more subscription examples using a cooking-based example:q
q}q(hhh~hubaubcdocutils.nodes
literal_block
q)q}q(hhhU
literal_blockqh}q(h ]U xml:spaceqUpreserveqh
]UtestnodetypeX doctesth
]Ugroups]qUdefaultqah]Uoptionsq}h]uh|Kh}hhX+ >>> from zope.interface.adapter import AdapterRegistry
>>> registry = AdapterRegistry()
>>> import zope.interface
>>> class IAnimal(zope.interface.Interface):
... pass
>>> class IPoultry(IAnimal):
... pass
>>> class IChicken(IPoultry):
... pass
>>> class ISeafood(IAnimal):
... passh~hvh]qhX+ >>> from zope.interface.adapter import AdapterRegistry
>>> registry = AdapterRegistry()
>>> import zope.interface
>>> class IAnimal(zope.interface.Interface):
... pass
>>> class IPoultry(IAnimal):
... pass
>>> class IChicken(IPoultry):
... pass
>>> class ISeafood(IAnimal):
... passq
q¡}q¢(hU h~hubaubh)q£}q¤(hhhhh}q¥(h
]h ]h]h]h
]uh|Kh}hhXf Adapting to some other interface for which there is no
subscription adapter returns an empty sequence:q¦h~hvh]q§hXf Adapting to some other interface for which there is no
subscription adapter returns an empty sequence:q¨
q©}qª(hh¦h~h£ubaubh)q«}q¬(hhhhh}q(h ]hhh
]UtestnodetypeX doctesth
]Ugroups]q®hah]h}h]uh|Kh}hhXî >>> class IRecipe(zope.interface.Interface):
... pass
>>> class ISausages(IRecipe):
... pass
>>> class INoodles(IRecipe):
... pass
>>> class IKFC(IRecipe):
... pass
>>> list(registry.subscriptions([IPoultry], IRecipe))
[]h~hvh]q¯hXî >>> class IRecipe(zope.interface.Interface):
... pass
>>> class ISausages(IRecipe):
... pass
>>> class INoodles(IRecipe):
... pass
>>> class IKFC(IRecipe):
... pass
>>> list(registry.subscriptions([IPoultry], IRecipe))
[]q°
q±}q²(hU h~h«ubaubh)q³}q´(hhhhh}qµ(h
]h ]h]h]h
]uh|K(h}hhX unless we define a subscription:q¶h~hvh]q·hX unless we define a subscription:q¸
q¹}qº(hh¶h~h³ubaubh)q»}q¼(hhhhh}q½(h ]hhh
]UtestnodetypeX doctesth
]Ugroups]q¾hah]h}h]uh|K*h}hhX} >>> registry.subscribe([IAnimal], ISausages, 'sausages')
>>> list(registry.subscriptions([IPoultry], ISausages))
['sausages']h~hvh]q¿hX} >>> registry.subscribe([IAnimal], ISausages, 'sausages')
>>> list(registry.subscriptions([IPoultry], ISausages))
['sausages']qqÁ}qÂ(hU h~h»ubaubh)qÃ}qÄ(hhhhh}qÅ(h
]h ]h]h]h
]uh|K0h}hhX( And define another subscription adapter:qÆh~hvh]qÇhX( And define another subscription adapter:qȅqÉ}qÊ(hhÆh~hÃubaubh)qË}qÌ(hhhhh}qÍ(h ]hhh
]UtestnodetypeX doctesth
]Ugroups]qÎhah]h}h]uh|K2h}hhXQ >>> registry.subscribe([IPoultry], INoodles, 'noodles')
>>> meals = list(registry.subscriptions([IPoultry], IRecipe))
>>> meals.sort()
>>> meals
['noodles', 'sausages']
>>> registry.subscribe([IChicken], IKFC, 'kfc')
>>> meals = list(registry.subscriptions([IChicken], IRecipe))
>>> meals.sort()
>>> meals
['kfc', 'noodles', 'sausages']h~hvh]qÏhXQ >>> registry.subscribe([IPoultry], INoodles, 'noodles')
>>> meals = list(registry.subscriptions([IPoultry], IRecipe))
>>> meals.sort()
>>> meals
['noodles', 'sausages']
>>> registry.subscribe([IChicken], IKFC, 'kfc')
>>> meals = list(registry.subscriptions([IChicken], IRecipe))
>>> meals.sort()
>>> meals
['kfc', 'noodles', 'sausages']qЅqÑ}qÒ(hU h~hËubaubh)qÓ}qÔ(hhhhh}qÕ(h
]h ]h]h]h
]uh|K@h}hhX* And the answer for poultry hasn't changed:qÖh~hvh]q×hX* And the answer for poultry hasn't changed:qqÙ}qÚ(hhÖh~hÓubaubh)qÛ}qÜ(hhhhh}qÝ(h ]hhh
]UtestnodetypeX doctesth
]Ugroups]qÞhah]h}h]uh|KBh}hhXp >>> meals = list(registry.subscriptions([IPoultry], IRecipe))
>>> meals.sort()
>>> meals
['noodles', 'sausages']h~hvh]qßhXp >>> meals = list(registry.subscriptions([IPoultry], IRecipe))
>>> meals.sort()
>>> meals
['noodles', 'sausages']qŁqá}qâ(hU h~hÛubaubeubsUsymbol_footnotesqã]qähhUindirect_targetsqå]qæUsubstitution_namesqç}qèUcurrent_lineqéNUsubstitution_defsqê}qëUsymbol_footnote_startqìK Uautofootnote_startqíKU
autofootnotesqî]qïh]qðhvaUcurrent_sourceqñNUrefidsqò}qóub.