[Zope-dev] zope.container analysis

Chris McDonough chrism at plope.com
Thu May 14 23:05:01 EDT 2009

zope.container (32 transitive dependencies) has some possibly low-hanging 
dependency  tease-apart fruit.  Does anyone have any ideas about to sort out the 
below, particularly with externalizing the mentioned interface dependencies?

- It depends on zope.filerepresentation but depends only on its interfaces
   IReadDirectory, IWriteDirectory, and IDirectoryFactory.
   (zope.filerepresentation has 32 transitive dependencies).

- It depends on zope.app.dependable but depends only on its interfaces
   IDependable and DependencyError.  (note: zope.app.dependable might
   be a candidate to be called zope.dependable as it depends on no other zope.app
   packages; it does depend on about 20 other zope.* packages transitively tho).

- It depends on zope.publisher, but only its interfaces browser.IBrowserRequest,
   browser.IBrowserPublisher, NotFound, IDefaultViewName,
   xmlrpc.IXMLRPCPublisher, and IPublishTraverse.

- I was able to break a runtime logic dependency on zope.traversing by
   disusing zope.traversing.api.getPath in favor of using
   ILocationInfo(object).getPath().  The rest of the runtime dependencies on
   zope.traversing are interface dependencies (ITraversable, IContainmentRoot).

More information about the Zope-Dev mailing list