On 2007-08-09 20:51:26 +0200, Philipp von Weitershausen
<[EMAIL PROTECTED]> said:
Roman Joost wrote:
we're doing some dependency checking at gocept and I discovered that
zope.annotation depends on zope.app.container in its factory.
What shall we do with this dependency to zope.app.container? Moving this
factory to zope.app is probably not the best solution.
To be clear, zope.annotation doesn't depend on zope.app, it depends on
zope.app.container which is its own package and egg (and in fact,
zope.annotation's dependencies are refreshingly few). The real problem
is that zope.app.container depends on a whole bunch of other things.
The question is why.
Okay, actually I think that zope.annotation uses IContained. This is
just wrong but also results in an underspecification of IContained:
"""Objects contained in containers."""
When you read it very carefully you figure that it actually says is
that object.__parent__[object.__name__] would result in the object
IContained states how you can get the object from the __parent__.
ILocation doesn't do that.
For the annotation factory using zope.location and ILocatable would be
sufficient. So we could get rid of the zope.app.container dependency.
We should be a bit more specific about the IContained interface. Does
it make any sense to have an IContained object without __name__. I
think not. Chaning that would make __name__ a required attribute on
gocept gmbh & co. kg · forsterstrasse 29 · 06112 halle/saale
www.gocept.com · fon. +49 345 12298894 · fax. +49 345 12298891
Zope3-dev mailing list