[Zope-dev] A summary of "Interfaces vs ZCA concepts"

Lennart Regebro regebro at gmail.com
Fri Dec 18 09:47:44 EST 2009


On Fri, Dec 18, 2009 at 08:51, Brian Sutherland <brian at vanguardistas.net> wrote:
> I like things to fail noisily and loudly unconfigured and give good
> information about what's wrong.

+1

>  So my preferred implementation of a
> stub "utility" function on Interface is:
>
>    def utility(default=None):
>        """Lookup a utility for this interface.
>
>        A utility is a ${long explanation of utility concept}.
>
>        This method behaves like ${explanation of utility method contract}.
>        """
>        raise NotImplementedError("""No Utility lookup mechanism has been configured.
>            If you wish to use utility lookups on interfaces, please configure a
>            package that contains this mechanism. Packages known to
>            implement this are:
>                zope.component
>            """)
>
> I agree that this encodes in the zope.interface package concepts from
> zope.component.


I think that is stretching the "encoding concepts" a bit too far. Yes,
we make zope.interface aware that such a thing as utility-registries
exist, but say we don't implement it. I don't think that's a problem.
The error message also gives an example of an implementation. That's
probably not a problem either.

> I feel uncomfortable about that.

I don't. :-)

-- 
Lennart Regebro: http://regebro.wordpress.com/
Python 3 Porting: http://python-incompatibility.googlecode.com/
+33 661 58 14 64


More information about the Zope-Dev mailing list