Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python Enhancement Proposals

PEP 0 – Index of Python Enhancement Proposals (PEPs)

PEP 0 – Index of Python Enhancement Proposals (PEPs)

Author:
The PEP Editors
Status:
Active
Type:
Informational
Created:
13-Jul-2000

Table of Contents

Introduction

This PEP contains the index of all Python Enhancement Proposals, known as PEPs. PEP numbers are assigned by the PEP editors, and once assigned are never changed. The version control history of the PEP texts represent their historical record.

Topics

PEPs for specialist subjects are indexed by topic.

API

The PEPS API is a JSON file of metadata about all the published PEPs. Read more here.

Numerical Index

The numerical index contains a table of all PEPs, ordered by number.

Index by Category

Process and Meta-PEPs

PEP Title Authors
PA 1 PEP Purpose and Guidelines Barry Warsaw, Jeremy Hylton, David Goodger, Alyssa Coghlan
PA 2 Procedure for Adding New Modules Brett Cannon, Martijn Faassen
PA 4 Deprecation of Standard Modules Brett Cannon, Martin von Löwis
PA 7 Style Guide for C Code Guido van Rossum, Barry Warsaw
PA 8 Style Guide for Python Code Guido van Rossum, Barry Warsaw, Alyssa Coghlan
PA 10 Voting Guidelines Barry Warsaw
PA 11 CPython platform support Martin von Löwis, Brett Cannon
PA 12 Sample reStructuredText PEP Template David Goodger, Barry Warsaw, Brett Cannon
PA 13 Python Language Governance The Python core team and community
PA 387 Backwards Compatibility Policy Benjamin Peterson
PA 545 Python Documentation Translations Julien Palard, Inada Naoki, Victor Stinner
PA 602 Annual Release Cycle for Python Łukasz Langa 3.9
PA 609 Python Packaging Authority (PyPA) Governance Dustin Ingram, Pradyun Gedam, Sumana Harihareswara
PA 676 PEP Infrastructure Process Adam Turner
PA 729 Typing governance process Jelle Zijlstra, Shantanu Jain
PA 731 C API Working Group Charter Guido van Rossum, Petr Viktorin, Victor Stinner, Steve Dower, Irit Katriel
PA 732 The Python Documentation Editorial Board Joanna Jablonski
PA 761 Deprecating PGP signatures for CPython artifacts Seth Michael Larson 3.14
PA 772 Packaging Council governance process Barry Warsaw, Deb Nicholson, Pradyun Gedam
PA 811 Defining Python Security Response Team membership and responsibilities Seth Michael Larson

Other Informational PEPs

PEP Title Authors
IA 20 The Zen of Python Tim Peters
IA 101 Doing Python Releases 101 Barry Warsaw, Guido van Rossum
IF 247 API for Cryptographic Hash Functions A.M. Kuchling
IF 248 Python Database API Specification v1.0 Greg Stein, Marc-André Lemburg
IF 249 Python Database API Specification v2.0 Marc-André Lemburg
IA 257 Docstring Conventions David Goodger, Guido van Rossum
IF 272 API for Block Encryption Algorithms v1.0 A.M. Kuchling
IA 287 reStructuredText Docstring Format David Goodger
IA 290 Code Migration and Modernization Raymond Hettinger
IF 333 Python Web Server Gateway Interface v1.0 Phillip J. Eby
IA 394 The “python” Command on Unix-Like Systems Kerrick Staley, Alyssa Coghlan, Barry Warsaw, Petr Viktorin, Miro Hrončok, Carol Willing
IF 399 Pure Python/C Accelerator Module Compatibility Requirements Brett Cannon 3.3
IF 430 Migrating to Python 3 as the default online documentation Alyssa Coghlan
IA 434 IDLE Enhancement Exception for All Branches Todd Rovito, Terry Reedy
IF 452 API for Cryptographic Hash Functions v2.0 A.M. Kuchling, Christian Heimes
IF 457 Notation For Positional-Only Parameters Larry Hastings
IF 482 Literature Overview for Type Hints Łukasz Langa
IF 483 The Theory of Type Hints Guido van Rossum, Ivan Levkivskyi
IA 514 Python registration in the Windows registry Steve Dower
IF 579 Refactoring C functions and methods Jeroen Demeyer
IF 588 GitHub Issues Migration Plan Mariatta
IF 607 Reducing CPython’s Feature Delivery Latency Łukasz Langa, Steve Dower, Alyssa Coghlan 3.9
IF 630 Isolating Extension Modules Petr Viktorin
IF 635 Structural Pattern Matching: Motivation and Rationale Tobias Kohn, Guido van Rossum 3.10
IF 636 Structural Pattern Matching: Tutorial Daniel F Moisset 3.10
IF 659 Specializing Adaptive Interpreter Mark Shannon
IA 664 Python 3.11 Release Schedule Pablo Galindo Salgado 3.11
IA 672 Unicode-related Security Considerations for Python Petr Viktorin
IA 693 Python 3.12 Release Schedule Thomas Wouters 3.12
IA 719 Python 3.13 Release Schedule Thomas Wouters 3.13
IF 733 An Evaluation of Python’s Public C API Erlend Egeberg Aasland, Domenico Andreoli, Stefan Behnel, Carl Friedrich Bolz-Tereick, Simon Cross, Steve Dower, Tim Felgentreff, David Hewitt, Shantanu Jain, Wenzel Jakob, Irit Katriel, Marc-Andre Lemburg, Donghee Na, Karl Nelson, Ronald Oussoren, Antoine Pitrou, Neil Schemenauer, Mark Shannon, Stepan Sindelar, Gregory P. Smith, Eric Snow, Victor Stinner, Guido van Rossum, Petr Viktorin, Carol Willing, William Woodruff, David Woods, Jelle Zijlstra
IA 745 Python 3.14 Release Schedule Hugo van Kemenade 3.14
IF 762 REPL-acing the default REPL Pablo Galindo Salgado, Łukasz Langa, Lysandros Nikolaou, Emily Morehouse-Valcarcel 3.13
IA 776 Emscripten Support Hood Chatham 3.14
IA 790 Python 3.15 Release Schedule Hugo van Kemenade 3.15
IA 801 Reserved Barry Warsaw
IA 816 WASI Support Brett Cannon
IA 826 Python 3.16 Release Schedule Savannah Ostrowski 3.16
IF 3333 Python Web Server Gateway Interface v1.0.1 Phillip J. Eby
IF 8000 Python Language Governance Proposal Overview Barry Warsaw
IF 8002 Open Source Governance Survey Barry Warsaw, Łukasz Langa, Antoine Pitrou, Doug Hellmann, Carol Willing
IA 8016 The Steering Council Model Nathaniel J. Smith, Donald Stufft
IF 8100 January 2019 Steering Council election Nathaniel J. Smith, Ee Durbin
IF 8101 2020 Term Steering Council election Ewa Jodlowska, Ee Durbin
IF 8102 2021 Term Steering Council election Ewa Jodlowska, Ee Durbin, Joe Carey
IF 8103 2022 Term Steering Council election Ewa Jodlowska, Ee Durbin, Joe Carey
IF 8104 2023 Term Steering Council election Ee Durbin
IF 8105 2024 Term Steering Council election Ee Durbin
IF 8106 2025 Term Steering Council election Ee Durbin
IF 8107 2026 Term Steering Council election Ee Durbin

