[PEAK] PyProtocols: TypeError: Ambiguous adapter choice
luper rouch
luper.rouch at gmail.com
Fri Jul 10 12:44:26 EDT 2009
The following code produces an error:
TypeError: ('Ambiguous adapter choice', <class
'__main__.FooOneAsFoo'>, <class '__main__.FooTwoAsFoo'>, 2, 2)
--- code begins ---
from protocols import Interface, advise
class IFoo(Interface):
pass
class IFooOne(Interface):
pass
class IFooTwo(Interface):
pass
class FooOneAsFoo(object):
advise(
instancesProvide=[IFoo],
asAdapterForProtocols=[IFooOne]
)
class FooTwoAsFoo(object):
advise(
instancesProvide=[IFoo],
asAdapterForProtocols=[IFooTwo]
)
class ComposedFoo(object):
advise(
instancesProvide=[IFooOne, IFooTwo]
)
--- code ends ---
Why is it ambiguous to write for example:
foo = FooOneAsFoo(ComposedFoo())
foo has an IFoo interface, adapted from the IFooOne interface of ComposedFoo.
More information about the PEAK
mailing list