1
===========================
2
Common adapters for sources
3
===========================
5
To allow adapting factored sources specific to the factory, a couple of
6
standard interfaces that can be adapters are re-adapted as using a
7
multi-adapter for (FactoredSource, SourceFactory).
12
>>> from zc.sourcefactory.basic import BasicSourceFactory
13
>>> class Factory(BasicSourceFactory):
14
... def getValues(self):
16
>>> source = Factory()
18
>>> from zope.schema.interfaces import ISourceQueriables
19
>>> import zope.interface
20
>>> class SourceQueriables(object):
21
... zope.interface.implements(ISourceQueriables)
22
... def __init__(self, source, factory):
23
... self.source = source
24
... self.factory = factory
25
... def getQueriables(self):
26
... return [('test', None)]
28
>>> from zc.sourcefactory.source import FactoredSource
29
>>> zope.component.provideAdapter(factory=SourceQueriables,
30
... provides=ISourceQueriables,
31
... adapts=(FactoredSource, Factory))
33
>>> queriables = ISourceQueriables(source)
34
>>> queriables.factory
35
<Factory object at 0x...>
37
<zc.sourcefactory.source.FactoredSource object at 0x...>
38
>>> queriables.getQueriables()
44
>>> zope.component.getSiteManager().unregisterAdapter(factory=SourceQueriables,
45
... provided=ISourceQueriables, required=(FactoredSource, Factory))