[Python-Dev] 3.5 unittest does not support namespace packages for discovering

Ned Batchelder ned at nedbatchelder.com
Thu Mar 23 16:41:01 EDT 2017


On 3/23/17 3:14 PM, Robert Collins wrote:
> On 24 March 2017 at 04:59, INADA Naoki <songofacandy at gmail.com> wrote:
>> And this issue is relating to it too: http://bugs.python.org/issue29716
>>
>> In short, "namespace package" is for make it possible to `pip install
>> foo_bar foo_baz`,
>> when foo_bar provides `foo.bar` and foo_baz provides `foo.baz`
>> package.  (foo is namespace package).
>>
>> If unittests searches normal directly, it may walk deep into very
>> large tree containing
>> millions of directories.  I don't like it.
> That is a risk, OTOH I think the failure to do what folk expect is a
> bigger risk.

The issue here is, what do folks expect?  PEP 420 is pretty clear on its
purpose. The first sentence of the abstract:

> Namespace packages are a mechanism for splitting a single Python
package across multiple directories on disk.

And the first sentence of the specification:

> Regular packages will continue to have an __init__.py and will reside
in a single directory.

PEP 420 is not meant to make all __init__.py files optional. It has a
specific purpose.  These proposed changes are not in support of that
purpose.  We should not bend over backwards to support getting rid of
__init__.py files just because people don't like empty __init__.py
files. That's not what PEP 420 is for.

--Ned.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20170323/3ec663a4/attachment.html>


More information about the Python-Dev mailing list