Module initialization and state
===============================
-Python 3.0 has a revamped extension module initialization system. (See PEP
+Python 3.0 has a revamped extension module initialization system. (See
:pep:`3121`.) Instead of storing module state in globals, they should be stored
in an interpreter specific structure. Creating modules that act correctly in
both 2.x and 3.0 is tricky. The following simple example demonstrates how. ::
Get a resource from a package.
- This is a wrapper for the PEP 302 loader :func:`get_data` API. The package
+ This is a wrapper for the :pep:`302` loader :func:`get_data` API. The package
argument should be the name of a package, in standard module format
(foo.bar). The resource argument should be in the form of a relative
filename, using ``/`` as the path separator. The parent directory name
d = os.path.dirname(sys.modules[package].__file__)
data = open(os.path.join(d, resource), 'rb').read()
- If the package cannot be located or loaded, or it uses a PEP 302 loader
+ If the package cannot be located or loaded, or it uses a :pep:`302` loader
which does not support :func:`get_data`, then None is returned.
Execute the code of the specified module and return the resulting module globals
dictionary. The module's code is first located using the standard import
- mechanism (refer to PEP 302 for details) and then executed in a fresh module
+ mechanism (refer to :pep:`302` for details) and then executed in a fresh module
namespace.
The optional dictionary argument *init_globals* may be used to pre-populate the
``__name__`` is set to *run_name* if this optional argument is supplied, and the
*mod_name* argument otherwise.
- ``__loader__`` is set to the PEP 302 module loader used to retrieve the code for
+ ``__loader__`` is set to the :pep:`302` module loader used to retrieve the code for
the module (This loader may be a wrapper around the standard import mechanism).
``__file__`` is set to the name provided by the module loader. If the loader
.. note::
- Starting with Python 2.6, this module provides PEP 8 compliant aliases and
+ Starting with Python 2.6, this module provides :pep:`8` compliant aliases and
properties to replace the ``camelCase`` names that were inspired by Java's
threading API. This updated API is compatible with that of the
:mod:`multiprocessing` module. However, no schedule has been set for the
# use a function (note that you're not limited to a function, you can
# use a class for example). The first argument passed to the function
# is a dictionary containing CGI-style envrironment variables and the
- # second variable is the callable object (see PEP333)
+ # second variable is the callable object (see :pep:`333`)
def hello_world_app(environ, start_response):
status = '200 OK' # HTTP Status
headers = [('Content-type', 'text/plain')] # HTTP Headers
Documentation on the ZIP file format by Phil Katz, the creator of the format and
algorithms used.
- :pep:`0273` - Import Modules from Zip Archives
+ :pep:`273` - Import Modules from Zip Archives
Written by James C. Ahlstrom, who also provided an implementation. Python 2.3
follows the specification in PEP 273, but uses an implementation written by Just
van Rossum that uses the import hooks described in PEP 302.
- :pep:`0302` - New Import Hooks
+ :pep:`302` - New Import Hooks
The PEP to add the import hooks that help this module work.