Jim Fulton wrote:

Jean-Marc Orliaguet wrote:

OK, so to summarize this  thread:

- __init__.py files are empty

unless for the convenient import of other modules located in the same package or in a subpackage?

Actually, primarily for convenient import by external packages.

yes indeed, but no "cross" imports between packages that are siblings.

and in both cases the import is done using absolute paths.

- public interfaces are stored in interfaces.py

- private interfaces are written along with the implementation code

- what about file names with an underscore at the beginning? They are used in zope.schema for instance

A Python convention is that a leading underscore indicates privateness.

but it doesn't inforce it, so another social contract for interfaces like:
"interfaces.py" means "public", otherwise it means "private" might do as well.

- what about import paths inside a same package: relative or absolute?

   from mypackage.interfaces import ISomeInterface
   from interfaces import ISomeInterface

Absolute always.  Until the Python import mechanism is fixed, *always*
use absolute imports.


that's definitely not the way it is currently...

do a:

$ grep -r "from interfaces import" Zope3/src

Zope3-dev mailing list
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to