[Import-SIG] New PEP draft: "Simplified Package Layout and Partitioning"
barry at python.org
Mon Jul 18 18:17:26 CEST 2011
I finally had a chance to read this. TL;DR: +1.
I have a few quibbles about typos and grammar, but let's ignore that for now.
I have two questions of substance at this point.
1. Sometimes, packages can have non-importable data directories,
e.g. foo/test/data. Where foo.test would be an importable subpackage,
foo.test.data should not be. Today we can just omit the __init__.py from
foo/test/data. Under the proposed regime there would IIUC, be no way to
prevent foo.test.data from being a subpackage. It's entirely possible that
foo/test/data would have .py files in it which would themselves be
importable. Is this a bad thing? If so, do we need some mechanism to
prevent recursion into some subdirectories?
2. The __file__ issue. My gut tells me that pure virtual modules should have
None as their __file__. It seems wrong to use anything else, and your
"accidentally work" observation is not calming. ;)
The inability to use __file__ to find data files is somewhat troubling
though. Let's say we want to find the foo/test/data subdir above, and
`foo` is pure-virtual, while `test` is an __init__.py-less package.
I'm fine not being able to use foo.__file__, but I will probably want to
use `os.path.join(foo.test.__file__, 'data')`. Will that work? What would
foo.test's __file__ be? The `foo/test` directory perhaps? Of course there
could be multiple `foo/test` directories, so this is probably why your
suggesting to search foo.test.__path__ instead.
I'd actually be okay with that, *if* pkg_resources will be updated to
handle this case. In general, we've been recommending people use
pkg_resources anyway (wasn't there a push to move part of this package into
I'll read up on the rest of the thread now, but I think the PEP holds up well
and makes a convincing argument. I think it's certainly worthy of posting to
python-dev to see if anybody else can shoot holes in it, or come up with
useful solutions to open questions. I'll be very interested to see Guido's
reaction to it. :)
Thanks for taking this on PJE.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 836 bytes
Desc: not available
More information about the Import-SIG