On 5/15/09 6:27 AM, Fred Drake wrote:
> On Fri, May 15, 2009 at 2:57 AM, Chris McDonough<chr...@plope.com>  wrote:
>> It's a partial step towards getting rid of a dependency that zope.intid has 
>> on
>> zope.container.  I'm thinking that maybe that IContained interface belongs in
>> some other package (e.g. maybe zope.contained).  That Container base class 
>> is..
>> uh.. not complicated, so even if we never do get rid of the zope.container
>> dependency completely, it really doesn't harm anything to not use Contained.
>> Unless you have some nostalgia for it. ;-)
> At the rate we're going, every class and every interface is going to
> be in a separate package.
> Keeping the dependency graph clean is great, and there's plenty to do
> there. But there's also something to be said about being able to keep
> a substantial portion of it in your head.  The cleanliness of the
> graph isn't so important if most users still can't understand just
> because there are so many pieces that they wouldn't normally use
> directly.

This particular changes is a nobrainer.  It replaces a base class that defines 
__parent__ and __name__ as None.  It just can't be more understandable to have 
IntIds subclass from Contained for a new developer.  When it subclasses from 
Contained, they have go look over there to see if it does anything interesting 
and it just doesn't.

Breaking small import dependencies like this one is useful even if you don't 
manage to break any full package dependencies, if only to get the "little 
out of the way to start thinking about whether it makes sense to do anything 
larger.  I *didn't* make any other changes because I don't know what the right 
thing is wrt interfaces and such, and I don't want to make things even worse.

- C
Zope-Dev maillist  -  Zope-Dev@zope.org
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to