[Import-SIG] Fwd: Re: Proposal and questions about PEP 420
Guido van Rossum
guido at python.org
Sun May 13 17:33:02 CEST 2012
-1. It would create a very busy toplevel directory. There's a reason
people nest directories...
On Sun, May 13, 2012 at 6:18 AM, Benoît Bryon <benoit at marmelune.net> wrote:
> -------- Original Message --------
> Subject: Re: Proposal and questions about PEP 420
> Date: Sun, 13 May 2012 08:10:53 -0400
> From: "Eric V. Smith" <eric at trueblade.com>
> To: Benoît Bryon <benoit at marmelune.net>
>
> Hi, Benoit.
>
> This hasn't been specifically discussed. Part of the rejection of PEP
> 382 was due to dots in the names of directories, but as directory
> extensions (foo.pyp). I'm not sure if this concern would also apply to
> your proposal.
>
> Also, I'm not sure how common nested namespace packages are. I know I've
> never run across them.
>
> That said, I think you should post this idea to the import-sig mailing
> list, and see what others think.
>
> Eric.
>
> On 5/13/2012 7:31 AM, Benoît Bryon wrote:
>>
>> Hi,
>>
>> I just read PEP 420 about namespace packages, and I wonder if the
>> following points have been considered...
>>
>> .. note::
>>
>> I'm asking you because PEP 1 tells:
>>
>> > When in doubt about where to send your changes, please check first
>> > with the PEP author and/or PEP editor.
>>
>>
>> Has the following proposal been considered or refused?
>>
>> As an example, to implement foo.bar and foo.baz namespaces:
>>
>> ::
>>
>> somewhere-in-sys.path
>> ├── foo.bar
>> │ └── __init__.py
>> └── foo.baz
>> └── __init__.py
>>
>> I mean:
>>
>> * since "namespace" directories have to be empty, we can get rid of them.
>> * a namespace package would be "some directory with at least a dot in
>> the name".
>>
>>
>> As import machinery
>> ===================
>>
>> * It's easy to guess that "foo.bar.baz.other" is a package in
>> "foo.bar.baz" namespace.
>> * It's flat.
>> * It's quick to scan: no loops within "foo/" folder(s), only one disk
>> access to read an unique __init__.py.
>>
>>
>> As a developer
>> ==============
>>
>> As a developer, when I edit namespace packages, I have to deal with
>> nested empty directories.
>> As an example, here is a repository layout to edit some foo.bar.baz
>> package with PEP-420:
>>
>> ::
>>
>> path-to-python-foobarbaz/
>> ├── setup.py
>> ├── README
>> └── foo
>> └── bar
>> └── baz
>> └── __init__.py
>>
>> .. note::
>>
>> With current namespace packages implementation, foo/ and foo/bar/
>> contain an __init__.py
>>
>> * We never edit foo/ and foo/bar/. They are empty. They contain nothing
>> valuable.
>> * When one sees package root folder, he cannot guess that foo/ is a
>> namespace package.
>> * To new Python users, it's not clear that foo/ must be empty (or must
>> contain only a "constant" __init__.py).
>> * It seems that many developers actually don't use namespace packages
>> because it's implementation is not flat.
>> As an example, I personally know some Django users who argue that
>> "Flat is better than nested" wins over "Namespaces are one honking
>> great idea -- let's do more of those!".
>> Since "more namespaces" currently means "more nested directories", we
>> can't convince these users to implement namespace packages.
>>
>> With "directories with dots in their names" proposal:
>>
>> ::
>>
>> path-to-python-foobarbaz/
>> ├── setup.py
>> ├── README
>> └── foo.bar.baz
>> └── __init__.py
>>
>> * it's flat.
>> * it's easy to guess that "foo.bar.baz" is a namespace package.
>> * impossible to write code in foo/ folder or alter foo/__init__.py:
>> "foo" is not a classic module, it is a namespace.
>> * respects both "Flat is better than nested" **and** "Namespaces are one
>> honking great idea -- let's do more of those!". So it may attract
>> developers and maybe more namespaces would be created.
>>
>>
>> Regards,
>>
>> --
>> Benoit Bryon
>>
>
> _______________________________________________
> Import-SIG mailing list
> Import-SIG at python.org
> http://mail.python.org/mailman/listinfo/import-sig
--
--Guido van Rossum (python.org/~guido)
More information about the Import-SIG
mailing list