[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