Python Enhancement Proposals
Go to file
Jelle Zijlstra 484c43d0a7
PEP 728: Improve specification (#4166)
- Specify that extra_items and closed are also supported with the
  functional syntax.
- Rewrite the rules for `closed=True` and inheritance. I attempted
  to make `closed=True` exactly equivalent to `extra_items=Never` in
  terms of inheritance. The semantics as specified in the previous
  version of the PEP felt harder to understand and less consistent.
- Fix some incorrect comments regarding expected type checker errors.
- Clarify section on assignability with Mapping
- Add section on runtime behavior. I tried to make the intended runtime
  behavior simple to implement and understand. This makes the runtime
  simpler but may make life more complicated for tools consuming the
  metadata.
- Fix typos and trailing whitespace
2024-12-20 00:13:09 +00:00
.codespell Fix typos in PEPs using codespell (#3909) 2024-08-20 13:29:32 +03:00
.github PEP 768: Add pablogsal to `CODEOWNERS` (#4160) 2024-12-09 07:41:07 +00: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: update header to 'Process and Meta-PEPs' (#4033) 2024-10-20 15:51:27 +10:00
peps PEP 728: Improve specification (#4166) 2024-12-20 00:13:09 +00:00
.codespellrc Fix typos in PEPs using codespell (#3909) 2024-08-20 13:29:32 +03:00
.gitattributes Meta: Instruct linguist to include PEPs in the statistics (#3430) 2023-09-09 19:58:51 +01:00
.gitignore PEP 759: External Wheel Hosting (#4011) 2024-10-02 16:53:07 -07:00
.pre-commit-config.yaml Infra: let codespell run in parallel and output in order (#4146) 2024-12-15 22:59:06 +02:00
.readthedocs.yaml Infra: Specify Sphinx config path for Read the Docs (#4177) 2024-12-19 22:03:51 +02:00
.ruff.toml Meta: Update config (#3645) 2024-02-08 18:43:54 +02:00
CONTRIBUTING.rst Meta: Update pre-commit to fix Sphinx Lint (#3585) 2023-12-12 17:06:18 +00:00
Makefile Infra: don't let generated `numerical.rst` trigger rebuild loop (#4103) 2024-11-05 13:46:01 +00:00
README.rst Update Read the Docs name and URL (#3588) 2023-12-14 21:37:56 +00:00
build.py All PEPs: Move to ``peps/`` folder (#3418) 2023-09-09 18:39:29 +01:00
check-peps.py Meta: Allow adding date to Resolution header (#4061) 2024-10-16 09:05:18 -07:00
pytest.ini Lint: Add ``check-peps.py`` (#3275) 2023-09-05 04:44:46 +01:00
requirements.txt Pin Sphinx to <8.1 (#4044) 2024-10-10 16:21:14 +00:00
tox.ini Meta: Update config (#3645) 2024-02-08 18:43:54 +02: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 "Read the Docs" preview
----------------------------------

For every PR, we automatically create a preview of the rendered PEPs using
`Read the Docs <https://about.readthedocs.com>`_.
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.