kj wrote:
But now suppose that I want to factor out some code in spam/ham.py to a helper module. (The reason behind factoring out this new module is to "declutter" spam/ham.py, and improve its readibility.) My instinct (from my Perl past) is to put this factored-out code in a file spam/ham/eggs.py, i.e. to create the "nested" module spam.ham.eggs, which requires expanding the tree as follows spam/ |-- ham/ | |-- eggs.py | `-- __init__.py |-- ham.py `-- __init__.py ...and adding the following spam/ham.py to # spam/ham.py from . import eggs This doesn't work so well, because now spam/ham.py is not read. It seems that adding the spam/ham directory, or maybe adding the file spam/ham/__init__.py, causes spam/ham.py to be overlooked. Clearly, I'm not playing this game right...
One way is the __init__.py answer you have already. Another is to put eggs.py (or _eggs.py to indicate that it is private) in spam and skip the ham directory.
spam/ __init__.py ham.py _eggs.py tjr -- http://mail.python.org/mailman/listinfo/python-list