[Python-Dev] Dropping __init__.py requirement for subpackages
"Martin v. Löwis"
martin at v.loewis.de
Wed Apr 26 21:56:07 CEST 2006
Phillip J. Eby wrote:
> My counter-proposal: to be considered a package, a directory must contain
> at least one module (which of course can be __init__). This allows the "is
> it a package?" question to be answered with only one directory read, as is
> the case now. Think of it also as a nudge in favor of "flat is better than
> nested".
I assume you want
import x.y
to fail if y is an empty directory (or non-empty, but without .py
files). I don't see a value in implementing such a restriction.
If there are no .py files in a tree, then there would be no point
in importing it, so applications will typically not import an
empty directory.
Implementing an expensive test that will never give a positive result
and causes no problems if skipped should be skipped.
I can't see the problem this would cause to tools: they should assume
any subdirectory can be a package, with all consequences this causes.
If the consequences are undesirable, users should just stop putting
non-package subdirectories into a package if they want to use the
tool. However, I doubt there are undesirable consequences (although
consequences might be surprising at first).
Regards,
Martin
More information about the Python-Dev
mailing list