Hi there,

Before we have this discussion yet again, I will record the official 
stance in the zope toolkit decisions document, and I'll quote it here:

* When code moves to a new location to import it from (in the same or
   another package), use a ``from foo import bar`` statement, with a
   ``#BBB`` comment to indicate the import is only there to support
   backwards compatibility.

   In the CHANGES.txt of a package, state that an import location got
   deprecated and where the new location is (making this a feature
   release, not a bugfix release).


   * it avoid a dependency on zope.deprecation, which is quite involved
     in its implementation, using proxies.

   * A ``from .. import ..`` is immediately comprehensible to any
     Python programmer as well as tools.

   * Deprecation warnings make it hard to write a library that supports
     multiple versions of another library; a change in an indirect
     dependency can create deprecation warnings that the original
     developer does not care about.

   * We are in the process of developing a testrunner extension that
     will report on indirect imports, and a ZODB upgrade procedure.

Feel free to discuss it, either to add arguments to refine this, or to 
attempt to overthrow this decision entirely.



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