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

Python Enhancement Proposals

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.

Index by Category

Meta-PEPs (PEPs about PEPs or Processes)

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 5 Guidelines for Language Evolution Paul Prescod
PA 6 Bug Fix Releases Aahz, Anthony Baxter
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 581 Using GitHub Issues for CPython Mariatta
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

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 291 Backward Compatibility for the Python 2 Standard Library Neal Norwitz 2.3
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
IA 569 Python 3.8 Release Schedule Łukasz Langa 3.8
IF 579 Refactoring C functions and methods Jeroen Demeyer
IA 596 Python 3.9 Release Schedule Łukasz Langa 3.9
IA 602 Annual Release Cycle for Python Łukasz Langa 3.9
IF 607 Reducing CPython’s Feature Delivery Latency Łukasz Langa, Steve Dower, Alyssa Coghlan 3.9
IA 619 Python 3.10 Release Schedule Pablo Galindo Salgado 3.10
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
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
IA 801 Reserved Barry Warsaw
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
IA 8104 2023 Term Steering Council election Ee Durbin
IA 8105 2024 Term Steering Council election Ee Durbin

Provisional PEPs (provisionally accepted; interface may still change)

PEP Title Authors
SP 708 Extending the Repository API to Mitigate Dependency Confusion Attacks Donald Stufft
SP 723 Inline script metadata Ofek Lev

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 544 Protocols: Structural subtyping (static duck typing) Ivan Levkivskyi, Jukka Lehtosalo, Łukasz Langa 3.8
SA 560 Core support for typing module and generic types Ivan Levkivskyi 3.7
SA 563 Postponed Evaluation of Annotations Łukasz Langa 3.7
SA 578 Python Runtime Audit Hooks Steve Dower 3.8
SA 586 Literal Types Michael Lee, Ivan Levkivskyi, Jukka Lehtosalo 3.8
SA 589 TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys Jukka Lehtosalo 3.8
SA 590 Vectorcall: a fast calling protocol for CPython Mark Shannon, Jeroen Demeyer 3.8
SA 591 Adding a final qualifier to typing Michael J. Sullivan, Ivan Levkivskyi 3.8
SA 593 Flexible function and variable annotations Till Varoquaux, Konstantin Kashin 3.9
SA 604 Allow writing union types as X | Y Philippe PRADOS, Maggie Moss 3.10
SA 612 Parameter Specification Variables Mark Mendoza 3.10
SA 613 Explicit Type Aliases Shannon Zhu 3.10
SA 615 Support for the IANA Time Zone Database in the Standard Library Paul Ganssle 3.9
SA 617 New PEG parser for CPython Guido van Rossum, Pablo Galindo, Lysandros Nikolaou 3.9
SA 625 Filename of a Source Distribution Tzu-ping Chung, Paul Moore
SA 634 Structural Pattern Matching: Specification Brandt Bucher, Guido van Rossum 3.10
SA 646 Variadic Generics Mark Mendoza, Matthew Rahtz, Pradeep Kumar Srinivasan, Vincent Siles 3.11
SA 647 User-Defined Type Guards Eric Traut 3.10
SA 649 Deferred Evaluation Of Annotations Using Descriptors Larry Hastings 3.13
SA 655 Marking individual TypedDict items as required or potentially-missing David Foster 3.11
SA 658 Serve Distribution Metadata in the Simple Repository API Tzu-ping Chung
SA 668 Marking Python base environments as “externally managed” Geoffrey Thomas, Matthias Klose, Filipe Laíns, Donald Stufft, Tzu-ping Chung, Stefano Rivera, Elana Hashman, Pradyun Gedam
SA 669 Low Impact Monitoring for CPython Mark Shannon 3.12
SA 673 Self Type Pradeep Kumar Srinivasan, James Hilton-Balfe 3.11
SA 675 Arbitrary Literal String Type Pradeep Kumar Srinivasan, Graham Bleaney 3.11
SA 681 Data Class Transforms Erik De Bonte, Eric Traut 3.11
SA 683 Immortal Objects, Using a Fixed Refcount Eric Snow, Eddie Elizondo 3.12
SA 684 A Per-Interpreter GIL Eric Snow 3.12
SA 685 Comparison of extra names for optional distribution dependencies Brett Cannon
SA 686 Make UTF-8 mode default Inada Naoki 3.15
SA 687 Isolating modules in the standard library Erlend Egeberg Aasland, Petr Viktorin 3.12
SA 688 Making the buffer protocol accessible in Python Jelle Zijlstra 3.12
SA 691 JSON-based Simple API for Python Package Indexes Donald Stufft, Pradyun Gedam, Cooper Lees, Dustin Ingram
SA 692 Using TypedDict for more precise **kwargs typing Franek Magiera 3.12
SA 695 Type Parameter Syntax Eric Traut 3.12
SA 698 Override Decorator for Static Typing Steven Troxler, Joshua Xu, Shannon Zhu 3.12
SA 699 Remove private dict version field added in PEP 509 Ken Jin 3.12
SA 700 Additional Fields for the Simple API for Package Indexes Paul Moore