[PEAK] PyProtocols: TypeError: Ambiguous adapter choice
Sergey Schetinin
maluke at gmail.com
Fri Jul 10 12:56:52 EDT 2009
Are you sure it's the "foo = FooOneAsFoo(ComposedFoo())" producing the
error? Could it actually be IFoo(ComposedFoo()) ?
2009/7/10 luper rouch <luper.rouch at gmail.com>:
> 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.
> _______________________________________________
> PEAK mailing list
> PEAK at eby-sarna.com
> http://www.eby-sarna.com/mailman/listinfo/peak
>
--
Best Regards,
Sergey Schetinin
http://s3bk.com/ -- S3 Backup
http://word-to-html.com/ -- Word to HTML Converter
More information about the PEAK
mailing list