Process and Meta-PEPs
Other Informational PEPs
Provisional PEPs (provisionally accepted; interface may still change)
Accepted PEPs (accepted; may not be implemented yet)
Open PEPs (under consideration)
Finished PEPs (done, with a stable interface)
Historical Meta-PEPs and Informational PEPs
Deferred PEPs (postponed pending further research or updates)
Rejected, Superseded, and Withdrawn PEPs
Reserved PEP Numbers
PEP Types Key
PEP Status Key
Authors/Owners
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.
PEPs for specialist subjects are
indexed by topic
.
Governance PEPs
Packaging PEPs
Release PEPs
Typing PEPs
The
PEPS API
is a JSON file of metadata about all the published PEPs.
Read more here
.
The
numerical index
contains a table of all PEPs, ordered by number.
Title
Authors
Python Packaging Authority (PyPA) Governance
Dustin Ingram, Pradyun Gedam, Sumana Harihareswara
PEP Infrastructure Process
Adam Turner
Typing governance process
Jelle Zijlstra, Shantanu Jain
C API Working Group Charter
Guido van Rossum, Petr Viktorin, Victor Stinner, Steve Dower, Irit Katriel
The Python Documentation Editorial Board
Joanna Jablonski
Deprecating PGP signatures for CPython artifacts
Seth Michael Larson
The “python” Command on Unix-Like Systems
Kerrick Staley, Alyssa Coghlan, Barry Warsaw, Petr Viktorin, Miro Hrončok, Carol Willing
Pure Python/C Accelerator Module Compatibility Requirements
Brett Cannon
Migrating to Python 3 as the default online documentation
Alyssa Coghlan
IDLE Enhancement Exception for All Branches
Todd Rovito, Terry Reedy
API for Cryptographic Hash Functions v2.0
A.M. Kuchling, Christian Heimes
Notation For Positional-Only Parameters
Larry Hastings
Literature Overview for Type Hints
Łukasz Langa
The Theory of Type Hints
Guido van Rossum, Ivan Levkivskyi
Python registration in the Windows registry
Steve Dower
Refactoring C functions and methods
Jeroen Demeyer
GitHub Issues Migration Plan
Mariatta
Python 3.9 Release Schedule
Łukasz Langa
Reducing CPython’s Feature Delivery Latency
Łukasz Langa, Steve Dower, Alyssa Coghlan
Python 3.10 Release Schedule
Pablo Galindo Salgado
Isolating Extension Modules
Petr Viktorin
Structural Pattern Matching: Motivation and Rationale
Tobias Kohn, Guido van Rossum
Structural Pattern Matching: Tutorial
Daniel F Moisset
Specializing Adaptive Interpreter
Mark Shannon
Python 3.11 Release Schedule
Pablo Galindo Salgado
Unicode-related Security Considerations for Python
Petr Viktorin
Python 3.12 Release Schedule
Thomas Wouters
Python 3.13 Release Schedule
Thomas Wouters
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
Python 3.14 Release Schedule
Hugo van Kemenade
REPL-acing the default REPL
Pablo Galindo Salgado, Łukasz Langa, Lysandros Nikolaou, Emily Morehouse-Valcarcel
Reserved
Barry Warsaw
Python Web Server Gateway Interface v1.0.1
Phillip J. Eby
Python Language Governance Proposal Overview
Barry Warsaw
Open Source Governance Survey
Barry Warsaw, Łukasz Langa, Antoine Pitrou, Doug Hellmann, Carol Willing
The Steering Council Model
Nathaniel J. Smith, Donald Stufft
January 2019 Steering Council election
Nathaniel J. Smith, Ee Durbin
2020 Term Steering Council election
Ewa Jodlowska, Ee Durbin
2021 Term Steering Council election
Ewa Jodlowska, Ee Durbin, Joe Carey
2022 Term Steering Council election
Ewa Jodlowska, Ee Durbin, Joe Carey
2023 Term Steering Council election
Ee Durbin
2024 Term Steering Council election
Ee Durbin
2025 Term Steering Council election
Ee Durbin
Improving License Clarity with Better Package Metadata
Philippe Ombredanne, C.A.M. Gerlach, Karolina Surma
Extending the Repository API to Mitigate Dependency Confusion Attacks
Donald Stufft
Secure PyPI downloads with signed repository metadata
Trishank Karthik Kuppusamy, Vladimir Diaz, Marina Moore, Lukas Puehringer, Joshua Lock, Lois Anne DeLong, Justin Cappos
Postponed Evaluation of Annotations
Łukasz Langa
Vectorcall: a fast calling protocol for CPython
Mark Shannon, Jeroen Demeyer
Filename of a Source Distribution
Tzu-ping Chung, Paul Moore
Deferred Evaluation Of Annotations Using Descriptors
Larry Hastings
Serve Distribution Metadata in the Simple Repository API
Tzu-ping Chung
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
Comparison of extra names for optional distribution dependencies
Brett Cannon
Make UTF-8 mode default
Inada Naoki
Isolating modules in the standard library
Erlend Egeberg Aasland, Petr Viktorin
JSON-based Simple API for Python Package Indexes
Donald Stufft, Pradyun Gedam, Cooper Lees, Dustin Ingram
Remove private dict version field added in PEP 509
Ken Jin
Syntactic formalization of f-strings
Pablo Galindo, Batuhan Taskaya, Lysandros Nikolaou, Marta Gómez Macías
Making the Global Interpreter Lock Optional in CPython
Sam Gross
Rename dist-info-metadata in the Simple API
Donald Stufft
Dependency Groups in pyproject.toml
Stephen Rosen
Uniform project URLs in core metadata
William Woodruff, Facundo Tuesca
Surviving a Compromise of PyPI: End-to-end signing of packages
Trishank Karthik Kuppusamy, Vladimir Diaz, Justin Cappos, Marina Moore
Adding a frozenmap type to collections
Yury Selivanov
Syntactic Macros
Mark Shannon
Precise Semantics for Pattern Matching
Mark Shannon
Sentinel Values
Tal Einat
Syntax for late-bound function argument defaults
Chris Angelico
Allow parentheses in assert statements
Pablo Galindo Salgado
Upload 2.0 API for Python Package Repositories
Donald Stufft
Recording the provenance of installed packages
Fridolín Pokorný
PyBI: a standard format for distributing Python Binaries
Nathaniel J. Smith
Subscriptable functions
James Hilton-Balfe
Cross-compiling Python packages
Filipe Laíns
Specifying external dependencies in pyproject.toml
Pradyun Gedam, Ralf Gommers
Documentation in Annotated Metadata
Sebastián Ramírez
TypedDict with Typed Extra Items
Zixuan James Li
Shorthand syntax for keyword arguments at invocation
Joshua Bambrick, Chris Angelico
Static description file for build details of Python installations
Filipe Laíns
Add Py_COMPAT_API_VERSION to the Python C API
Victor Stinner, Petr Viktorin
JIT Compilation
Brandt Bucher, Savannah Ostrowski
Type checking Annotated metadata
Adrian Garcia Badaracco
Annotating Type Forms
David Foster, Eric Traut
A Unified TLS API for Python
Joop van de Pol, William Woodruff
Implementing PEP 649
Jelle Zijlstra
Template Strings
Jim Baker, Guido van Rossum, Paul Everitt, Koudai Aono, Lysandros Nikolaou, Dave Peck
A file format to record Python dependencies for installation reproducibility
Brett Cannon
Implicit namespaces for package repositories
Ofek Lev
Implicit namespace policy for PyPI
Ofek Lev
Allow except and except* expressions without parentheses
Pablo Galindo, Brett Cannon
External Wheel Hosting
Barry Warsaw, Ethan Smith
Limiting deletions on PyPI
William Woodruff, Alexis Challande
Disallow return/break/continue that exit a finally block
Irit Katriel, Alyssa Coghlan
Explicit Priority Choices Among Multiple Indexes
Michael Sarahan
Annotating Read-Only Attributes
Safe external debugger interface for CPython
Pablo Galindo Salgado, Matt Wozniski, Ivona Stojanovic
How to Re-invent the Wheel
Ethan Smith
Preventing task-cancellation bugs by limiting yield in async generators
Zac Hatfield-Dodds, Nathaniel J. Smith
Calendar versioning for Python
Hugo van Kemenade
Decorators for Functions and Methods
Kevin D. Smith, Jim J. Jewett, Skip Montanaro, Anthony Baxter
Reverse Iteration
Raymond Hettinger
subprocess - New process module
Peter Astrand
Decimal Data Type
Facundo Batista
Imports: Multi-Line and Absolute/Relative
2.4, 2.5, 2.6
Locale-Independent Float/String Conversions
Christian R. Reis
Executing modules as scripts
Alyssa Coghlan
Unifying try-except and try-finally
Georg Brandl
Coroutines via Enhanced Generators
Guido van Rossum, Phillip J. Eby
The “with” Statement
Guido van Rossum, Alyssa Coghlan
Required Superclass for Exceptions
Brett Cannon, Guido van Rossum
Using ssize_t as the index type
Martin von Löwis
Allowing Any Object to be Used for Slicing
Travis Oliphant
The “bytes” Object
Neil Schemenauer, Guido van Rossum
2.6, 3.0
Function Signature Object
Brett Cannon, Jiwon Seo, Yury Selivanov, Larry Hastings
Main module explicit relative imports
Alyssa Coghlan
2.6, 3.0
Per user site-packages directory
Christian Heimes
2.6, 3.0
Addition of the multiprocessing package to the standard library
Jesse Noller, Richard Oudkerk
2.6, 3.0
Adding an ordered dictionary to collections
Armin Ronacher, Raymond Hettinger
2.7, 3.1
Database of Installed Python Distributions
Tarek Ziadé
2.7, 3.2
Format Specifier for Thousands Separator
Raymond Hettinger
2.7, 3.1
Syntax for Delegating to a Subgenerator
Gregory Ewing
Non-decodable Bytes in System Character Interfaces
Martin von Löwis
Defining a Stable ABI
Martin von Löwis
argparse - New Command Line Parsing Module
Steven Bethard
2.7, 3.2
Dictionary-Based Configuration For Logging
Vinay Sajip
2.7, 3.2
Flexible String Representation
Martin von Löwis
Python launcher for Windows
Mark Hammond, Martin von Löwis
Python Virtual Environments
Carl Meyer
Suppressing exception context
Ethan Furman
Key-Sharing Dictionary
Mark Shannon
Explicit Unicode Literal for Python 3.3
Armin Ronacher, Alyssa Coghlan
Implement context suppression with exception attributes
Benjamin Peterson
Including mock in the Standard Library
Michael Foord
Add monotonic time, performance counter, and process time functions
Cameron Simpson, Jim J. Jewett, Stephen J. Turnbull, Victor Stinner
Implicit Namespace Packages
Eric V. Smith
Adding sys.implementation
Eric Snow
A method for exposing a length hint
Alex Gaynor
Compatibility Tags for Built Distributions
Daniel Holth
The Wheel Binary Package Format 1.0
Daniel Holth
The pathlib module – object-oriented filesystem paths
Antoine Pitrou
Adding an Enum type to the Python standard library
Barry Warsaw, Eli Bendersky, Ethan Furman
The Argument Clinic DSL
Larry Hastings
Version Identification and Dependency Specification
Alyssa Coghlan, Donald Stufft
Improving Python ZIP Application Support
Daniel Holth, Paul Moore
Safe object finalization
Antoine Pitrou
Single-dispatch generic functions
Łukasz Langa
Add new APIs to customize Python memory allocators
Victor Stinner
Make newly created file descriptors non-inheritable
Victor Stinner
Additional Unpacking Generalizations
Joshua Landau
Adding A Statistics Module To The Standard Library
Steven D’Aprano
A ModuleSpec Type for the Import System
Eric Snow
Explicit bootstrapping of pip in Python installations
Donald Stufft, Alyssa Coghlan
Add a new tracemalloc module to trace Python memory allocations
Victor Stinner
Secure and interchangeable hash algorithm
Christian Heimes
Adding % formatting to bytes and bytearray
Ethan Furman
A dedicated infix operator for matrix multiplication
Nathaniel J. Smith
Network Security Enhancements for Python 2.7.x
Alyssa Coghlan
2.7.9
Preserving the order of **kwargs in a function.
Eric Snow
os.scandir() function – a better and faster directory iterator
Ben Hoyt
Retry system calls failing with EINTR
Charles-François Natali, Victor Stinner
Enabling certificate verification by default for stdlib http clients
Alex Gaynor
2.7.9, 3.4.3, 3.5
Backport ensurepip (PEP 453) to Python 2.7
Donald Stufft, Alyssa Coghlan
Change StopIteration handling inside generators
Chris Angelico, Guido van Rossum
Type Hints
Guido van Rossum, Jukka Lehtosalo, Łukasz Langa
A Function for testing approximate equality
Christopher Barker
Make the Python Launcher aware of virtual environments
Paul Moore
Simpler customisation of class creation
Martin Teichmann
Elimination of PYO files
Brett Cannon
Multi-phase extension module initialization
Petr Viktorin, Stefan Behnel, Alyssa Coghlan
Coroutines with async and await syntax
Yury Selivanov
HTTPS verification migration tools for Python 2.7
Alyssa Coghlan, Robert Kuska, Marc-André Lemburg
2.7.12
Local Time Disambiguation
Alexander Belopolsky, Tim Peters
Literal String Interpolation
Eric V. Smith
Simple Repository API
Donald Stufft
Adding A Secrets Module To The Standard Library
Steven D’Aprano
Dependency specification for Python Software Packages
Robert Collins
Underscores in Numeric Literals
Georg Brandl, Serhiy Storchaka
A build-system independent format for source trees
Nathaniel J. Smith, Thomas Kluyver
Specifying Minimum Build System Requirements for Python Projects
Brett Cannon, Nathaniel J. Smith, Donald Stufft
Adding a file system path protocol
Brett Cannon, Koos Zevenhoven
Preserving Class Attribute Definition Order
Eric Snow
Adding a frame evaluation API to CPython
Brett Cannon, Dino Viehland
Make os.urandom() blocking on Linux
Victor Stinner
Asynchronous Generators
Yury Selivanov
Syntax for Variable Annotations
Ryan Gonzalez, Philip House, Ivan Levkivskyi, Lisa Roach, Guido van Rossum
Removing Un(der)used file types/extensions on PyPI
Donald Stufft
Change Windows console encoding to UTF-8
Steve Dower
Change Windows filesystem encoding to UTF-8
Steve Dower
Asynchronous Comprehensions
Yury Selivanov
Coercing the legacy C locale to a UTF-8 based locale
Alyssa Coghlan
A New C-API for Thread-Local Storage in CPython
Erik M. Bray, Masayuki Yamamoto
Add a new UTF-8 Mode
Victor Stinner
Protocols: Structural subtyping (static duck typing)
Ivan Levkivskyi, Jukka Lehtosalo, Łukasz Langa
Deterministic pycs
Benjamin Peterson
Built-in breakpoint()
Barry Warsaw
Data Classes
Eric V. Smith
Core support for typing module and generic types
Ivan Levkivskyi
Distributing and Packaging Type Information
Ethan Smith
Module __getattr__ and __dir__
Ivan Levkivskyi
Add new time functions with nanosecond resolution
Victor Stinner
Show DeprecationWarning in __main__
Alyssa Coghlan
Metadata for Python Software Packages 2.1
Dustin Ingram
Context Variables
Yury Selivanov
Python Positional-Only Parameters
Larry Hastings, Pablo Galindo, Mario Corchero, Eric N. Vander Weele
Assignment Expressions
Chris Angelico, Tim Peters, Guido van Rossum
Module State Access from C Extension Methods
Petr Viktorin, Alyssa Coghlan, Eric Snow, Marcel Plch
Pickle protocol 5 with out-of-band data
Antoine Pitrou
Python Runtime Audit Hooks
Steve Dower
Add Union Operators To dict
Steven D’Aprano, Brandt Bucher
Type Hinting Generics In Standard Collections
Łukasz Langa
Literal Types
Michael Lee, Ivan Levkivskyi, Jukka Lehtosalo
Python Initialization Configuration
Victor Stinner, Alyssa Coghlan
TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys
Jukka Lehtosalo
Adding a final qualifier to typing
Michael J. Sullivan, Ivan Levkivskyi
Adding “Yank” Support to the Simple API
Donald Stufft
Flexible function and variable annotations
Till Varoquaux, Konstantin Kashin
Removing dead batteries from the standard library
Christian Heimes, Brett Cannon
Add optional EncodingWarning
Inada Naoki
Future ‘manylinux’ Platform Tags for Portable Linux Built Distributions
Nathaniel J. Smith, Thomas Kluyver
Allow writing union types as X | Y
Philippe PRADOS, Maggie Moss
Recording the Direct URL Origin of installed distributions
Stéphane Bidoul, Chris Jerdonek
Parameter Specification Variables
Mark Mendoza
Explicit Type Aliases
Shannon Zhu
Relaxing Grammar Restrictions On Decorators
Brandt Bucher
Support for the IANA Time Zone Database in the Standard Library
Paul Ganssle
String methods to remove prefixes and suffixes
Dennis Sweeney
New PEG parser for CPython
Guido van Rossum, Pablo Galindo, Lysandros Nikolaou
Add Optional Length-Checking To zip
Brandt Bucher
Storing project metadata in pyproject.toml
Brett Cannon, Dustin Ingram, Paul Ganssle, Pradyun Gedam, Sébastien Eustace, Thomas Kluyver, Tzu-ping Chung
Remove wstr from Unicode
Inada Naoki
Remove Py_UNICODE encoder APIs
Inada Naoki
Precise line numbers for debugging and other tools.
Mark Shannon
Recording installed projects
Petr Viktorin
Add math.tau
Alyssa Coghlan
Versioning PyPI’s Simple API
Donald Stufft
Deprecate distutils module
Steve Dower
Structural Pattern Matching: Specification
Brandt Bucher, Guido van Rossum
Metadata for Package Source Distributions
Paul Moore
Require OpenSSL 1.1.1 or newer
Christian Heimes
Variadic Generics
Mark Mendoza, Matthew Rahtz, Pradeep Kumar Srinivasan, Vincent Siles
User-Defined Type Guards
Eric Traut
Maintaining the Stable ABI
Petr Viktorin
Exception Groups and except*
Irit Katriel, Yury Selivanov, Guido van Rossum
Marking individual TypedDict items as required or potentially-missing
David Foster
Platform Tag for Linux Distributions Using Musl
Tzu-ping Chung
Include Fine Grained Error Locations in Tracebacks
Pablo Galindo, Batuhan Taskaya, Ammar Askar
Editable installs for pyproject.toml based builds (wheel based)
Daniel Holth, Stéphane Bidoul
Consistent views of namespaces
Mark Shannon, Tian Gao
Low Impact Monitoring for CPython
Mark Shannon
Convert macros to functions in the Python C API
Erlend Egeberg Aasland, Victor Stinner
Self Type
Pradeep Kumar Srinivasan, James Hilton-Balfe
Arbitrary Literal String Type
Pradeep Kumar Srinivasan, Graham Bleaney
Enriching Exceptions with Notes
Zac Hatfield-Dodds
tomllib: Support for Parsing TOML in the Standard Library
Taneli Hukkinen, Shantanu Jain
Data Class Transforms
Erik De Bonte, Eric Traut
Format Specifier for Signed Zero
John Belmonte
Immortal Objects, Using a Fixed Refcount
Eric Snow, Eddie Elizondo
A Per-Interpreter GIL
Eric Snow
Making the buffer protocol accessible in Python
Jelle Zijlstra
Unstable C API tier
Petr Viktorin
Using TypedDict for more precise **kwargs typing
Franek Magiera
Type Parameter Syntax
Eric Traut
Type Defaults for Type Parameters
James Hilton-Balfe
Limited C API for Extending Opaque Types
Petr Viktorin
Override Decorator for Static Typing
Steven Troxler, Joshua Xu, Shannon Zhu
Additional Fields for the Simple API for Package Indexes
Paul Moore
Marking deprecations using the type system
Jelle Zijlstra
TypedDict: Read-only items
Alice Purcell
Filter for tarfile.extractall
Petr Viktorin
Inlined comprehensions
Carl Meyer
Disabling bdist_egg distribution uploads on PyPI
William Woodruff
Using tarfile.data_filter for source distribution extraction
Petr Viktorin
Inline script metadata
Ofek Lev
Adding iOS as a supported platform
Russell Keith-Magee
C API to format a type fully qualified name
Victor Stinner
Adding Android as a supported platform
Malcolm Smith
Index support for digital attestations
William Woodruff, Facundo Tuesca, Dustin Ingram
Python Configuration C API
Victor Stinner
Narrowing types with TypeIs
Jelle Zijlstra
C API to import-export Python integers
Sergey B Kirpichev, Victor Stinner
Advanced String Formatting
Talin
Keyword-Only Arguments
Talin
Access to Names in Outer Scopes
Ka-Ping Yee
Make print a function
Georg Brandl
Revamping dict.keys(), .values() and .items()
Guido van Rossum
Function Annotations
Collin Winter, Tony Lownds
Standard Library Reorganization
Brett Cannon
Raising Exceptions in Python 3000
Collin Winter
Catching Exceptions in Python 3000
Collin Winter
Simple input built-in in Python 3000
Andre Roberge
Bytes literals in Python 3000
Jason Orendorff
Removal of Tuple Parameter Unpacking
Brett Cannon
Renaming iterator.next() to iterator.__next__()
Ka-Ping Yee
Metaclasses in Python 3000
Talin
New I/O
Daniel Stutzbach, Guido van Rossum, Mike Verdone
Revising the buffer protocol
Travis Oliphant, Carl Banks
Introducing Abstract Base Classes
Guido van Rossum, Talin
Using UTF-8 as the default source encoding
Martin von Löwis
Extension Module Initialization and Finalization
Martin von Löwis
Making PyObject_HEAD conform to standard C
Martin von Löwis
Integer Literal Support and Syntax
Patrick Maupin
Class Decorators
Collin Winter
Supporting Non-ASCII Identifiers
Martin von Löwis
Extended Iterable Unpacking
Georg Brandl
Exception Chaining and Embedded Tracebacks
Ka-Ping Yee
New Super
Calvin Spealman, Tim Delaney, Lie Ryan
Immutable Bytes and Mutable Buffer
Guido van Rossum
String representation in Python 3000
Atsuo Ishimoto
A Type Hierarchy for Numbers
Jeffrey Yasskin
IP Address Manipulation Library for the Python Standard Library
Peter Moody
PYC Repository Directories
Barry Warsaw
futures - execute computations asynchronously
Brian Quinlan
ABI version tagged .so files
Barry Warsaw
Reworking the OS and IO exception hierarchy
Antoine Pitrou
Pickle protocol version 4
Antoine Pitrou
Qualified name for classes and functions
Antoine Pitrou
Asynchronous IO Support Rebooted: the “asyncio” Module
Guido van Rossum
Choosing a distributed VCS for the Python project
Brett Cannon, Stephen J. Turnbull, Alexandre Vassalotti, Barry Warsaw, Dirkjan Ochtman
Python 3.1 Release Schedule
Benjamin Peterson
Migrating from Subversion to Mercurial
Dirkjan Ochtman, Antoine Pitrou, Georg Brandl
Python 3.2 Release Schedule
Georg Brandl
Python 3.3 Release Schedule
Georg Brandl
Python 2.8 Un-release Schedule
Barry Warsaw
Python 3.4 Release Schedule
Larry Hastings
Transitioning to release-file hosting on PyPI
Holger Krekel, Carl Meyer
Removal of the PyPI Mirror Auto Discovery and Naming Scheme
Donald Stufft
Removal of the PyPI Mirror Authenticity API
Donald Stufft
Removing External Hosting Support on PyPI
Donald Stufft
Python 3.5 Release Schedule
Larry Hastings
Python 3.6 Release Schedule
Ned Deily
Migrating from hg.python.org to GitHub
Brett Cannon
Python 3.7 Release Schedule
Ned Deily
Package Index Name Retention
Łukasz Langa
Python 3.8 Release Schedule
Łukasz Langa
Using GitHub Issues for CPython
Mariatta
Python 3000
Guido van Rossum
Procedure for Backwards-Incompatible Changes
Steven Bethard
Python Language Moratorium
Brett Cannon, Jesse Noller, Guido van Rossum
Things that will Not Change in Python 3000
Georg Brandl
Miscellaneous Python 3.0 Plans
Brett Cannon
Python Governance Voting Process
Brett Cannon, Christian Heimes, Donald Stufft, Eric Snow, Gregory P. Smith, Łukasz Langa, Mariatta, Nathaniel J. Smith, Pablo Galindo Salgado, Raymond Hettinger, Tal Einat, Tim Peters, Zachary Ware
New release cycle and introducing long-term support versions
Antoine Pitrou, Georg Brandl, Barry Warsaw
Protecting cleanup statements from interruptions
Paul Colomiets
Naming conventions and recipes related to packaging
Benoit Bryon
Python Web3 Interface
Chris McDonough, Armin Ronacher
Add __getdescriptor__ method to metaclass
Ronald Oussoren
The Wheel Binary Package Format 1.9
Daniel Holth
python -m foo should also bind ‘foo’ in sys.modules
Cameron Simpson, Chris Angelico, Joseph Jevnik
None-aware operators
Mark E. Haase, Steve Dower
A circuit breaking protocol and binary operators
Alyssa Coghlan, Mark E. Haase
Deterministic cleanup for iterators
Nathaniel J. Smith
Improved Errors for Missing Standard Library Modules
Tomáš Orsava, Petr Viktorin, Alyssa Coghlan
Rich comparison chaining
Alyssa Coghlan
Running extension modules using the -m option
Marcel Plch, Petr Viktorin
Threaded garbage collection
Antoine Pitrou
Generator-sensitivity for Context Variables
Nathaniel J. Smith
Disallow using macros as l-values
Victor Stinner
Multiple Interpreters in the Stdlib
Eric Snow
Overloading, Generic Functions, Interfaces, and Adaptation
Phillip J. Eby
Standard daemon process library
Ben Finney
Statement local namespaces (aka “given” clause)
Alyssa Coghlan
How to Change Python’s Grammar
Michael Hudson, Jack Diederich, Alyssa Coghlan, Benjamin Peterson
Reliable Acquisition/Release Pairs
Michael Hudson, Paul Moore
Adding Roman Numeral Literals to Python
Mike Meyer
Metadata for Python Software Packages 1.1
A.M. Kuchling, Richard Jones
Enhanced While Loop
Raymond Hettinger, W Isaac Carroll
Eliminate Implicit Exception Instantiation
Steven Taschuk
Python Synchronize/Asynchronize Block
Michel Pelletier
Date/Time Parsing and Formatting
A.M. Kuchling
Resource-Release Support for Generators
Samuele Pedroni
A Case for Top and Bottom Values
Josiah Carlson, Terry Reedy
Treating Builtins as Constants in the Standard Library
Raymond Hettinger
Python Bytecode Verification
Michel Pelletier
Byte vectors and String/Unicode Unification
Skip Montanaro
Simple Coroutines via SuspendIteration
Clark C. Evans
Overloadable Boolean Operators
Gregory Ewing
Make None Callable
Andrew McClelland
Design of the CPython Compiler
Brett Cannon
Anonymous Block Statements
Guido van Rossum
Exception Chaining and Embedded Tracebacks
Ka-Ping Yee
Metadata for Python Software Packages 1.2
Richard Jones
User Defined (“with”) Statements
Alyssa Coghlan
Exception Reorganization for Python 3.0
Brett Cannon
Allow str() to return unicode strings
Neil Schemenauer
Codetags
Micah Elliott
The freeze protocol
Barry Warsaw
Enumerations in Python
Ben Finney
Path - Object oriented filesystem paths
Björn Lindqvist
The “make” Statement
Steven Bethard
Syntax For Dynamic Attribute Access
Ben North
Transitioning to the Py3K Standard Library
Barry Warsaw
Adding the pkg_resources module
Phillip J. Eby
New Super
Calvin Spealman, Tim Delaney
Post import hooks
Christian Heimes
2.6, 3.0
Allow __enter__() methods to skip the statement body
Alyssa Coghlan
2.7, 3.1
Adding an Assignment Expression
Jervis Whitley
2.7, 3.2
Mirroring infrastructure for PyPI
Tarek Ziadé, Martin von Löwis
Namespace Packages
Martin von Löwis
Changing the version comparison module in Distutils
Tarek Ziadé
Static metadata for Distutils
Tarek Ziadé
2.7, 3.2
Qualified Names for Modules
Alyssa Coghlan
Module Version Numbers
Barry Warsaw
BDFL Retirement
Barry Warsaw, Brett Cannon
Simplified Package Layout and Partitioning
Phillip J. Eby
Improved Encapsulation of Import State
Alyssa Coghlan, Greg Slodkowicz
Standard library __preview__ package
Alyssa Coghlan, Eli Bendersky
Use decimal.Decimal type for timestamps
Victor Stinner
Provisional packages in the Python standard library
Alyssa Coghlan, Eli Bendersky
Faster evolution of the Python Standard Library
Alyssa Coghlan
Add a frozendict builtin type
Victor Stinner
Simpler customisation of class creation
Alyssa Coghlan, Daniel Urban
Metadata for Python Software Packages 2.0
Alyssa Coghlan, Daniel Holth, Donald Stufft
Time zone support improvements
Lennart Regebro
Restructuring the CPython startup sequence
Alyssa Coghlan, Victor Stinner, Eric Snow
Easier suppression of file descriptor inheritance
Victor Stinner
A DSL for specifying signatures, annotations and argument converters
Stefan Krah
Inclusion of implicit pip bootstrap in Python installation
Richard Jones
Adding a key-transforming dictionary to collections
Antoine Pitrou
Standard Metadata Extensions for Python Software Packages
Alyssa Coghlan
Add binary interpolation and formatting
Antoine Pitrou
Core development workflow automation for CPython
Alyssa Coghlan
Exception-catching expressions
Chris Angelico
Migration of dict iteration code to Python 3
Alyssa Coghlan
Support for indexing with keyword arguments
Stefano Borini, Joseph Martinot-Lagarde
Adding structured data to built-in exceptions
Sebastian Kreft
Creating forge.python.org
Alyssa Coghlan
Migrate CPython to Git, Github, and Phabricator
Donald Stufft
Chain exceptions at C level
Victor Stinner
Environment Markers
James Polley
A standard mechanism for backward compatibility
Ed Schofield
A protocol for delegating datetime methods to their tzinfo implementations
Alexander Belopolsky, Tim Peters
General purpose template literal strings
Alyssa Coghlan, Nick Humrich
String Interpolation - Extended Discussion
Mike G. Miller
Using the System RNG by default
Alyssa Coghlan
Migrate CPython to Git and GitLab
Barry Warsaw
Add a private version to dict
Victor Stinner
Specialize functions with guards
Victor Stinner
API for code transformers
Victor Stinner
A Platform Tag for Portable Linux Built Distributions
Robert T. McGibbon, Nathaniel J. Smith
Build system abstraction for pip/conda etc
Robert Collins, Nathaniel J. Smith
Managing global context via ‘with’ blocks in generators and coroutines
Nathaniel J. Smith
Allow BlockingIOError in security sensitive APIs
Alyssa Coghlan, Nathaniel J. Smith
Existence checking operators
Alyssa Coghlan
Final Grammar for Literal String Interpolation
Philipp Angerer
Dot Notation Assignment In Function Header
Markus Meskanen
A Unified TLS API for Python
Cory Benfield, Christian Heimes
Backport ssl.MemoryBIO and ssl.SSLObject to Python 2.7
Victor Stinner, Cory Benfield
More Flexible Loop Control
R David Murray
Instance Descriptors
Larry Hastings
Execution Context
Yury Selivanov, Elvis Pranskevichus
Security transparency in the Python runtime
Steve Dower
Multiple Interpreters in the Stdlib
Eric Snow
Context-local variables (contextvars)
Koos Zevenhoven
Defined semantics for locals()
Alyssa Coghlan
Built-in noop()
Barry Warsaw
The manylinux2010 Platform Tag
Mark Williams, Geoffrey Thomas, Thomas Kluyver
Unifying function/method classes
Jeroen Demeyer
Rationalize Built-in function classes
Mark Shannon
Augmented Assignment Expressions
Alyssa Coghlan
The C call protocol
Jeroen Demeyer
Python local packages directory
Kushal Das, Steve Dower, Donald Stufft, Alyssa Coghlan
A Concurrency Memory Model for Python
Jeffrey Yasskin
Improving bugs.python.org
Ezio Melotti, Berker Peksag
Introducing incremental feature releases
Alyssa Coghlan
The manylinux2014 Platform Tag
Dustin Ingram
Forbid return/break/continue breaking out of finally
Damien George, Batuhan Taskaya
A rolling feature release stream for CPython
Steve Dower, Alyssa Coghlan
Python Compatibility Version
Victor Stinner
Coordinated Python release
Miro Hrončok, Victor Stinner
The one million limit
Mark Shannon
Hide implementation details from the C API
Victor Stinner
Structural Pattern Matching
Brandt Bucher, Daniel F Moisset, Tobias Kohn, Ivan Levkivskyi, Guido van Rossum, Talin
Dependency specification in pyproject.toml based on PEP 508
Ofek Lev
Dependency specification in pyproject.toml using an exploded TOML table
Laurie Opperman, Arun Babu Neelicattu
Support for indexing with keyword arguments
Stefano Borini
Unused variable syntax
Thomas Wouters
Using an underscore in the version portion of Python 3.10 compatibility tags
Brett Cannon, Steve Dower, Barry Warsaw
Explicit Pattern Syntax for Structural Pattern Matching
Alyssa Coghlan
Allow writing optional types as x?
Maggie Moss
Extensible customizations of the interpreter at startup
Mario Corchero
Specifying Installer Requirements for Python Projects
Vikram Jayanthi, Dustin Ingram, Brett Cannon
Robust Stack Overflow Handling
Mark Shannon
Editable installs via virtual wheels
Bernát Gábor
Standardizing Enum str(), repr(), and format() behaviors
Ethan Furman
A file format to list Python dependencies for reproducibility of an application
Brett Cannon, Pradyun Gedam, Tzu-ping Chung
Reject Foolish Indentation
Laura Creighton
Callable Type Syntax
Steven Troxler, Pradeep Kumar Srinivasan
Lazy Imports
Germán Méndez Bravo, Carl Meyer
Require virtual environments by default for package installers
Pradyun Gedam
A simplified signature for __exit__ and __aexit__
Irit Katriel
Adding a “converter” parameter to dataclasses.field
Joshua Cannon
Callable Modules
Amethyst Reese
Dependency specification for single-file scripts
Paul Moore
Stricter Type Guards
Rich Chiodo, Eric Traut, Erik De Bonte
Module __setattr__ and __delattr__
Sergey B Kirpichev
IEEE 754 Floating Point Special Values
Gregory R. Warnes
Add PyUnicode_Export() and PyUnicode_Import() C functions
Victor Stinner
No More Bare Excepts
Pablo Galindo, Brett Cannon
Procedure for reviewing and improving standard library modules
Georg Brandl
A Switch/Case Statement
Guido van Rossum
Postfix type declarations
Georg Brandl
Delineation of the main module
Brett Cannon
Remove Backslash Continuation
Jim J. Jewett
Remove Implicit String Concatenation
Jim J. Jewett, Raymond Hettinger
BList: A Faster List-like Type
Daniel Stutzbach
2.6, 3.0
Access to Current Module/Class/Function
Jim J. Jewett
Introducing Roles
Collin Winter
Labeled break and continue
Matt Chisholm
Cleaning out sys and the “interpreter” module
Benjamin Peterson
str(container) should call str(item), not repr(item)
Oleg Broytman, Jim J. Jewett
Add a “while” clause to generator expressions
Gerald Britton
Asynchronous I/O For subprocess.Popen
Eric Pruitt, Charles R. McCreary, Josiah Carlson
Merging Unladen Swallow into CPython
Collin Winter, Jeffrey Yasskin, Reid Kleckner
Cofunctions
Gregory Ewing
Asynchronous IO support
Laurens Van Houtven
The Technical Leader Governance Model
Barry Warsaw
Python Governance Model Lead by Trio of Pythonistas
Mariatta, Barry Warsaw
The Community Governance Model
Łukasz Langa
The External Council Governance Model
Steve Dower
The Commons Governance Model
Jack Jansen
Organization of the Python community
Victor Stinner
I
—
Informational
: Non-normative PEP containing background, guidelines or other information relevant to the Python ecosystem
P
—
Process
: Normative PEP describing or proposing a change to a Python community process, workflow or governance
S
—
Standards Track
: Normative PEP with a new feature for Python, implementation change for CPython or interoperability standard for the ecosystem
More info in PEP 1
.
A
—
Accepted
: Normative proposal accepted for implementation
A
—
Active
: Currently valid informational guidance, or an in-use process
D
—
Deferred
: Inactive draft that may be taken up again at a later time
<No letter>
—
Draft
: Proposal under active discussion and revision
F
—
Final
: Accepted and implementation complete, or no longer active
P
—
Provisional
: Provisionally accepted but additional feedback needed
R
—
Rejected
: Formally declined and will not be accepted
S
—
Superseded
: Replaced by another succeeding PEP
W
—
Withdrawn
: Removed from consideration by sponsor or authors
More info in PEP 1
.
Email Address
A.M. Kuchling
amk at amk.ca
aahz at pythoncraft.com
Adam Turner
python at quite.org.uk
Adrian Garcia Badaracco
adrian at adriangb.com
Alex Gaynor
alex.gaynor at gmail.com
Alex Martelli
aleaxit at gmail.com
Alexander Belopolsky
alexander.belopolsky at gmail.com
Alexandre Vassalotti
alexandre at peadrop.com
Alexis Challande
alexis.challande at trailofbits.com
Alice Purcell
alicederyn at gmail.com
Alyssa Coghlan
ncoghlan at gmail.com
Amethyst Reese
amethyst at n7.gg
Ammar Askar
ammar at ammaraskar.com
Andre Roberge
andre.roberge at gmail.com
Andrew McClelland
eternalsquire at comcast.net
Andrew McNamara
andrewm at object-craft.com.au
Anthony Baxter
anthony at interlink.com.au
Antoine Pitrou
solipsis at pitrou.net
Armin Ronacher
armin.ronacher at active-4.com
Arun Babu Neelicattu
arun.neelicattu at gmail.com
Atsuo Ishimoto
ishimoto at gembook.org
Barry Warsaw
barry at python.org
Batuhan Taskaya
batuhan at python.org
Ben Finney
ben+python at benfinney.id.au
Ben Hoyt
benhoyt at gmail.com
Ben North
ben at redfrontdoor.org
Benjamin Peterson
benjamin at python.org
Benoit Bryon
benoit at marmelune.net
Berker Peksag
berker.peksag at gmail.com
Bernát Gábor
gaborjbernat at gmail.com
Björn Lindqvist
bjourne at gmail.com
Brandt Bucher
brandt at python.org
Brett Cannon
brett at python.org
Brian Quinlan
brian at sweetapp.com
C.A.M. Gerlach
cam.gerlach at gerlach.cam
Calvin Spealman
ironfroggy at gmail.com
Cameron Simpson
cs at cskk.id.au
Carl Banks
pythondev at aerojockey.com
Carl Friedrich Bolz-Tereick
cfbolz at gmx.de
Carl Meyer
carl at oddbird.net
Carol Willing
willingc at gmail.com
Charles R. McCreary
Charles-François Natali
cf.natali at gmail.com
Chris Angelico
rosuav at gmail.com
Chris Jerdonek
chris.jerdonek at gmail.com
Chris McDonough
chrism at plope.com
Christian Heimes
christian at python.org
Christian R. Reis
kiko at async.com.br
Christopher A. Craig
python-pep at ccraig.org
Christopher Barker
pythonchb at gmail.com
Clark C. Evans
cce at clarkevans.com
Cliff Wells
logiplexsoftware at earthlink.net
Collin Winter
collinwinter at google.com
Cooper Lees
me at cooperlees.com
Cory Benfield
cory at lukasa.co.uk
Damien George
Daniel F Moisset
dfmoisset at gmail.com
Daniel Holth
dholth at gmail.com
Daniel Stutzbach
daniel at stutzbachenterprises.com
Daniel Urban
urban.dani+py at gmail.com
Dave Cole
djc at object-craft.com.au
Dave Peck
davepeck at davepeck.org
David Ascher
davida at activestate.com
David Eppstein
eppstein at ics.uci.edu
David Foster
david at dafoster.net
David Goodger
goodger at python.org
David Hewitt
1939362+davidhewitt at users.noreply.github.com
David Woods
dw-git at d-woods.co.uk
Dennis Sweeney
sweeney.dennis650 at gmail.com
Dino Viehland
dinov at microsoft.com
Dirkjan Ochtman
dirkjan at ochtman.nl
Domenico Andreoli
domenico.andreoli at linux.com
Donald Stufft
donald at stufft.io
Donghee Na
donghee.na at python.org
Doug Hellmann
doug at doughellmann.com
Dustin Ingram
di at python.org
Ed Schofield
ed at pythoncharmers.com
Eddie Elizondo
eduardo.elizondorueda at gmail.com
Ee Durbin
ee at python.org
Elana Hashman
ehashman at debian.org
Eli Bendersky
eliben at gmail.com
Elvis Pranskevichus
elvis at edgedb.com
Emily Morehouse-Valcarcel
emily at python.org
eneg at discuss.python.org
Eric N. Vander Weele
ericvw at gmail.com
Eric Pruitt
Eric Snow
ericsnowcurrently at gmail.com
Eric Traut
erictr at microsoft.com
Eric V. Smith
eric at trueblade.com
Erik De Bonte
erikd at microsoft.com
Erik M. Bray
Erlend Egeberg Aasland
erlend at python.org
Ethan Furman
ethan at stoneleaf.us
Ethan Smith
ethan at ethanhs.me
Ewa Jodlowska
ewa at python.org
Ezio Melotti
ezio.melotti at gmail.com
Facundo Batista
facundo at taniquetil.com.ar
Facundo Tuesca
facundo.tuesca at trailofbits.com
Filipe Laíns
lains at riseup.net
Franek Magiera
framagie at gmail.com
Fred L. Drake, Jr.
fred at fdrake.net
Frédéric B. Giacometti
fred at arakne.com
Fridolín Pokorný
fridolin.pokorny at gmail.com
Geoffrey Thomas
geofft at ldpreload.com
Georg Brandl
georg at python.org
Gerald Britton
gerald.britton at gmail.com
Germán Méndez Bravo
german.mb at gmail.com
Gordon McMillan
gmcm at hypernet.com
Graham Bleaney
gbleaney at gmail.com
Grant Griffin
g2 at iowegian.com
Greg Slodkowicz
jergosh at gmail.com
Greg Stein
gstein at lyra.org
Greg Wilson
gvwilson at ddj.com
Gregory Ewing
greg.ewing at canterbury.ac.nz
Gregory Lielens
gregory.lielens at fft.be
Gregory P. Smith
greg at krypto.org
Gregory R. Warnes
gregory_r_warnes at groton.pfizer.com
Guido van Rossum
guido at python.org
Holger Krekel
holger at merlinux.eu
Huaiyu Zhu
hzhu at users.sourceforge.net
Hugo van Kemenade
Inada Naoki
songofacandy at gmail.com
Irit Katriel
irit at python.org
Ivan Levkivskyi
levkivskyi at gmail.com
Ivona Stojanovic
stojanovic.i at hotmail.com
Jack Diederich
jackdied at gmail.com
Jack Jansen
jack at cwi.nl
James C. Ahlstrom
jim at interet.com
James Hilton-Balfe
gobot1234yt at gmail.com
James Polley
jp at jamezpolley.com
Jason Orendorff
jason.orendorff at gmail.com
Jason Petrone
jp at demonseed.net
Jeff Epler
jepler at unpythonic.net
Jeffrey Yasskin
jyasskin at google.com
Jelle Zijlstra
jelle.zijlstra at gmail.com
Jeremy Hylton
jeremy at alum.mit.edu
Jeroen Demeyer
j.demeyer at ugent.be
Jervis Whitley
jervisau at gmail.com
Jesse Noller
jnoller at gmail.com
Jim Althoff
james_althoff at i2.com
Jim Baker
jim.baker at python.org
Jim J. Jewett
jimjjewett at gmail.com
Jiwon Seo
seojiwon at gmail.com
Joanna Jablonski
Joe Carey
joe at python.org
John Belmonte
john at neggie.net
Jonathan Riehl
jriehl at spaceship.com
Joop van de Pol
joop.vandepol at trailofbits.com
Joseph Jevnik
joejev at gmail.com
Joseph Martinot-Lagarde
Joshua Bambrick
jbambrick at google.com
Joshua Cannon
joshdcannon at gmail.com
Joshua Landau
joshua at landau.ws
Joshua Lock
jlock at vmware.com
Joshua Xu
jxu425 at fb.com
Josiah Carlson
jcarlson at uci.edu
Jukka Lehtosalo
jukka.lehtosalo at iki.fi
Julien Palard
julien at palard.fr
Just van Rossum
just at letterror.com
Justin Cappos
jcappos at nyu.edu
Ka-Ping Yee
ping at zesty.ca
Karl Nelson
nelson85 at llnl.gov
Karolina Surma
karolina.surma at gazeta.pl
Ken Jin
kenjin at python.org
Kerrick Staley
mail at kerrickstaley.com
Kevin Altis
altis at semi-retired.com
Kevin D. Smith
kevin.smith at themorgue.org
Konstantin Kashin
kkashin at fb.com
Koos Zevenhoven
k7hoven at gmail.com
Koudai Aono
koxudaxi at gmail.com
Kushal Das
mail at kushaldas.in
Larry Hastings
larry at hastings.org
Laura Creighton
lac at strakt.com
Laurens Van Houtven
_ at lvh.cc
Laurie Opperman
laurie_opperman at hotmail.com
Lennart Regebro
regebro at gmail.com
Lie Ryan
lie.1296 at gmail.com
Lino Mastrodomenico
l.mastrodomenico at gmail.com
Lisa Roach
lisaroach14 at gmail.com
Lois Anne DeLong
lad278 at nyu.edu
Lukas Puehringer
lukas.puehringer at nyu.edu
Lysandros Nikolaou
lisandrosnik at gmail.com
Maggie Moss
maggiebmoss at gmail.com
Magnus Lie Hetland
magnus at hetland.org
Malcolm Smith
smith at chaquo.com
Marc-Andre Lemburg
mal at lemburg.com
Marc-André Lemburg
mal at lemburg.com
Marcel Plch
gmarcel.plch at gmail.com
Mariatta
mariatta at python.org
Marina Moore
mm9693 at nyu.edu
Mario Corchero
mariocj89 at gmail.com
Mark E. Haase
mehaase at gmail.com
Mark Hammond
mhammond at skippinet.com.au
Mark Mendoza
mendoza.mark.a at gmail.com
Mark Shannon
mark at hotpy.org
Mark Williams
mrw at enotuniq.org
Markus Meskanen
markusmeskanen at gmail.com
Marta Gómez Macías
cyberwitch at google.com
Martijn Faassen
faassen at infrae.com
Martin Teichmann
lkb.teichmann at gmail.com
Martin von Löwis
martin at v.loewis.de
Masayuki Yamamoto
Matt Chisholm
matt-python at theory.org
Matt Wozniski
godlygeek at gmail.com
Matthew Rahtz
mrahtz at google.com
Matthias Klose
doko at ubuntu.com
Micah Elliott
mde at tracos.org
Michael Foord
michael at python.org
Michael Hudson
mwh at python.net
Michael J. Sullivan
sully at msully.net
Michael Lee
michael.lee.0x2a at gmail.com
Michael P. Dubner
dubnerm at mindless.com
Michael Sarahan
msarahan at gmail.com
Michel Pelletier
michel at users.sourceforge.net
Mike G. Miller
Mike Meyer
mwm at mired.org
Mike Verdone
mike.verdone at gmail.com
Miro Hrončok
miro at hroncok.cz
Moshe Zadka
moshez at zadka.site.co.il
Nathaniel J. Smith
njs at pobox.com
Neal Norwitz
nnorwitz at gmail.com
Ned Deily
nad at python.org
Neil Hodgson
neilh at scintilla.org
Neil Schemenauer
nas at arctrix.com
Nick Humrich
nick at humrich.us
Ofek Lev
ofekmeister at gmail.com
Oleg Broytman
phd at phdru.name
Oren Tirosh
oren at hishome.net
Pablo Galindo
pablogsal at python.org
Pablo Galindo Salgado
pablogsal at python.org
Patrick Maupin
pmaupin at gmail.com
Paul Barrett
barrett at stsci.edu
Paul Colomiets
paul at colomiets.name
Paul Everitt
pauleveritt at me.com
Paul F. Dubois
paul at pfdubois.com
Paul Ganssle
paul at ganssle.io
Paul Moore
p.f.moore at gmail.com
Paul Prescod
paul at prescod.net
Peter Astrand
astrand at lysator.liu.se
Peter Harris
scav at blueyonder.co.uk
Peter Moody
pmoody at google.com
Peter Schneider-Kamp
nowonder at nowonder.de
Petr Viktorin
encukou at gmail.com
Philip House
phouse512 at gmail.com
Philipp Angerer
phil.angerer at gmail.com
Philippe Ombredanne
pombredanne at nexb.com
Philippe PRADOS
python at prados.fr
Phillip J. Eby
pje at telecommunity.com
Pradeep Kumar Srinivasan
gohanpra at gmail.com
Pradyun Gedam
pradyunsg at gmail.com
R David Murray
Ralf Gommers
ralf.gommers at gmail.com
Raymond Hettinger
python at rcn.com
Reid Kleckner
rnk at mit.edu
Rich Chiodo
rchiodo at microsoft.com
Richard Jones
richard at python.org
Richard Oudkerk
r.m.oudkerk at googlemail.com
Robert Collins
rbtcollins at hp.com
Robert Kuska
rkuska at redhat.com
Robert T. McGibbon
rmcgibbo at gmail.com
Roman Suzi
rnd at onego.ru
Ronald Oussoren
ronaldoussoren at mac.com
Russell Keith-Magee
russell at keith-magee.com
Ryan Gonzalez
rymg19 at gmail.com
Sam Gross
colesbury at gmail.com
Samuele Pedroni
pedronis at python.org
Savannah Ostrowski
savannahostrowski at gmail.com
Scott Gilbert
xscottg at yahoo.com
Sean Reifschneider
jafo-pep at tummy.com
Sebastian Kreft
skreft at deezer.com
Sebastián Ramírez
tiangolo at gmail.com
Sergey B Kirpichev
skirpichev at gmail.com
Serhiy Storchaka
Seth Michael Larson
seth at python.org
Sébastien Eustace
sebastien at eustace.io
Shannon Zhu
szhu at fb.com
Shantanu Jain
hauntsaninja at gmail.com
Simon Cross
hodgestar at gmail.com
Skip Montanaro
skip at pobox.com
Stefan Behnel
stefan_ml at behnel.de
Stefan Krah
skrah at bytereef.org
Stefano Borini
Stefano Rivera
stefanor at debian.org
Stepan Koltsov
yozh at mx1.ru
Stepan Sindelar
stepan.sindelar at oracle.com
Stephen J. Turnbull
stephen at xemacs.org
Stephen Rosen
sirosen0 at gmail.com
Steve Dower
steve.dower at python.org
Steven Bethard
steven.bethard at gmail.com
Steven D’Aprano
steve at pearwood.info
Steven Taschuk
staschuk at telusplanet.net
Steven Troxler
steven.troxler at gmail.com
Stéphane Bidoul
stephane.bidoul at gmail.com
Sumana Harihareswara
sh at changeset.nyc
Tal Einat
tal at python.org
Talin
viridia at gmail.com
Taneli Hukkinen
Tarek Ziadé
tarek at ziade.org
Terence Way
terry at wayforward.net
Terry Reedy
tjreedy at udel.edu
The Python core team and community
Thomas Bellman
bellman+pep-divmod at lysator.liu.se
Thomas Heller
theller at python.net
Thomas Kluyver
thomas at kluyver.me.uk
Thomas Wouters
thomas at python.org
Tian Gao
gaogaotiantian at hotmail.com
Till Varoquaux
till at fb.com
Tim Delaney
timothy.c.delaney at gmail.com
Tim Felgentreff
tim.felgentreff at oracle.com
Tim Peters
tim.peters at gmail.com
Tobias Kohn
kohnt at tobiaskohn.ch
Todd Rovito
rovitotv at gmail.com
Tomáš Orsava
tomas.n at orsava.cz
Tony Lownds
tony at lownds.com
Travis Oliphant
oliphant at ee.byu.edu
Trent Mick
trentm at activestate.com
Trishank Karthik Kuppusamy
karthik at trishank.com
Tzu-ping Chung
uranusjr at gmail.com
Victor Stinner
vstinner at python.org
Vikram Jayanthi
vikramjayanthi at google.com
Vinay Sajip
vinay_sajip at red-dove.com
Vincent Siles
vsiles at fb.com
Vladimir Diaz
vladimir.diaz at nyu.edu
W Isaac Carroll
icarroll at pobox.com
Walter Dörwald
walter at livinglogic.de
Wenzel Jakob
wenzel.jakob at epfl.ch
William Woodruff
william at yossarian.net
Yury Selivanov
yury at edgedb.com
Zac Hatfield-Dodds
zac at zhd.dev
Zachary Ware
zach at python.org
Zixuan James Li
p359101898 at gmail.com
Łukasz Langa
lukasz at python.org
Process and Meta-PEPs
Other Informational PEPs
Provisional PEPs (provisionally accepted; interface may still change)
Accepted PEPs (accepted; may not be implemented yet)
Open PEPs (under consideration)
Finished PEPs (done, with a stable interface)
Historical Meta-PEPs and Informational PEPs
Deferred PEPs (postponed pending further research or updates)
Rejected, Superseded, and Withdrawn PEPs
Reserved PEP Numbers
PEP Types Key
PEP Status Key
Authors/Owners