[Python-checkins] peps: Clarifications.

eric.smith python-checkins at python.org
Tue May 1 14:23:00 CEST 2012


http://hg.python.org/peps/rev/377fe8cb57a0
changeset:   4338:377fe8cb57a0
user:        Eric V. Smith <eric at trueblade.com>
date:        Tue May 01 08:22:49 2012 -0400
summary:
  Clarifications.

files:
  pep-0420.txt |  23 ++++++++++++++---------
  1 files changed, 14 insertions(+), 9 deletions(-)


diff --git a/pep-0420.txt b/pep-0420.txt
--- a/pep-0420.txt
+++ b/pep-0420.txt
@@ -37,9 +37,9 @@
  * "portion" refers to a set of files in a single directory (possibly
    stored in a zip file) that contribute to a namespace package.
  * "regular package" refers to packages as they are implemented in
-   Python 3.2.
+   Python 3.2 and earlier.
 
-This PEP describes a new type of package, the "namespace package".
+This PEP defines a new type of package, the "namespace package".
 
 Namespace packages today
 ========================
@@ -169,6 +169,9 @@
 Discussion
 ==========
 
+At PyCon 2012, we had a discussion about namespace packages at which
+PEP 382 and PEP 402 were rejected, to be replaced by this PEP [2]_.
+
 There is no intention to remove support of regular packages.  If there
 is no intention that a package is a namespace package, then there is a
 performance advantage to it being a regular package.  Creation and
@@ -181,9 +184,6 @@
 imported as a namespace package, whereas in prior Python versions an
 ImportWarning would be raised.
 
-At PyCon 2012, we had a discussion about namespace packages at which
-PEP 382 and PEP 402 were rejected, to be replaced by this PEP [2]_.
-
 Nick Coglan presented a list of his objections to this proposal [3]_.
 They are:
 
@@ -217,19 +217,24 @@
 If these are installed in the same location, a single directory "foo"
 would be in a directory that is on ``sys.path``.  Inside "foo" would
 be two directories, "bar" and "baz".  If "foo.bar" is removed (perhaps
-by an automatic packager), care must be taken not to remove the
+by an OS package manager), care must be taken not to remove the
 "foo/baz" or "foo" directories.  Note that in this case "foo" will be
 a namespace package (because it lacks an ``__init__.py``), even though
 all of its portions are in the same directory.
 
+Note that "foo.bar" and "foo.baz" can be installed into the same "foo"
+directory because they will not have any files in common.
+
 If the portions are installed in different locations, two different
 "foo" directories would be in directories that are on ``sys.path``.
 "foo/bar" would be in one of these sys.path entries, and "foo/baz"
 would be in the other.  Upon removal of "foo.bar", the "foo/bar" and
-corresonding "foo" directories can be completely removed.
+corresonding "foo" directories can be completely removed. But
+"foo/baz" and its corresponding "foo" directory cannot be removed.
 
-Note that even if they are installed in the same directory, "foo.bar"
-and "foo.baz" would not have any files in common.
+It is also possible to have the "foo.bar" portion installed in a
+directory on ``sys.path``, and have the "foo.baz" portion provided in
+a zip file, also on ``sys.path``.
 
 References
 ==========

-- 
Repository URL: http://hg.python.org/peps


More information about the Python-checkins mailing list