Chris Withers wrote at 2008-12-13 10:18 +0000:
>Dieter Maurer wrote:
>> I think that in some cases, it would be useful for an adapter factory
>> to say 'I cannot handle this case' and then the adapter lookup
>> is continued. Maybe, this is already supported?
>> Then, maybe, you can use it?
>That's exactly what returning None indicates...
>>> def some_adapter(obj):
>>> if something:
>>> return None
>>> return somethingelse
>> Your use case seems to abuse adaptation:
>> Adaptation to an interface must always return an object which provides
>> the interface.
>> "None", by default, only provides very few interfaces
>...indeed, however, I really do want to return None here.
Then, use something different from adaptation (as adaptation does
not fit your wishes).
I expect that your adapter factory can raise "ComponentLookupError"
when it cannot handle the adaptation and then the "default" argument
of the adapter lookup will take effect.
adapter = IMyInterface(obj, None)
if adapter is None:
# adaptation impossible
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -