Python Enhancement Proposals
Go to file
Stephen Rosen 1a089b850e
PEP 735: Dependency Groups in pyproject.toml (#3541)
Co-authored-by: James Webber <jamestwebber@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Co-authored-by: Brett Cannon <brett@python.org>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Thomas Grainger <tagrain@gmail.com>
Co-authored-by: chrysle <fritzihab@posteo.de>
2023-11-28 17:15:22 -08:00
.codespell Lint: Fix outstanding codespell spelling errors (#3129) 2023-05-01 13:00:36 -06:00
.github PEP 735: Dependency Groups in pyproject.toml (#3541) 2023-11-28 17:15:22 -08:00
docs Infra: Refactor Makefile (#3514) 2023-11-03 01:24:48 -06:00
infra PEP 1 and 12: Document Topic header (#2995) 2023-02-03 21:34:17 +02:00
pep_sphinx_extensions Infra: Improve print style (#3486) 2023-11-14 11:41:48 -07:00
peps PEP 735: Dependency Groups in pyproject.toml (#3541) 2023-11-28 17:15:22 -08: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 Add sphinx-warnings.txt to .gitignore 2023-10-09 15:05:31 +02:00
.pre-commit-config.yaml PEP 1 and 12: Remove optional Content-Type from templates (#3454) 2023-09-28 02:00:23 +01:00
.readthedocs.yaml Infra: Build RTD previews with latest Python (#3538) 2023-11-28 07:01:15 -08:00
.ruff.toml Lint: Add Ruff (#3429) 2023-09-09 17:33:52 +01:00
CONTRIBUTING.rst Meta: Add a note about populating the PR from a template. (#3474) 2023-10-12 08:02:35 +02:00
Makefile Infra: Add `make htmllive` to rebuild and reload HTML files in your browser (#3521) 2023-11-12 13:48:34 +02: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 Infra: Make check-peps’ _validate_post_history crash less (#3511) 2023-10-28 16:23:55 -07:00
pytest.ini Lint: Add ``check-peps.py`` (#3275) 2023-09-05 04:44:46 +01:00
requirements.txt Infra: Add `make htmllive` to rebuild and reload HTML files in your browser (#3521) 2023-11-12 13:48:34 +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.