Provisional PEPs (provisionally accepted; interface may still change)

PEP Title Authors
SP 825 Wheel Variants: Package Format Jonathan Dekhtiar, Michał Górny, Konstantin Schütze, Ralf Gommers, Andrey Talman, Charlie Marsh, Michael Sarahan, Eli Uriegas, Barry Warsaw, Donald Stufft, Andy R. Terrel

Accepted PEPs (accepted; may not be implemented yet)

PEP Title Authors
SA 458 Secure PyPI downloads with signed repository metadata Trishank Karthik Kuppusamy, Vladimir Diaz, Marina Moore, Lukas Puehringer, Joshua Lock, Lois Anne DeLong, Justin Cappos
SA 658 Serve Distribution Metadata in the Simple Repository API Tzu-ping Chung
SA 714 Rename dist-info-metadata in the Simple API Donald Stufft
SA 739 build-details.json 1.0 — a static description file for Python build details Filipe Laíns 3.14
SA 752 Implicit namespaces for package repositories Ofek Lev, Jarek Potiuk
SA 783 Emscripten Packaging Hood Chatham
SA 794 Import Name Metadata Brett Cannon
SA 808 Including static values in dynamic metadata Henry Schreiner, Cristian Le
SA 828 Supporting ‘yield from’ in asynchronous generators Peter Bierma 3.16

Open PEPs (under consideration)

PEP Title Authors
S 467 Minor API improvements for binary sequences Alyssa Coghlan, Ethan Furman 3.15
S 480 Surviving a Compromise of PyPI: End-to-end signing of packages Trishank Karthik Kuppusamy, Vladimir Diaz, Justin Cappos, Marina Moore
S 603 Adding a frozenmap type to collections Yury Selivanov
S 638 Syntactic Macros Mark Shannon
S 653 Precise Semantics for Pattern Matching Mark Shannon
S 671 Syntax for late-bound function argument defaults Chris Angelico 3.12
S 694 Upload 2.0 API for Python Package Indexes Barry Warsaw, Donald Stufft, Ee Durbin
S 710 Recording the provenance of installed packages Fridolín Pokorný
S 711 PyBI: a standard format for distributing Python Binaries Nathaniel J. Smith
S 718 Subscriptable functions James Hilton-Balfe, Pablo Ruiz Cuevas 3.15
I 720 Cross-compiling Python packages Filipe Laíns 3.12
S 725 Specifying external dependencies in pyproject.toml Pradyun Gedam, Jaime Rodríguez-Guerra, Ralf Gommers
I 744 JIT Compilation Brandt Bucher, Savannah Ostrowski 3.13
S 746 Type checking Annotated metadata Adrian Garcia Badaracco 3.15
S 748 A Unified TLS API for Python Joop van de Pol, William Woodruff 3.14
S 764 Inline typed dictionaries Victorien Plot 3.15
I 766 Explicit Priority Choices Among Multiple Indexes Michael Sarahan
S 767 Annotating Read-Only Attributes Łukasz Modzelewski 3.15
S 771 Default Extras for Python Software Packages Thomas Robitaille, Jonathan Dekhtiar
S 777 How to Re-invent the Wheel Emma Harper Smith
S 780 ABI features as environment markers Klaus Zimmermann, Ralf Gommers 3.14
S 781 Make TYPE_CHECKING a built-in constant Inada Naoki 3.15
S 785 New methods for easier handling of ExceptionGroups Zac Hatfield-Dodds 3.14
S 786 Precision and modulo-precision flag format specifiers for integer fields Jay Berry 3.15
S 789 Preventing task-cancellation bugs by limiting yield in async generators Zac Hatfield-Dodds, Nathaniel J. Smith 3.14
S 802 Display Syntax for the Empty Set Adam Turner 3.15
S 804 An external dependency registry and name mapping mechanism Pradyun Gedam, Ralf Gommers, Michał Górny, Jaime Rodríguez-Guerra, Michael Sarahan