[Import-SIG] New draft revision for PEP 382

Nick Coghlan ncoghlan at gmail.com
Sat Jul 9 10:13:47 CEST 2011

Nice write up!

Barry covered most things, just a few minor comments below.

On Sat, Jul 9, 2011 at 5:51 AM, P.J. Eby <pje at telecommunity.com> wrote:
> Vendor Package
>    A group of files installed by an operating system's packaging
>    mechanism (e.g. Debian or Redhat packages installed on Linux
>    systems).


(or Red Hat. Either works, but Redhat is wrong)

> * A new ``extend_namespaces(path_entry)`` function, to extend existing
>  and already-imported namespace packages' ``__path__`` attributes to
>  include any portions found in a new ``sys.path`` entry.  This
>  function should be called by applications extending ``sys.path``
>  at runtime, e.g. to include a plugin directory or add an egg to the
>  path.
>  The implementation of this function does a simple breadth-first walk
>  of ``sys.namespace_packages``, and performs any necessary
>  ``namespace_subpath()`` calls to identify what path entries need to
>  be added to each package's ``__path__``, given that `path_entry`
>  has been added to ``sys.path``.

I believe this may need a "parent=''" argument so it can also be used
to extend a package path.

> For users, developers, and distributors of namespace packages:
> * ``sys.namespace_packages`` is allowed to contain non-existent or
>  not-yet-imported package names; code that uses its contents should
>  not assume that every name in this set is also present in
>  sys.packages or that importing the name will necessarily succeed.


> * ``*.ns`` files must be empty or contain only ASCII whitespace
>  characters.  This leaves open the possibility for future extension
>  to the format.

+1 for Barry's suggestion to mandate # as a comment prefix and
disallow any other contents (even though the interpreter itself won't
enforce that).


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Import-SIG mailing list