Skip to content
Go to file


Failed to load latest commit information.
Latest commit message
Commit time


Python Enhancement Proposals

The PEPs in this repo are published automatically on the web at To learn more about the purpose of PEPs and how to go about writing a PEP, please start reading at PEP 1 (pep-0001.txt in this repo). Note that PEP 0, the index PEP, is now automatically generated, and not committed to the repo.

Contributing to PEPs

See the Contributing Guidelines.

reStructuredText for PEPs

Original PEP source should be written in reStructuredText format, which is a constrained version of plaintext, and is described in PEP 12. Older PEPs were often written in a more mildly restricted plaintext format, as described in PEP 9. The processing and installation script knows how to produce the HTML for either PEP format.

For processing reStructuredText format PEPs, you need the docutils package, which is available from PyPI. If you have pip, pip install docutils should install it.

Generating the PEP Index

PEP 0 is automatically generated based on the metadata headers in other PEPs. The script handling this is, with supporting libraries in the pep0 directory.

Checking PEP formatting and rendering

Do not commit changes with bad formatting. To check the formatting of a PEP, use the Makefile. In particular, to generate HTML for PEP 999, your source code should be in pep-0999.rst and the HTML will be generated to pep-0999.html by the command make pep-0999.html. The default Make target generates HTML for all PEPs.

If you don't have Make, use the script directly.

Generating HTML for includes its own helper modules to render PEPs as HTML, with suitable links back to the source pages in the version control repository.

These can be found at

When making changes to the PEP management process that may impact's rendering pipeline:

You can’t perform that action at this time.