[Zope-dev] implementing zope.component 4.0

Charlie Clark charlie.clark at clark-consulting.eu
Mon Nov 30 15:38:32 EST 2009

Am 30.11.2009, 19:51 Uhr, schrieb Chris McDonough <chrism at plope.com>:

> + 1 with the following caveat:
> I think that method name should probably be "adapt"; "lookup"  should  
> maybe be
> a separate method reserved for passing bare interfaces rather than  
> objects
> which implement interfaces, e.g:
>   >>> IFoo.lookup(IBar)
>    <class FooBarAdapter>

I think that lookup is a registry function. Not sure if there is anything  
to be gained by making it available on the interface. But +1 on explicit  
methods over collapsing it into the language. I can see advantages of  
having a Pythonic idiom for this in the future as with set, dictionaries,  
etc. but at the moment I think the risk of confusion is greater than the  
shorthand advantage. However, I think this is going to turn out to be a  
matter of personal preference.

> This would be consistent with the nomenclature in the current  
> zope.interface
> AdapterRegistry API.
> If it would help to change the resulting error message to "adaptation  
> error"
> when ".adapt" is called, e.g.:
>   >>> IFoo.adapt(c, default='missing')
>    Traceback...
>    AdaptationError(...)

Having struggled to work out why I get the errors I do anything that  
provides more information as to why I can't adapt, ie. which interfaces  
are required I'd love something more than the current TypeError

Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226

More information about the Zope-Dev mailing list