[Python-checkins] r78984 - peps/trunk/pep-3147.txt

barry.warsaw python-checkins at python.org
Mon Mar 15 18:46:55 CET 2010


Author: barry.warsaw
Date: Mon Mar 15 18:46:55 2010
New Revision: 78984

Log:
* Added reference to py_compile and compileall
* Added reference to bdist_wininst and the Windows installer
* Added reference to BDFL pronouncement on __pycache__ over .pyc


Modified:
   peps/trunk/pep-3147.txt

Modified: peps/trunk/pep-3147.txt
==============================================================================
--- peps/trunk/pep-3147.txt	(original)
+++ peps/trunk/pep-3147.txt	Mon Mar 15 18:46:55 2010
@@ -374,6 +374,25 @@
 should set the `__cached__` attribute to `None`.
 
 
+py_compile and compileall
+-------------------------
+
+Python comes with two modules, `py_compile` [15]_ and `compileall` [16]_
+which support compiling Python modules external to the built-in import
+machinery.  `py_compile` in particular has intimate knowledge of byte
+compilation, so these will have to be updated to understand the new
+layout.  It's possible that `compileall` could be modified to support
+legacy byte-code only file system layout.
+
+
+bdist_wininst and the Windows installer
+---------------------------------------
+
+These tools also compile modules explicitly on installation.  If they
+do not use `py_compile` and `compileall`, then they would also have to
+be modified to understand the new layout.
+
+
 File extension checks
 ---------------------
 
@@ -382,7 +401,7 @@
 This code will obviously fail once this PEP is implemented.
 
 To support this use case, we'll add two new methods to the `imp`
-package [15]_:
+package [17]_:
 
  * `imp.source_from_cache(py_path)` -> `pyc_path`
  * `imp.cache_from_source(pyc_path)` -> `py_path`
@@ -394,7 +413,7 @@
 PEP 302 loaders
 ---------------
 
-PEP 302 [16]_ defined loaders have a `.get_filename()` method which
+PEP 302 [18]_ defined loaders have a `.get_filename()` method which
 points to the `__file__` for a module.  As part of this PEP, we will
 extend this API, to include a new method `.get_paths()` which will
 return a 2-tuple containing the path to the source file and the path
@@ -419,7 +438,7 @@
 PEP 304
 -------
 
-There is some overlap between the goals of this PEP and PEP 304 [17]_,
+There is some overlap between the goals of this PEP and PEP 304 [19]_,
 which has been withdrawn.  However PEP 304 would allow a user to
 create a shadow file system hierarchy in which to store `pyc` files.
 This concept of a shadow hierarchy for `pyc` files could be used to
@@ -474,17 +493,31 @@
 tools that are dependent on the file extension.
 
 
+.pyc
+----
+
+A proposal was floated to call the `__pycache__` directory `.pyc` or
+some other dot-file name.  This would have the effect on *nix systems
+of hiding the directory.  There are many reasons why this was
+rejected by the BDFL [20]_ including the fact that dot-files are only
+special on some platforms, and we actually do *not* want to hide these
+completely from users.
+
+
 Reference implementation
 ========================
 
 A pure-Python reference implementation will be written using
-importlib [18]_, which may need some modifications to its API and
+importlib [21]_, which may need some modifications to its API and
 abstract base classes.  Once the semantics are agreed upon and the
 implementation details are settled, we'll port this to the C
 implementation in `import.c`.  We will have extensive tests that
 guarantee that the pure-Python implementation and the built-in
 implementation remain in sync.
 
+Work on this code will be tracked in a Bazaar branch on Launchpad
+[22]_ until it's ready for merge into Python 3.2.
+
 
 Open issues
 ===========
@@ -573,13 +606,21 @@
 
 .. [14] Pynie: http://code.google.com/p/pynie/
 
-.. [15] imp: http://www.python.org/doc/current/library/imp.html
+.. [15] py_compile: http://docs.python.org/library/py_compile.html
+
+.. [16] compileall: http://docs.python.org/library/compileall.html
+
+.. [17] imp: http://www.python.org/doc/current/library/imp.html
+
+.. [18] PEP 302
+
+.. [19] PEP 304
 
-.. [16] PEP 302
+.. [20] http://www.mail-archive.com/python-dev@python.org/msg45203.html
 
-.. [17] PEP 304
+.. [21] importlib: http://docs.python.org/3.1/library/importlib.html
 
-.. [18] importlib: http://docs.python.org/3.1/library/importlib.html
+.. [22] https://code.launchpad.net/~barry/python/pep3147
 
 
 ACKNOWLEDGMENTS


More information about the Python-checkins mailing list