Glossary

PEP

Also known as: Python Enhancement Proposal

A PEP (Python Enhancement Proposal) is a design document that describes a new feature, process, or guideline for the Python language and its ecosystem. PEPs are the formal mechanism through which changes to Python are proposed, discussed, and decided. They are modelled after the Internet RFC process and are maintained in the python/peps GitHub repository.

There are three types of PEPs: Standards Track PEPs propose changes to the language, standard library, or CPython implementation (e.g., PEP 484 for type hints, PEP 572 for the walrus operator). Informational PEPs describe design issues or provide guidelines (e.g., PEP 20, the Zen of Python). Process PEPs describe processes around Python development (e.g., PEP 1, the PEP process itself).

Several PEPs are so foundational that every Python programmer should know them: PEP 8 (the style guide), PEP 20 (the Zen of Python), PEP 257 (docstring conventions), PEP 484 (type hints), PEP 518 (pyproject.toml), and PEP 621 (project metadata in pyproject.toml). PEPs are championed by authors, reviewed by the community, and ultimately accepted or rejected by the Python Steering Council (which replaced Guido van Rossum's BDFL role after his retirement in 2018).

Related terms: Python, PSF, Zen of Python

Discussed in:

This site is currently in Beta. Please email Chris Paton (cpaton@gmail.com) with any suggestions, questions or comments.