Python Enhancement Proposals
Go to file
Jelle Zijlstra 495eefba9a
PEP 729: Update Discussions-To (#3462)
2023-10-04 11:36:33 -07:00
.codespell Lint: Fix outstanding codespell spelling errors (#3129) 2023-05-01 13:00:36 -06:00
.github PEP 729: Typing governance process (#3455) 2023-10-03 21:48:04 -07:00
docs All PEPs: Move to ``peps/`` folder (#3418) 2023-09-09 18:39:29 +01:00
infra PEP 1 and 12: Document Topic header (#2995) 2023-02-03 21:34:17 +02:00
pep_sphinx_extensions Infra: Add Python version to PEP 0 tables (#3434) 2023-09-27 15:16:17 +01:00
peps PEP 729: Update Discussions-To (#3462) 2023-10-04 11:36:33 -07:00
.codespellrc Add configuration for running `codespell` locally (#2151) 2022-01-24 23:40:15 +00:00
.gitattributes Meta: Instruct linguist to include PEPs in the statistics (#3430) 2023-09-09 19:58:51 +01:00
.gitignore All PEPs: Move to ``peps/`` folder (#3418) 2023-09-09 18:39:29 +01:00
.pre-commit-config.yaml PEP 1 and 12: Remove optional Content-Type from templates (#3454) 2023-09-28 02:00:23 +01:00
.ruff.toml Lint: Add Ruff (#3429) 2023-09-09 17:33:52 +01:00
CONTRIBUTING.rst PEP 1: Stop recommending Typing-SIG (it has ceased to be!) (#3453) 2023-09-21 23:01:39 +01:00
Makefile All PEPs: Move to ``peps/`` folder (#3418) 2023-09-09 18:39:29 +01:00
README.rst Meta: Change make render to make html in docs (#3094) 2023-04-09 10:43:55 +03:00
build.py All PEPs: Move to ``peps/`` folder (#3418) 2023-09-09 18:39:29 +01:00
check-peps.py All PEPs: Move to ``peps/`` folder (#3418) 2023-09-09 18:39:29 +01:00
pytest.ini Lint: Add ``check-peps.py`` (#3275) 2023-09-05 04:44:46 +01:00
readthedocs.yaml Infra: replace feedgen/lxml dependency to test Python 3.12-dev (#2973) 2023-01-21 16:08:38 +02:00
requirements.txt Infra: replace feedgen/lxml dependency to test Python 3.12-dev (#2973) 2023-01-21 16:08:38 +02:00
tox.ini Lint: Update outdated package dependencies & reformat files (#3291) 2023-08-16 08:07:57 +03:00

README.rst

Python Enhancement Proposals
============================

.. image:: https://github.com/python/peps/actions/workflows/render.yml/badge.svg
    :target: https://github.com/python/peps/actions

The PEPs in this repo are published automatically on the web at
https://peps.python.org/. To learn more about the purpose of PEPs and how to go
about writing one, please start reading at :pep:`1`. Note that the PEP Index
(:pep:`0`) is automatically generated based on the metadata headers in other PEPs.


Canonical links
===============

The canonical form of PEP links are zero-padded, such as
``https://peps.python.org/pep-0008/``

Shortcut redirects are also available.
For example, ``https://peps.python.org/8`` redirects to the canonical link.


Contributing to PEPs
====================

See the `Contributing Guidelines <./CONTRIBUTING.rst>`_.


Checking PEP formatting and rendering
=====================================

Please don't commit changes with reStructuredText syntax errors that cause PEP
generation to fail, or result in major rendering defects relative to what you
intend.


Browse the ReadTheDocs preview
------------------------------

For every PR, we automatically create a preview of the rendered PEPs using
`ReadTheDocs <https://readthedocs.org/>`_.
You can find it in the merge box at the bottom of the PR page:

1. Click "Show all checks" to expand the checks section
2. Find the line for ``docs/readthedocs.org:pep-previews``
3. Click on "Details" to the right


Render PEPs locally
-------------------

See the `build documentation <./docs/build.rst>`__ for full
instructions on how to render PEPs locally.
In summary, run the following in a fresh, activated virtual environment:

.. code-block:: bash

    # Install requirements
    python -m pip install -U -r requirements.txt

    # Build the PEPs
    make html

    # Or, if you don't have 'make':
    python build.py

The output HTML is found under the ``build`` directory.


Check and lint PEPs
-------------------

You can check for and fix common linting and spelling issues,
either on-demand or automatically as you commit, with our pre-commit suite.
See the `Contributing Guide <./CONTRIBUTING.rst>`_ for details.