Python Enhancement Proposals

PEP 0 – Index of Python Enhancement Proposals (PEPs)

PEP
0
Title
Index of Python Enhancement Proposals (PEPs)
Author
python-dev <python-dev at python.org>
Status
Active
Type
Informational
Created
13-Jul-2000

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.

Index by Category

Meta-PEPs (PEPs about PEPs or Processes)

PEP PEP Title PEP Author(s)
P 1 PEP Purpose and Guidelines Warsaw, Hylton, Goodger, Coghlan
P 4 Deprecation of Standard Modules Cannon, von Löwis
P 5 Guidelines for Language Evolution Prescod
P 6 Bug Fix Releases Aahz, Baxter
P 7 Style Guide for C Code GvR, Warsaw
P 10 Voting Guidelines Warsaw
P 11 Removing support for little used platforms von Löwis, Cannon
P 12 Sample reStructuredText PEP Template Goodger, Warsaw, Cannon
P 387 Backwards Compatibility Policy Peterson
PA 581 Using GitHub Issues for CPython Mariatta
P 609 PyPA Governance Ingram, Gedam, Harihareswara
P 676 PEP Infrastructure Process Turner

Other Informational PEPs

PEP PEP Title PEP Author(s)
I 13 Python Language Governance python-dev
I 20 The Zen of Python Peters
I 101 Doing Python Releases 101 Warsaw, GvR
IF 247 API for Cryptographic Hash Functions Kuchling
IF 248 Python Database API Specification v1.0 Lemburg
IF 249 Python Database API Specification v2.0 Lemburg
I 257 Docstring Conventions Goodger, GvR
IF 272 API for Block Encryption Algorithms v1.0 Kuchling
I 287 reStructuredText Docstring Format Goodger
I 290 Code Migration and Modernization Hettinger
IF 291 Backward Compatibility for the Python 2 Standard … Norwitz
IF 333 Python Web Server Gateway Interface v1.0 Eby
I 394 The “python” Command on Unix-Like Systems Staley, Coghlan, Warsaw, Viktorin, Hrončok, Willing
IF 399 Pure Python/C Accelerator Module Compatibility … Cannon
IF 404 Python 2.8 Un-release Schedule Warsaw
I 411 Provisional packages in the Python standard library Coghlan, Bendersky
IF 430 Migrating to Python 3 as the default online … Coghlan
I 434 IDLE Enhancement Exception for All Branches Rovito, Reedy
I 440 Version Identification and Dependency Specification Coghlan, Stufft
IF 452 API for Cryptographic Hash Functions v2.0 Kuchling, Heimes
IF 457 Notation For Positional-Only Parameters Hastings
I 478 Python 3.5 Release Schedule Hastings
IF 482 Literature Overview for Type Hints Langa
IF 483 The Theory of Type Hints GvR, Levkivskyi
IA 503 Simple Repository API Stufft
I 508 Dependency specification for Python Software Packages Collins
I 514 Python registration in the Windows registry Dower
I 537 Python 3.7 Release Schedule Deily
I 569 Python 3.8 Release Schedule Langa
IF 579 Refactoring C functions and methods Demeyer
I 596 Python 3.9 Release Schedule Langa
IA 600 Future ‘manylinux’ Platform Tags for Portable Linux … Smith, Kluyver
IA 602 Annual Release Cycle for Python Langa
IF 607 Reducing CPython’s Feature Delivery Latency Langa, Dower, Coghlan
IA 627 Recording installed projects Viktorin
I 630 Isolating Extension Modules Viktorin
IF 635 Structural Pattern Matching: Motivation and Rationale Kohn, GvR
IF 636 Structural Pattern Matching: Tutorial Moisset
IA 656 Platform Tag for Linux Distributions Using Musl Chung
I 672 Unicode-related Security Considerations for Python Viktorin
IF 3333 Python Web Server Gateway Interface v1.0.1 Eby
I 8000 Python Language Governance Proposal Overview Warsaw
I 8002 Open Source Governance Survey Warsaw, Langa, Pitrou, Hellmann, Willing
IA 8016 The Steering Council Model Smith, Stufft
I 8100 January 2019 steering council election Smith, Durbin
I 8101 2020 Term steering council election Jodlowska, Durbin
I 8102 2021 Term steering council election Jodlowska, Durbin, Carey
I 8103 2022 Term steering council election Jodlowska, Durbin, Carey

Provisional PEPs (provisionally accepted; interface may still change)

PEP PEP Title PEP Author(s)
SP 9001 The Final Style Guide for Python Code for Life, IIII, Robin

Accepted PEPs (accepted; may not be implemented yet)

PEP PEP Title PEP Author(s)
SA 458 Secure PyPI downloads with signed repository metadata Kuppusamy, Diaz, Moore, Puehringer, Lock, DeLong, Cappos
SA 544 Protocols: Structural subtyping (static duck typing) Levkivskyi, Lehtosalo, Langa
SA 560 Core support for typing module and generic types Levkivskyi
SA 561 Distributing and Packaging Type Information Smith
SA 563 Postponed Evaluation of Annotations Langa
SA 572 Assignment Expressions Angelico, Peters, GvR
SA 578 Python Runtime Audit Hooks Dower
SA 585 Type Hinting Generics In Standard Collections Langa
SA 586 Literal Types Lee, Levkivskyi, Lehtosalo
SA 589 TypedDict: Type Hints for Dictionaries with a Fixed … Lehtosalo
SA 590 Vectorcall: a fast calling protocol for CPython Shannon, Demeyer
SA 591 Adding a final qualifier to typing Sullivan, Levkivskyi
SA 593 Flexible function and variable annotations Varoquaux, Kashin
SA 594 Removing dead batteries from the standard library Heimes, Cannon
SA 604 Allow writing union types as X | Y PRADOS, Moss
SA 612 Parameter Specification Variables Mendoza
SA 613 Explicit Type Aliases Zhu
SA 615 Support for the IANA Time Zone Database in the … Ganssle
SA 616 String methods to remove prefixes and suffixes Sweeney
SA 617 New PEG parser for CPython GvR, Galindo, Nikolaou
SA 623 Remove wstr from Unicode Inada
SA 631 Dependency specification in pyproject.toml based on … Lev
SA 632 Deprecate distutils module Dower
SA 634 Structural Pattern Matching: Specification Bucher, GvR
SA 646 Variadic Generics Mendoza, Rahtz, Srinivasan, Siles
SA 647 User-Defined Type Guards Traut
SA 654 Exception Groups and except* Katriel, Selivanov, GvR
SA 655 Marking individual TypedDict items as required or … Foster
SA 658 Serve Distribution Metadata in the Simple … Chung
SA 660 Editable installs for pyproject.toml based builds … Holth, Bidoul
SA 673 Self Type Srinivasan, Hilton-Balfe
SA 675 Arbitrary Literal String Type Srinivasan, Bleaney
SA 680 tomllib: Support for Parsing TOML in the Standard … Hukkinen
SA 682 Format Specifier for Signed Zero Belmonte
SA 685 Comparison of extra names for optional distribution … Cannon
SA 3121 Extension Module Initialization and Finalization von Löwis

Open PEPs (under consideration)

PEP PEP Title PEP Author(s)
S 467 Minor API improvements for binary sequences Coghlan, Furman
S 480 Surviving a Compromise of PyPI: End-to-end signing … Kuppusamy, Diaz, Cappos, Moore
S 554 Multiple Interpreters in the Stdlib Snow
S 558 Defined semantics for locals() Coghlan
S 582 Python local packages directory Das, Dower, Stufft, Coghlan
I 588 GitHub Issues Migration Plan Mariatta
S 603 Adding a frozenmap type to collections Selivanov
I 619 Python 3.10 Release Schedule Salgado
S 620 Hide implementation details from the C API Stinner
S 625 File name of a Source Distribution Chung, Moore
S 638 Syntactic Macros Shannon
S 639 Improving License Clarity with Better Package Metadata Ombredanne, Gerlach
S 642 Explicit Pattern Syntax for Structural Pattern Matching Coghlan
P 645 Allow writing optional types as x? Moss
S 649 Deferred Evaluation Of Annotations Using Descriptors Hastings
P 650 Specifying Installer Requirements for Python Projects Jayanthi, Ingram, Cannon
S 653 Precise Semantics for Pattern Matching Shannon
I 659 Specializing Adaptive Interpreter Shannon
S 661 Sentinel Values Einat
I 664 Python 3.11 Release Schedule Salgado
S 667 Consistent views of namespaces Shannon
I 668 Marking Python base environments as “externally … Thomas, Klose, Laíns, Stufft, Chung, Rivera, Hashman, Gedam
S 669 Low Impact Monitoring for CPython Shannon
S 670 Convert macros to functions in the Python C API Aasland, Stinner
S 671 Syntax for late-bound function argument defaults Angelico
S 674 Disallow using macros as l-values Stinner
S 678 Enriching Exceptions with Notes Hatfield-Dodds
S 679 Allow parentheses in assert statements Salgado
S 681 Data Class Transforms Bonte, Traut
S 683 Immortal Objects, Using a Fixed Refcount Snow, Elizondo
S 684 A Per-Interpreter GIL Snow
S 686 Make UTF-8 mode default Inada
I 801 Reserved Warsaw

Finished PEPs (done, with a stable interface)

PEP PEP Title PEP Author(s)
SF 100 Python Unicode Integration Lemburg
SF 201 Lockstep Iteration Warsaw
SF 202 List Comprehensions Warsaw
SF 203 Augmented Assignments Wouters
SF 205 Weak References Drake
SF 207 Rich Comparisons GvR, Ascher
SF 208 Reworking the Coercion Model Schemenauer, Lemburg
SF 214 Extended Print Statement Warsaw
SF 217 Display Hook for Interactive Use Zadka
SF 218 Adding a Built-In Set Object Type Wilson, Hettinger
SF 221 Import As Wouters
SF 223 Change the Meaning of \x Escapes Peters
SF 227 Statically Nested Scopes Hylton
SF 229 Using Distutils to Build Python Kuchling
SF 230 Warning Framework GvR
SF 232 Function Attributes Warsaw
SF 234 Iterators Yee, GvR
SF 235 Import on Case-Insensitive Platforms Peters
SF 236 Back to the __future__ Peters
SF 237 Unifying Long Integers and Integers Zadka, GvR
SF 238 Changing the Division Operator Zadka, GvR
SF 241 Metadata for Python Software Packages Kuchling
SF 250 Using site-packages on Windows Moore
SF 252 Making Types Look More Like Classes GvR
SF 253 Subtyping Built-in Types GvR
SF 255 Simple Generators Schemenauer, Peters, Hetland
SF 260 Simplify xrange() GvR
SF 261 Support for “wide” Unicode characters Prescod
SF 263 Defining Python Source Code Encodings Lemburg, von Löwis
SF 264 Future statements in simulated shells Hudson
SF 273 Import Modules from Zip Archives Ahlstrom
SF 274 Dict Comprehensions Warsaw
SF 277 Unicode file name support for Windows NT Hodgson
SF 278 Universal Newline Support Jansen
SF 279 The enumerate() built-in function Hettinger
SF 282 A Logging System Sajip, Mick
SF 285 Adding a bool type GvR
SF 289 Generator Expressions Hettinger
SF 292 Simpler String Substitutions Warsaw
SF 293 Codec Error Handling Callbacks Dörwald
SF 301 Package Index and Metadata for Distutils Jones
SF 302 New Import Hooks JvR, Moore
SF 305 CSV File API Altis, Cole, McNamara, Montanaro, Wells
SF 307 Extensions to the pickle protocol GvR, Peters
SF 308 Conditional Expressions GvR, Hettinger
SF 309 Partial Function Application Harris
SF 311 Simplified Global Interpreter Lock Acquisition for … Hammond
SF 314 Metadata for Python Software Packages v1.1 Kuchling, Jones
SF 318 Decorators for Functions and Methods Smith
SF 322 Reverse Iteration Hettinger
SF 324 subprocess - New process module Astrand
SF 327 Decimal Data Type Batista
SF 328 Imports: Multi-Line and Absolute/Relative Aahz
SF 331 Locale-Independent Float/String Conversions Reis
SF 338 Executing modules as scripts Coghlan
SF 341 Unifying try-except and try-finally Brandl
SF 342 Coroutines via Enhanced Generators GvR, Eby
SF 343 The “with” Statement GvR, Coghlan
SF 345 Metadata for Python Software Packages 1.2 Jones
SF 352 Required Superclass for Exceptions Cannon, GvR
SF 353 Using ssize_t as the index type von Löwis
SF 357 Allowing Any Object to be Used for Slicing Oliphant
SF 358 The “bytes” Object Schemenauer, GvR
SF 362 Function Signature Object Cannon, Seo, Selivanov, Hastings
SF 366 Main module explicit relative imports Coghlan
SF 370 Per user site-packages directory Heimes
SF 371 Addition of the multiprocessing package to the … Noller, Oudkerk
SF 372 Adding an ordered dictionary to collections Ronacher, Hettinger
SF 376 Database of Installed Python Distributions Ziadé
SF 378 Format Specifier for Thousands Separator Hettinger
SF 380 Syntax for Delegating to a Subgenerator Ewing
SF 383 Non-decodable Bytes in System Character Interfaces von Löwis
SF 384 Defining a Stable ABI von Löwis
SF 389 argparse - New Command Line Parsing Module Bethard
SF 391 Dictionary-Based Configuration For Logging Sajip
SF 393 Flexible String Representation von Löwis
SF 397 Python launcher for Windows Hammond, von Löwis
SF 405 Python Virtual Environments Meyer
SF 409 Suppressing exception context Furman
SF 412 Key-Sharing Dictionary Shannon
SF 414 Explicit Unicode Literal for Python 3.3 Ronacher, Coghlan
SF 415 Implement context suppression with exception attributes Peterson
SF 417 Including mock in the Standard Library Foord
SF 418 Add monotonic time, performance counter, and … Simpson, Jewett, Turnbull, Stinner
SF 420 Implicit Namespace Packages Smith
SF 421 Adding sys.implementation Snow
SF 424 A method for exposing a length hint Gaynor
SF 425 Compatibility Tags for Built Distributions Holth
SF 427 The Wheel Binary Package Format 1.0 Holth
SF 428 The pathlib module – object-oriented filesystem paths Pitrou
SF 435 Adding an Enum type to the Python standard library Warsaw, Bendersky, Furman
SF 436 The Argument Clinic DSL Hastings
SF 441 Improving Python ZIP Application Support Holth, Moore
SF 442 Safe object finalization Pitrou
SF 443 Single-dispatch generic functions Langa
SF 445 Add new APIs to customize Python memory allocators Stinner
SF 446 Make newly created file descriptors non-inheritable Stinner
SF 448 Additional Unpacking Generalizations Landau
SF 450 Adding A Statistics Module To The Standard Library D’Aprano
SF 451 A ModuleSpec Type for the Import System Snow
SF 453 Explicit bootstrapping of pip in Python installations Stufft, Coghlan
SF 454 Add a new tracemalloc module to trace Python memory … Stinner
SF 456 Secure and interchangeable hash algorithm Heimes
SF 461 Adding % formatting to bytes and bytearray Furman
SF 465 A dedicated infix operator for matrix multiplication Smith
SF 466 Network Security Enhancements for Python 2.7.x Coghlan
SF 468 Preserving the order of **kwargs in a function. Snow
SF 471 os.scandir() function – a better and faster … Hoyt
SF 475 Retry system calls failing with EINTR Natali, Stinner
SF 476 Enabling certificate verification by default for … Gaynor
SF 477 Backport ensurepip (PEP 453) to Python 2.7 Stufft, Coghlan
SF 479 Change StopIteration handling inside generators Angelico, GvR
SF 484 Type Hints GvR, Lehtosalo, Langa
SF 485 A Function for testing approximate equality Barker
SF 486 Make the Python Launcher aware of virtual environments Moore
SF 487 Simpler customisation of class creation Teichmann
SF 488 Elimination of PYO files Cannon
SF 489 Multi-phase extension module initialization Viktorin, Behnel, Coghlan
SF 492 Coroutines with async and await syntax Selivanov
SF 493 HTTPS verification migration tools for Python 2.7 Coghlan, Kuska, Lemburg
SF 495 Local Time Disambiguation Belopolsky, Peters
SF 498 Literal String Interpolation Smith
SF 506 Adding A Secrets Module To The Standard Library D’Aprano
SF 509 Add a private version to dict Stinner
SF 515 Underscores in Numeric Literals Brandl, Storchaka
SF 517 A build-system independent format for source trees Smith, Kluyver
SF 518 Specifying Minimum Build System Requirements for … Cannon, Smith, Stufft
SF 519 Adding a file system path protocol Cannon, Zevenhoven
SF 520 Preserving Class Attribute Definition Order Snow
SF 523 Adding a frame evaluation API to CPython Cannon, Viehland
SF 524 Make os.urandom() blocking on Linux Stinner
SF 525 Asynchronous Generators Selivanov
SF 526 Syntax for Variable Annotations Gonzalez, House, Levkivskyi, Roach, GvR
SF 528 Change Windows console encoding to UTF-8 Dower
SF 529 Change Windows filesystem encoding to UTF-8 Dower
SF 530 Asynchronous Comprehensions Selivanov
SF 538 Coercing the legacy C locale to a UTF-8 based locale Coghlan
SF 539 A New C-API for Thread-Local Storage in CPython Bray, Yamamoto
SF 540 Add a new UTF-8 Mode Stinner
SF 552 Deterministic pycs Peterson
SF 553 Built-in breakpoint() Warsaw
SF 557 Data Classes Smith
SF 562 Module __getattr__ and __dir__ Levkivskyi
SF 564 Add new time functions with nanosecond resolution Stinner
SF 565 Show DeprecationWarning in __main__ Coghlan
SF 566 Metadata for Python Software Packages 2.1 Ingram
SF 567 Context Variables Selivanov
SF 570 Python Positional-Only Parameters Hastings, Galindo, Corchero, Vander Weele
SF 573 Module State Access from C Extension Methods Viktorin, Coghlan, Snow, Plch
SF 574 Pickle protocol 5 with out-of-band data Pitrou
SF 584 Add Union Operators To dict D’Aprano, Bucher
SF 587 Python Initialization Configuration Stinner, Coghlan
SF 592 Adding “Yank” Support to the Simple API Stufft
SF 597 Add optional EncodingWarning Inada
SF 610 Recording the Direct URL Origin of installed … Bidoul, Jerdonek
SF 614 Relaxing Grammar Restrictions On Decorators Bucher
SF 618 Add Optional Length-Checking To zip Bucher
SF 621 Storing project metadata in pyproject.toml Cannon, Ingram, Ganssle, Gedam, Eustace, Kluyver, Chung
SF 624 Remove Py_UNICODE encoder APIs Inada
SF 626 Precise line numbers for debugging and other tools. Shannon
SF 628 Add math.tau Coghlan
SF 629 Versioning PyPI’s Simple API Stufft
SF 643 Metadata for Package Source Distributions Moore
SF 644 Require OpenSSL 1.1.1 or newer Heimes
SF 652 Maintaining the Stable ABI Viktorin
SF 657 Include Fine Grained Error Locations in Tracebacks Galindo, Taskaya, Askar
SF 3101 Advanced String Formatting Talin
SF 3102 Keyword-Only Arguments Talin
SF 3104 Access to Names in Outer Scopes Yee
SF 3105 Make print a function Brandl
SF 3106 Revamping dict.keys(), .values() and .items() GvR
SF 3107 Function Annotations Winter, Lownds
SF 3108 Standard Library Reorganization Cannon
SF 3109 Raising Exceptions in Python 3000 Winter
SF 3110 Catching Exceptions in Python 3000 Winter
SF 3111 Simple input built-in in Python 3000 Roberge
SF 3112 Bytes literals in Python 3000 Orendorff
SF 3113 Removal of Tuple Parameter Unpacking Cannon
SF 3114 Renaming iterator.next() to iterator.__next__() Yee
SF 3115 Metaclasses in Python 3000 Talin
SF 3116 New I/O Stutzbach, GvR, Verdone
SF 3118 Revising the buffer protocol Oliphant, Banks
SF 3119 Introducing Abstract Base Classes GvR, Talin
SF 3120 Using UTF-8 as the default source encoding von Löwis
SF 3123 Making PyObject_HEAD conform to standard C von Löwis
SF 3127 Integer Literal Support and Syntax Maupin
SF 3129 Class Decorators Winter
SF 3131 Supporting Non-ASCII Identifiers von Löwis
SF 3132 Extended Iterable Unpacking Brandl
SF 3134 Exception Chaining and Embedded Tracebacks Yee
SF 3135 New Super Spealman, Delaney, Ryan
SF 3137 Immutable Bytes and Mutable Buffer GvR
SF 3138 String representation in Python 3000 Ishimoto
SF 3141 A Type Hierarchy for Numbers Yasskin
SF 3144 IP Address Manipulation Library for the Python … Moody
SF 3147 PYC Repository Directories Warsaw
SF 3148 futures - execute computations asynchronously Quinlan
SF 3149 ABI version tagged .so files Warsaw
SF 3151 Reworking the OS and IO exception hierarchy Pitrou
SF 3154 Pickle protocol version 4 Pitrou
SF 3155 Qualified name for classes and functions Pitrou
SF 3156 Asynchronous IO Support Rebooted: the “asyncio” Module GvR

Historical Meta-PEPs and Informational PEPs

PEP PEP Title PEP Author(s)
PS 2 Procedure for Adding New Modules Faassen
PS 8 Style Guide for Python Code GvR, Warsaw, Coghlan
IF 160 Python 1.6 Release Schedule Drake
IF 200 Python 2.0 Release Schedule Hylton
IF 226 Python 2.1 Release Schedule Hylton
IF 251 Python 2.2 Release Schedule Warsaw, GvR
IF 283 Python 2.3 Release Schedule GvR
IF 320 Python 2.4 Release Schedule Warsaw, Hettinger, Baxter
PF 347 Migrating the Python CVS to Subversion von Löwis
IF 356 Python 2.5 Release Schedule Norwitz, GvR, Baxter
PF 360 Externally Maintained Packages Cannon
IF 361 Python 2.6 and 3.0 Release Schedule Norwitz, Warsaw
IF 373 Python 2.7 Release Schedule Peterson
PF 374 Choosing a distributed VCS for the Python project Cannon, Turnbull, Vassalotti, Warsaw, Ochtman
IF 375 Python 3.1 Release Schedule Peterson
PF 385 Migrating from Subversion to Mercurial Ochtman, Pitrou, Brandl
IF 392 Python 3.2 Release Schedule Brandl
IF 398 Python 3.3 Release Schedule Brandl
IF 429 Python 3.4 Release Schedule Hastings
PS 438 Transitioning to release-file hosting on PyPI Krekel, Meyer
PF 449 Removal of the PyPI Mirror Auto Discovery and … Stufft
PF 464 Removal of the PyPI Mirror Authenticity API Stufft
PF 470 Removing External Hosting Support on PyPI Stufft
IF 494 Python 3.6 Release Schedule Deily
PF 512 Migrating from hg.python.org to GitHub Cannon
PF 527 Removing Un(der)used file types/extensions on PyPI Stufft
PF 541 Package Index Name Retention Langa
PF 545 Python Documentation Translations Palard, Inada, Stinner
PF 3000 Python 3000 GvR
PF 3002 Procedure for Backwards-Incompatible Changes Bethard
PF 3003 Python Language Moratorium Cannon, Noller, GvR
PF 3099 Things that will Not Change in Python 3000 Brandl
PF 3100 Miscellaneous Python 3.0 Plans Cannon
PF 8001 Python Governance Voting Process Cannon, Heimes, Stufft, Snow, Smith, Langa, Mariatta, Smith, Salgado, Hettinger, Einat, Peters, Ware

Deferred PEPs (postponed pending further research or updates)

PEP PEP Title PEP Author(s)
SD 213 Attribute Access Handlers Prescod
SD 219 Stackless Python McMillan
SD 222 Web Library Enhancements Kuchling
SD 233 Python Online Help Prescod
SD 262 A Database of Installed Python Packages Kuchling
SD 267 Optimized Access to Module Namespaces Hylton
SD 269 Pgen Module for Python Riehl
SD 280 Optimizing access to globals GvR
SD 286 Enhanced Argument Tuples von Löwis
SD 312 Simple Implicit Lambda Suzi, Martelli
SD 316 Programming by Contract for Python Way
SD 323 Copyable Iterators Martelli
SD 337 Logging Usage in the Standard Library Dubner
SD 368 Standard image protocol and class Mastrodomenico
SD 400 Deprecate codecs.StreamReader and codecs.StreamWriter Stinner
SD 403 General purpose decorator clause (aka “@in” clause) Coghlan
PD 407 New release cycle and introducing long-term support … Pitrou, Brandl, Warsaw
SD 419 Protecting cleanup statements from interruptions Colomiets
ID 423 Naming conventions and recipes related to packaging Bryon
ID 444 Python Web3 Interface McDonough, Ronacher
SD 447 Add __getdescriptor__ method to metaclass Oussoren
SD 491 The Wheel Binary Package Format 1.9 Holth
SD 499 python -m foo should bind … Simpson, Angelico, Jevnik
SD 501 General purpose string interpolation Coghlan
SD 505 None-aware operators Haase, Dower
SD 532 A circuit breaking protocol and binary operators Coghlan, Haase
SD 533 Deterministic cleanup for iterators Smith
SD 534 Improved Errors for Missing Standard Library Modules Orsava, Viktorin, Coghlan
SD 535 Rich comparison chaining Coghlan
SD 536 Final Grammar for Literal String Interpolation Angerer
SD 547 Running extension modules using the -m option Plch, Viktorin
SD 556 Threaded garbage collection Pitrou
SD 568 Generator-sensitivity for Context Variables Smith
SD 3124 Overloading, Generic Functions, Interfaces, and … Eby
SD 3143 Standard daemon process library Finney
SD 3150 Statement local namespaces (aka “given” clause) Coghlan

Abandoned, Withdrawn, and Rejected PEPs

PEP PEP Title PEP Author(s)
PW 3 Guidelines for Handling Bug Reports Hylton
PW 9 Sample Plaintext PEP Template Warsaw
PR 42 Feature Requests Hylton
IS 102 Doing Python Micro Releases Baxter, Warsaw, GvR
IW 103 Collecting information about git Broytman
SR 204 Range Literals Wouters
IW 206 Python Advanced Library Kuchling
SW 209 Multi-dimensional Arrays Barrett, Oliphant
SR 210 Decoupling the Interpreter Loop Ascher
SR 211 Adding A New Outer Product Operator Wilson
SR 212 Loop Counter Iteration Schneider-Kamp
SS 215 String Interpolation Yee
IR 216 Docstring Format Zadka
IR 220 Coroutines, Generators, Continuations McMillan
SR 224 Attribute Docstrings Lemburg
SR 225 Elementwise/Objectwise Operators Zhu, Lielens
SW 228 Reworking Python’s Numeric Model Zadka, GvR
SR 231 __findattr__() Warsaw
SR 239 Adding a Rational Type to Python Craig, Zadka
SR 240 Adding a Rational Literal to Python Craig, Zadka
SR 242 Numeric Kinds Dubois
SW 243 Module Repository Upload Mechanism Reifschneider
SR 244 The directive statement von Löwis
SR 245 Python Interface Syntax Pelletier
SR 246 Object Adaptation Martelli, Evans
SR 254 Making Classes Look More Like Types GvR
SR 256 Docstring Processing System Framework Goodger
SR 258 Docutils Design Specification Goodger
SR 259 Omit printing newline after newline GvR
SR 265 Sorting Dictionaries by Value Griffin
SW 266 Optimizing Global Variable/Attribute Access Montanaro
SR 268 Extended HTTP functionality and WebDAV Stein
SR 270 uniq method for list objects Petrone
SR 271 Prefixing sys.path by command line option Giacometti
SR 275 Switching on Multiple Values Lemburg
SR 276 Simple Iterator for ints Althoff
SR 281 Loop Counter Iteration with range and xrange Hetland
SR 284 Integer for-loops Eppstein, Ewing
SW 288 Generators Attributes and Exceptions Hettinger
SR 294 Type Names in the types Module Tirosh
SR 295 Interpretation of multiline string constants Koltsov
SW 296 Adding a bytes Object Type Gilbert
SR 297 Support for System Upgrades Lemburg
SW 298 The Locked Buffer Interface Heller
SR 299 Special __main__() function in modules Epler
SR 303 Extend divmod() for Multiple Divisors Bellman
SW 304 Controlling Generation of Bytecode Files Montanaro
IW 306 How to Change Python’s Grammar Hudson, Diederich, Coghlan, Peterson
SR 310 Reliable Acquisition/Release Pairs Hudson, Moore
SR 313 Adding Roman Numeral Literals to Python Meyer
SR 315 Enhanced While Loop Hettinger, Carroll
SR 317 Eliminate Implicit Exception Instantiation Taschuk
SR 319 Python Synchronize/Asynchronize Block Pelletier
SW 321 Date/Time Parsing and Formatting Kuchling
SR 325 Resource-Release Support for Generators Pedroni
SR 326 A Case for Top and Bottom Values Carlson, Reedy
SR 329 Treating Builtins as Constants in the Standard Library Hettinger
SR 330 Python Bytecode Verification Pelletier
SR 332 Byte vectors and String/Unicode Unification Montanaro
SW 334 Simple Coroutines via SuspendIteration Evans
SR 335 Overloadable Boolean Operators Ewing
SR 336 Make None Callable McClelland
IW 339 Design of the CPython Compiler Cannon
SR 340 Anonymous Block Statements GvR
SS 344 Exception Chaining and Embedded Tracebacks Yee
SW 346 User Defined (”with”) Statements Coghlan
SR 348 Exception Reorganization for Python 3.0 Cannon
SR 349 Allow str() to return unicode strings Schemenauer
IR 350 Codetags Elliott
SR 351 The freeze protocol Warsaw
SS 354 Enumerations in Python Finney
SR 355 Path - Object oriented filesystem paths Lindqvist
SW 359 The “make” Statement Bethard
SR 363 Syntax For Dynamic Attribute Access North
SW 364 Transitioning to the Py3K Standard Library Warsaw
SR 365 Adding the pkg_resources module Eby
SS 367 New Super Spealman, Delaney
SW 369 Post import hooks Heimes
SR 377 Allow __enter__() methods to skip the statement body Coghlan
SW 379 Adding an Assignment Expression Whitley
SW 381 Mirroring infrastructure for PyPI Ziadé, von Löwis
SR 382 Namespace Packages von Löwis
SS 386 Changing the version comparison module in Distutils Ziadé
SR 390 Static metadata for Distutils Ziadé
SW 395 Qualified Names for Modules Coghlan
IR 396 Module Version Numbers Warsaw
PR 401 BDFL Retirement Warsaw, Cannon
SR 402 Simplified Package Layout and Partitioning Eby
SW 406 Improved Encapsulation of Import State Coghlan, Slodkowicz
SR 408 Standard library __preview__ package Coghlan, Bendersky
SR 410 Use decimal.Decimal type for timestamps Stinner
PW 413 Faster evolution of the Python Standard Library Coghlan
SR 416 Add a frozendict builtin type Stinner
SW 422 Simpler customisation of class creation Coghlan, Urban
IW 426 Metadata for Python Software Packages 2.0 Coghlan, Holth, Stufft
SS 431 Time zone support improvements Regebro
SW 432 Restructuring the CPython startup sequence Coghlan, Stinner, Snow
SS 433 Easier suppression of file descriptor inheritance Stinner
SR 437 A DSL for specifying signatures, annotations and … Krah
SR 439 Inclusion of implicit pip bootstrap in Python … Jones
SR 455 Adding a key-transforming dictionary to collections Pitrou
SW 459 Standard Metadata Extensions for Python Software … Coghlan
SW 460 Add binary interpolation and formatting Pitrou
PW 462 Core development workflow automation for CPython Coghlan
SR 463 Exception-catching expressions Angelico
SW 469 Migration of dict iteration code to Python 3 Coghlan
SR 472 Support for indexing with keyword arguments Borini, Martinot-Lagarde
SR 473 Adding structured data to built-in exceptions Kreft
PW 474 Creating forge.python.org Coghlan
PW 481 Migrate CPython to Git, Github, and Phabricator Stufft
SR 490 Chain exceptions at C level Stinner
IR 496 Environment Markers Polley
PR 497 A standard mechanism for backward compatibility Schofield
SR 500 A protocol for delegating datetime methods to their … Belopolsky, Peters
IR 502 String Interpolation - Extended Discussion Miller
SW 504 Using the System RNG by default Coghlan
PR 507 Migrate CPython to Git and GitLab Warsaw
SR 510 Specialize functions with guards Stinner
SR 511 API for code transformers Stinner
IS 513 A Platform Tag for Portable Linux Built Distributions McGibbon, Smith
SR 516 Build system abstraction for pip/conda etc Collins, Smith
SW 521 Managing global context via ‘with’ blocks in … Smith
SR 522 Allow BlockingIOError in security sensitive APIs Coghlan, Smith
SW 531 Existence checking operators Coghlan
SR 542 Dot Notation Assignment In Function Header Meskanen
SW 543 A Unified TLS API for Python Benfield, Heimes
SR 546 Backport ssl.MemoryBIO and ssl.SSLObject to Python 2.7 Stinner, Benfield
SR 548 More Flexible Loop Control Murray
SR 549 Instance Descriptors Hastings
SW 550 Execution Context Selivanov, Pranskevichus
IW 551 Security transparency in the Python runtime Dower
SW 555 Context-local variables (contextvars) Zevenhoven
SR 559 Built-in noop() Warsaw
IS 571 The manylinux2010 Platform Tag Williams, Thomas, Kluyver
SW 575 Unifying function/method classes Demeyer
SW 576 Rationalize Built-in function classes Shannon
SW 577 Augmented Assignment Expressions Coghlan
SR 580 The C call protocol Demeyer
IW 583 A Concurrency Memory Model for Python Yasskin
IW 595 Improving bugs.python.org Melotti, Peksag
IW 598 Introducing incremental feature releases Coghlan
IS 599 The manylinux2014 Platform Tag Ingram
SR 601 Forbid return/break/continue breaking out of finally George, Taskaya
IR 605 A rolling feature release stream for CPython Dower, Coghlan
SR 606 Python Compatibility Version Stinner
SR 608 Coordinated Python release Hrončok, Stinner
SW 611 The one million limit Shannon
SS 622 Structural Pattern Matching Bucher, Moisset, Kohn, Levkivskyi, GvR, Talin
SR 633 Dependency specification in pyproject.toml using an … Opperman, Neelicattu
SR 637 Support for indexing with keyword arguments Borini
SR 640 Unused variable syntax Wouters
SR 641 Using an underscore in the version portion of … Cannon, Dower, Warsaw
SR 648 Extensible customizations of the interpreter at startup Corchero
SR 651 Robust Stack Overflow Handling Shannon
SR 662 Editable installs via virtual wheels Gábor
IR 663 Standardizing Enum str(), repr(), and format() … Furman
SR 665 A file format to list Python dependencies for … Cannon, Gedam, Chung
SR 666 Reject Foolish Indentation Creighton
SR 677 Callable Type Syntax Troxler, Srinivasan
SR 754 IEEE 754 Floating Point Special Values Warnes
SR 2241 Back to the Past Ambiguous
PW 3001 Procedure for reviewing and improving standard … Brandl
SR 3103 A Switch/Case Statement GvR
SR 3117 Postfix type declarations Brandl
SR 3122 Delineation of the main module Cannon
SR 3125 Remove Backslash Continuation Jewett
SR 3126 Remove Implicit String Concatenation Jewett, Hettinger
SR 3128 BList: A Faster List-like Type Stutzbach
SR 3130 Access to Current Module/Class/Function Jewett
SR 3133 Introducing Roles Winter
SR 3136 Labeled break and continue Chisholm
SR 3139 Cleaning out sys and the “interpreter” module Peterson
SR 3140 str(container) should call str(item), not repr(item) Broytman, Jewett
SR 3142 Add a “while” clause to generator expressions Britton
SW 3145 Asynchronous I/O For subprocess.Popen Pruitt, McCreary, Carlson
SW 3146 Merging Unladen Swallow into CPython Winter, Yasskin, Kleckner
SR 3152 Cofunctions Ewing
SS 3153 Asynchronous IO support Houtven
IR 8010 The Technical Leader Governance Model Warsaw
IR 8011 Python Governance Model Lead by Trio of Pythonistas Mariatta, Warsaw
IR 8012 The Community Governance Model Langa
IR 8013 The External Council Governance Model Dower
IR 8014 The Commons Governance Model Jansen
IR 8015 Organization of the Python community Stinner

Numerical Index

PEP PEP Title PEP Author(s)
P 1 PEP Purpose and Guidelines Warsaw, Hylton, Goodger, Coghlan
PS 2 Procedure for Adding New Modules Faassen
PW 3 Guidelines for Handling Bug Reports Hylton
P 4 Deprecation of Standard Modules Cannon, von Löwis
P 5 Guidelines for Language Evolution Prescod
P 6 Bug Fix Releases Aahz, Baxter
P 7 Style Guide for C Code GvR, Warsaw
PS 8 Style Guide for Python Code GvR, Warsaw, Coghlan
PW 9 Sample Plaintext PEP Template Warsaw
P 10 Voting Guidelines Warsaw
P 11 Removing support for little used platforms von Löwis, Cannon
P 12 Sample reStructuredText PEP Template Goodger, Warsaw, Cannon
I 13 Python Language Governance python-dev
I 20 The Zen of Python Peters
PR 42 Feature Requests Hylton
SF 100 Python Unicode Integration Lemburg
I 101 Doing Python Releases 101 Warsaw, GvR
IS 102 Doing Python Micro Releases Baxter, Warsaw, GvR
IW 103 Collecting information about git Broytman
IF 160 Python 1.6 Release Schedule Drake
IF 200 Python 2.0 Release Schedule Hylton
SF 201 Lockstep Iteration Warsaw
SF 202 List Comprehensions Warsaw
SF 203 Augmented Assignments Wouters
SR 204 Range Literals Wouters
SF 205 Weak References Drake
IW 206 Python Advanced Library Kuchling
SF 207 Rich Comparisons GvR, Ascher
SF 208 Reworking the Coercion Model Schemenauer, Lemburg
SW 209 Multi-dimensional Arrays Barrett, Oliphant
SR 210 Decoupling the Interpreter Loop Ascher
SR 211 Adding A New Outer Product Operator Wilson
SR 212 Loop Counter Iteration Schneider-Kamp
SD 213 Attribute Access Handlers Prescod
SF 214 Extended Print Statement Warsaw
SS 215 String Interpolation Yee
IR 216 Docstring Format Zadka
SF 217 Display Hook for Interactive Use Zadka
SF 218 Adding a Built-In Set Object Type Wilson, Hettinger
SD 219 Stackless Python McMillan
IR 220 Coroutines, Generators, Continuations McMillan
SF 221 Import As Wouters
SD 222 Web Library Enhancements Kuchling
SF 223 Change the Meaning of \x Escapes Peters
SR 224 Attribute Docstrings Lemburg
SR 225 Elementwise/Objectwise Operators Zhu, Lielens
IF 226 Python 2.1 Release Schedule Hylton
SF 227 Statically Nested Scopes Hylton
SW 228 Reworking Python’s Numeric Model Zadka, GvR
SF 229 Using Distutils to Build Python Kuchling
SF 230 Warning Framework GvR
SR 231 __findattr__() Warsaw
SF 232 Function Attributes Warsaw
SD 233 Python Online Help Prescod
SF 234 Iterators Yee, GvR
SF 235 Import on Case-Insensitive Platforms Peters
SF 236 Back to the __future__ Peters
SF 237 Unifying Long Integers and Integers Zadka, GvR
SF 238 Changing the Division Operator Zadka, GvR
SR 239 Adding a Rational Type to Python Craig, Zadka
SR 240 Adding a Rational Literal to Python Craig, Zadka
SF 241 Metadata for Python Software Packages Kuchling
SR 242 Numeric Kinds Dubois
SW 243 Module Repository Upload Mechanism Reifschneider
SR 244 The directive statement von Löwis
SR 245 Python Interface Syntax Pelletier
SR 246 Object Adaptation Martelli, Evans
IF 247 API for Cryptographic Hash Functions Kuchling
IF 248 Python Database API Specification v1.0 Lemburg
IF 249 Python Database API Specification v2.0 Lemburg
SF 250 Using site-packages on Windows Moore
IF 251 Python 2.2 Release Schedule Warsaw, GvR
SF 252 Making Types Look More Like Classes GvR
SF 253 Subtyping Built-in Types GvR
SR 254 Making Classes Look More Like Types GvR
SF 255 Simple Generators Schemenauer, Peters, Hetland
SR 256 Docstring Processing System Framework Goodger
I 257 Docstring Conventions Goodger, GvR
SR 258 Docutils Design Specification Goodger
SR 259 Omit printing newline after newline GvR
SF 260 Simplify xrange() GvR
SF 261 Support for “wide” Unicode characters Prescod
SD 262 A Database of Installed Python Packages Kuchling
SF 263 Defining Python Source Code Encodings Lemburg, von Löwis
SF 264 Future statements in simulated shells Hudson
SR 265 Sorting Dictionaries by Value Griffin
SW 266 Optimizing Global Variable/Attribute Access Montanaro
SD 267 Optimized Access to Module Namespaces Hylton
SR 268 Extended HTTP functionality and WebDAV Stein
SD 269 Pgen Module for Python Riehl
SR 270 uniq method for list objects Petrone
SR 271 Prefixing sys.path by command line option Giacometti
IF 272 API for Block Encryption Algorithms v1.0 Kuchling
SF 273 Import Modules from Zip Archives Ahlstrom
SF 274 Dict Comprehensions Warsaw
SR 275 Switching on Multiple Values Lemburg
SR 276 Simple Iterator for ints Althoff
SF 277 Unicode file name support for Windows NT Hodgson
SF 278 Universal Newline Support Jansen
SF 279 The enumerate() built-in function Hettinger
SD 280 Optimizing access to globals GvR
SR 281 Loop Counter Iteration with range and xrange Hetland
SF 282 A Logging System Sajip, Mick
IF 283 Python 2.3 Release Schedule GvR
SR 284 Integer for-loops Eppstein, Ewing
SF 285 Adding a bool type GvR
SD 286 Enhanced Argument Tuples von Löwis
I 287 reStructuredText Docstring Format Goodger
SW 288 Generators Attributes and Exceptions Hettinger
SF 289 Generator Expressions Hettinger
I 290 Code Migration and Modernization Hettinger
IF 291 Backward Compatibility for the Python 2 Standard … Norwitz
SF 292 Simpler String Substitutions Warsaw
SF 293 Codec Error Handling Callbacks Dörwald
SR 294 Type Names in the types Module Tirosh
SR 295 Interpretation of multiline string constants Koltsov
SW 296 Adding a bytes Object Type Gilbert
SR 297 Support for System Upgrades Lemburg
SW 298 The Locked Buffer Interface Heller
SR 299 Special __main__() function in modules Epler
SF 301 Package Index and Metadata for Distutils Jones
SF 302 New Import Hooks JvR, Moore
SR 303 Extend divmod() for Multiple Divisors Bellman
SW 304 Controlling Generation of Bytecode Files Montanaro
SF 305 CSV File API Altis, Cole, McNamara, Montanaro, Wells
IW 306 How to Change Python’s Grammar Hudson, Diederich, Coghlan, Peterson
SF 307 Extensions to the pickle protocol GvR, Peters
SF 308 Conditional Expressions GvR, Hettinger
SF 309 Partial Function Application Harris
SR 310 Reliable Acquisition/Release Pairs Hudson, Moore
SF 311 Simplified Global Interpreter Lock Acquisition for … Hammond
SD 312 Simple Implicit Lambda Suzi, Martelli
SR 313 Adding Roman Numeral Literals to Python Meyer
SF 314 Metadata for Python Software Packages v1.1 Kuchling, Jones
SR 315 Enhanced While Loop Hettinger, Carroll
SD 316 Programming by Contract for Python Way
SR 317 Eliminate Implicit Exception Instantiation Taschuk
SF 318 Decorators for Functions and Methods Smith
SR 319 Python Synchronize/Asynchronize Block Pelletier
IF 320 Python 2.4 Release Schedule Warsaw, Hettinger, Baxter
SW 321 Date/Time Parsing and Formatting Kuchling
SF 322 Reverse Iteration Hettinger
SD 323 Copyable Iterators Martelli
SF 324 subprocess - New process module Astrand
SR 325 Resource-Release Support for Generators Pedroni
SR 326 A Case for Top and Bottom Values Carlson, Reedy
SF 327 Decimal Data Type Batista
SF 328 Imports: Multi-Line and Absolute/Relative Aahz
SR 329 Treating Builtins as Constants in the Standard Library Hettinger
SR 330 Python Bytecode Verification Pelletier
SF 331 Locale-Independent Float/String Conversions Reis
SR 332 Byte vectors and String/Unicode Unification Montanaro
IF 333 Python Web Server Gateway Interface v1.0 Eby
SW 334 Simple Coroutines via SuspendIteration Evans
SR 335 Overloadable Boolean Operators Ewing
SR 336 Make None Callable McClelland
SD 337 Logging Usage in the Standard Library Dubner
SF 338 Executing modules as scripts Coghlan
IW 339 Design of the CPython Compiler Cannon
SR 340 Anonymous Block Statements GvR
SF 341 Unifying try-except and try-finally Brandl
SF 342 Coroutines via Enhanced Generators GvR, Eby
SF 343 The “with” Statement GvR, Coghlan
SS 344 Exception Chaining and Embedded Tracebacks Yee
SF 345 Metadata for Python Software Packages 1.2 Jones
SW 346 User Defined (”with”) Statements Coghlan
PF 347 Migrating the Python CVS to Subversion von Löwis
SR 348 Exception Reorganization for Python 3.0 Cannon
SR 349 Allow str() to return unicode strings Schemenauer
IR 350 Codetags Elliott
SR 351 The freeze protocol Warsaw
SF 352 Required Superclass for Exceptions Cannon, GvR
SF 353 Using ssize_t as the index type von Löwis
SS 354 Enumerations in Python Finney
SR 355 Path - Object oriented filesystem paths Lindqvist
IF 356 Python 2.5 Release Schedule Norwitz, GvR, Baxter
SF 357 Allowing Any Object to be Used for Slicing Oliphant
SF 358 The “bytes” Object Schemenauer, GvR
SW 359 The “make” Statement Bethard
PF 360 Externally Maintained Packages Cannon
IF 361 Python 2.6 and 3.0 Release Schedule Norwitz, Warsaw
SF 362 Function Signature Object Cannon, Seo, Selivanov, Hastings
SR 363 Syntax For Dynamic Attribute Access North
SW 364 Transitioning to the Py3K Standard Library Warsaw
SR 365 Adding the pkg_resources module Eby
SF 366 Main module explicit relative imports Coghlan
SS 367 New Super Spealman, Delaney
SD 368 Standard image protocol and class Mastrodomenico
SW 369 Post import hooks Heimes
SF 370 Per user site-packages directory Heimes
SF 371 Addition of the multiprocessing package to the … Noller, Oudkerk
SF 372 Adding an ordered dictionary to collections Ronacher, Hettinger
IF 373 Python 2.7 Release Schedule Peterson
PF 374 Choosing a distributed VCS for the Python project Cannon, Turnbull, Vassalotti, Warsaw, Ochtman
IF 375 Python 3.1 Release Schedule Peterson
SF 376 Database of Installed Python Distributions Ziadé
SR 377 Allow __enter__() methods to skip the statement body Coghlan
SF 378 Format Specifier for Thousands Separator Hettinger
SW 379 Adding an Assignment Expression Whitley
SF 380 Syntax for Delegating to a Subgenerator Ewing
SW 381 Mirroring infrastructure for PyPI Ziadé, von Löwis
SR 382 Namespace Packages von Löwis
SF 383 Non-decodable Bytes in System Character Interfaces von Löwis
SF 384 Defining a Stable ABI von Löwis
PF 385 Migrating from Subversion to Mercurial Ochtman, Pitrou, Brandl
SS 386 Changing the version comparison module in Distutils Ziadé
P 387 Backwards Compatibility Policy Peterson
SF 389 argparse - New Command Line Parsing Module Bethard
SR 390 Static metadata for Distutils Ziadé
SF 391 Dictionary-Based Configuration For Logging Sajip
IF 392 Python 3.2 Release Schedule Brandl
SF 393 Flexible String Representation von Löwis
I 394 The “python” Command on Unix-Like Systems Staley, Coghlan, Warsaw, Viktorin, Hrončok, Willing
SW 395 Qualified Names for Modules Coghlan
IR 396 Module Version Numbers Warsaw
SF 397 Python launcher for Windows Hammond, von Löwis
IF 398 Python 3.3 Release Schedule Brandl
IF 399 Pure Python/C Accelerator Module Compatibility … Cannon
SD 400 Deprecate codecs.StreamReader and codecs.StreamWriter Stinner
PR 401 BDFL Retirement Warsaw, Cannon
SR 402 Simplified Package Layout and Partitioning Eby
SD 403 General purpose decorator clause (aka “@in” clause) Coghlan
IF 404 Python 2.8 Un-release Schedule Warsaw
SF 405 Python Virtual Environments Meyer
SW 406 Improved Encapsulation of Import State Coghlan, Slodkowicz
PD 407 New release cycle and introducing long-term support … Pitrou, Brandl, Warsaw
SR 408 Standard library __preview__ package Coghlan, Bendersky
SF 409 Suppressing exception context Furman
SR 410 Use decimal.Decimal type for timestamps Stinner
I 411 Provisional packages in the Python standard library Coghlan, Bendersky
SF 412 Key-Sharing Dictionary Shannon
PW 413 Faster evolution of the Python Standard Library Coghlan
SF 414 Explicit Unicode Literal for Python 3.3 Ronacher, Coghlan
SF 415 Implement context suppression with exception attributes Peterson
SR 416 Add a frozendict builtin type Stinner
SF 417 Including mock in the Standard Library Foord
SF 418 Add monotonic time, performance counter, and … Simpson, Jewett, Turnbull, Stinner
SD 419 Protecting cleanup statements from interruptions Colomiets
SF 420 Implicit Namespace Packages Smith
SF 421 Adding sys.implementation Snow
SW 422 Simpler customisation of class creation Coghlan, Urban
ID 423 Naming conventions and recipes related to packaging Bryon
SF 424 A method for exposing a length hint Gaynor
SF 425 Compatibility Tags for Built Distributions Holth
IW 426 Metadata for Python Software Packages 2.0 Coghlan, Holth, Stufft
SF 427 The Wheel Binary Package Format 1.0 Holth
SF 428 The pathlib module – object-oriented filesystem paths Pitrou
IF 429 Python 3.4 Release Schedule Hastings
IF 430 Migrating to Python 3 as the default online … Coghlan
SS 431 Time zone support improvements Regebro
SW 432 Restructuring the CPython startup sequence Coghlan, Stinner, Snow
SS 433 Easier suppression of file descriptor inheritance Stinner
I 434 IDLE Enhancement Exception for All Branches Rovito, Reedy
SF 435 Adding an Enum type to the Python standard library Warsaw, Bendersky, Furman
SF 436 The Argument Clinic DSL Hastings
SR 437 A DSL for specifying signatures, annotations and … Krah
PS 438 Transitioning to release-file hosting on PyPI Krekel, Meyer
SR 439 Inclusion of implicit pip bootstrap in Python … Jones
I 440 Version Identification and Dependency Specification Coghlan, Stufft
SF 441 Improving Python ZIP Application Support Holth, Moore
SF 442 Safe object finalization Pitrou
SF 443 Single-dispatch generic functions Langa
ID 444 Python Web3 Interface McDonough, Ronacher
SF 445 Add new APIs to customize Python memory allocators Stinner
SF 446 Make newly created file descriptors non-inheritable Stinner
SD 447 Add __getdescriptor__ method to metaclass Oussoren
SF 448 Additional Unpacking Generalizations Landau
PF 449 Removal of the PyPI Mirror Auto Discovery and … Stufft
SF 450 Adding A Statistics Module To The Standard Library D’Aprano
SF 451 A ModuleSpec Type for the Import System Snow
IF 452 API for Cryptographic Hash Functions v2.0 Kuchling, Heimes
SF 453 Explicit bootstrapping of pip in Python installations Stufft, Coghlan
SF 454 Add a new tracemalloc module to trace Python memory … Stinner
SR 455 Adding a key-transforming dictionary to collections Pitrou
SF 456 Secure and interchangeable hash algorithm Heimes
IF 457 Notation For Positional-Only Parameters Hastings
SA 458 Secure PyPI downloads with signed repository metadata Kuppusamy, Diaz, Moore, Puehringer, Lock, DeLong, Cappos
SW 459 Standard Metadata Extensions for Python Software … Coghlan
SW 460 Add binary interpolation and formatting Pitrou
SF 461 Adding % formatting to bytes and bytearray Furman
PW 462 Core development workflow automation for CPython Coghlan
SR 463 Exception-catching expressions Angelico
PF 464 Removal of the PyPI Mirror Authenticity API Stufft
SF 465 A dedicated infix operator for matrix multiplication Smith
SF 466 Network Security Enhancements for Python 2.7.x Coghlan
S 467 Minor API improvements for binary sequences Coghlan, Furman
SF 468 Preserving the order of **kwargs in a function. Snow
SW 469 Migration of dict iteration code to Python 3 Coghlan
PF 470 Removing External Hosting Support on PyPI Stufft
SF 471 os.scandir() function – a better and faster … Hoyt
SR 472 Support for indexing with keyword arguments Borini, Martinot-Lagarde
SR 473 Adding structured data to built-in exceptions Kreft
PW 474 Creating forge.python.org Coghlan
SF 475 Retry system calls failing with EINTR Natali, Stinner
SF 476 Enabling certificate verification by default for … Gaynor
SF 477 Backport ensurepip (PEP 453) to Python 2.7 Stufft, Coghlan
I 478 Python 3.5 Release Schedule Hastings
SF 479 Change StopIteration handling inside generators Angelico, GvR
S 480 Surviving a Compromise of PyPI: End-to-end signing … Kuppusamy, Diaz, Cappos, Moore
PW 481 Migrate CPython to Git, Github, and Phabricator Stufft
IF 482 Literature Overview for Type Hints Langa
IF 483 The Theory of Type Hints GvR, Levkivskyi
SF 484 Type Hints GvR, Lehtosalo, Langa
SF 485 A Function for testing approximate equality Barker
SF 486 Make the Python Launcher aware of virtual environments Moore
SF 487 Simpler customisation of class creation Teichmann
SF 488 Elimination of PYO files Cannon
SF 489 Multi-phase extension module initialization Viktorin, Behnel, Coghlan
SR 490 Chain exceptions at C level Stinner
SD 491 The Wheel Binary Package Format 1.9 Holth
SF 492 Coroutines with async and await syntax Selivanov
SF 493 HTTPS verification migration tools for Python 2.7 Coghlan, Kuska, Lemburg
IF 494 Python 3.6 Release Schedule Deily
SF 495 Local Time Disambiguation Belopolsky, Peters
IR 496 Environment Markers Polley
PR 497 A standard mechanism for backward compatibility Schofield
SF 498 Literal String Interpolation Smith
SD 499 python -m foo should bind … Simpson, Angelico, Jevnik
SR 500 A protocol for delegating datetime methods to their … Belopolsky, Peters
SD 501 General purpose string interpolation Coghlan
IR 502 String Interpolation - Extended Discussion Miller
IA 503 Simple Repository API Stufft
SW 504 Using the System RNG by default Coghlan
SD 505 None-aware operators Haase, Dower
SF 506 Adding A Secrets Module To The Standard Library D’Aprano
PR 507 Migrate CPython to Git and GitLab Warsaw
I 508 Dependency specification for Python Software Packages Collins
SF 509 Add a private version to dict Stinner
SR 510 Specialize functions with guards Stinner
SR 511 API for code transformers Stinner
PF 512 Migrating from hg.python.org to GitHub Cannon
IS 513 A Platform Tag for Portable Linux Built Distributions McGibbon, Smith
I 514 Python registration in the Windows registry Dower
SF 515 Underscores in Numeric Literals Brandl, Storchaka
SR 516 Build system abstraction for pip/conda etc Collins, Smith
SF 517 A build-system independent format for source trees Smith, Kluyver
SF 518 Specifying Minimum Build System Requirements for … Cannon, Smith, Stufft
SF 519 Adding a file system path protocol Cannon, Zevenhoven
SF 520 Preserving Class Attribute Definition Order Snow
SW 521 Managing global context via ‘with’ blocks in … Smith
SR 522 Allow BlockingIOError in security sensitive APIs Coghlan, Smith
SF 523 Adding a frame evaluation API to CPython Cannon, Viehland
SF 524 Make os.urandom() blocking on Linux Stinner
SF 525 Asynchronous Generators Selivanov
SF 526 Syntax for Variable Annotations Gonzalez, House, Levkivskyi, Roach, GvR
PF 527 Removing Un(der)used file types/extensions on PyPI Stufft
SF 528 Change Windows console encoding to UTF-8 Dower
SF 529 Change Windows filesystem encoding to UTF-8 Dower
SF 530 Asynchronous Comprehensions Selivanov
SW 531 Existence checking operators Coghlan
SD 532 A circuit breaking protocol and binary operators Coghlan, Haase
SD 533 Deterministic cleanup for iterators Smith
SD 534 Improved Errors for Missing Standard Library Modules Orsava, Viktorin, Coghlan
SD 535 Rich comparison chaining Coghlan
SD 536 Final Grammar for Literal String Interpolation Angerer
I 537 Python 3.7 Release Schedule Deily
SF 538 Coercing the legacy C locale to a UTF-8 based locale Coghlan
SF 539 A New C-API for Thread-Local Storage in CPython Bray, Yamamoto
SF 540 Add a new UTF-8 Mode Stinner
PF 541 Package Index Name Retention Langa
SR 542 Dot Notation Assignment In Function Header Meskanen
SW 543 A Unified TLS API for Python Benfield, Heimes
SA 544 Protocols: Structural subtyping (static duck typing) Levkivskyi, Lehtosalo, Langa
PF 545 Python Documentation Translations Palard, Inada, Stinner
SR 546 Backport ssl.MemoryBIO and ssl.SSLObject to Python 2.7 Stinner, Benfield
SD 547 Running extension modules using the -m option Plch, Viktorin
SR 548 More Flexible Loop Control Murray
SR 549 Instance Descriptors Hastings
SW 550 Execution Context Selivanov, Pranskevichus
IW 551 Security transparency in the Python runtime Dower
SF 552 Deterministic pycs Peterson
SF 553 Built-in breakpoint() Warsaw
S 554 Multiple Interpreters in the Stdlib Snow
SW 555 Context-local variables (contextvars) Zevenhoven
SD 556 Threaded garbage collection Pitrou
SF 557 Data Classes Smith
S 558 Defined semantics for locals() Coghlan
SR 559 Built-in noop() Warsaw
SA 560 Core support for typing module and generic types Levkivskyi
SA 561 Distributing and Packaging Type Information Smith
SF 562 Module __getattr__ and __dir__ Levkivskyi
SA 563 Postponed Evaluation of Annotations Langa
SF 564 Add new time functions with nanosecond resolution Stinner
SF 565 Show DeprecationWarning in __main__ Coghlan
SF 566 Metadata for Python Software Packages 2.1 Ingram
SF 567 Context Variables Selivanov
SD 568 Generator-sensitivity for Context Variables Smith
I 569 Python 3.8 Release Schedule Langa
SF 570 Python Positional-Only Parameters Hastings, Galindo, Corchero, Vander Weele
IS 571 The manylinux2010 Platform Tag Williams, Thomas, Kluyver
SA 572 Assignment Expressions Angelico, Peters, GvR
SF 573 Module State Access from C Extension Methods Viktorin, Coghlan, Snow, Plch
SF 574 Pickle protocol 5 with out-of-band data Pitrou
SW 575 Unifying function/method classes Demeyer
SW 576 Rationalize Built-in function classes Shannon
SW 577 Augmented Assignment Expressions Coghlan
SA 578 Python Runtime Audit Hooks Dower
IF 579 Refactoring C functions and methods Demeyer
SR 580 The C call protocol Demeyer
PA 581 Using GitHub Issues for CPython Mariatta
S 582 Python local packages directory Das, Dower, Stufft, Coghlan
IW 583 A Concurrency Memory Model for Python Yasskin
SF 584 Add Union Operators To dict D’Aprano, Bucher
SA 585 Type Hinting Generics In Standard Collections Langa
SA 586 Literal Types Lee, Levkivskyi, Lehtosalo
SF 587 Python Initialization Configuration Stinner, Coghlan
I 588 GitHub Issues Migration Plan Mariatta
SA 589 TypedDict: Type Hints for Dictionaries with a Fixed … Lehtosalo
SA 590 Vectorcall: a fast calling protocol for CPython Shannon, Demeyer
SA 591 Adding a final qualifier to typing Sullivan, Levkivskyi
SF 592 Adding “Yank” Support to the Simple API Stufft
SA 593 Flexible function and variable annotations Varoquaux, Kashin
SA 594 Removing dead batteries from the standard library Heimes, Cannon
IW 595 Improving bugs.python.org Melotti, Peksag
I 596 Python 3.9 Release Schedule Langa
SF 597 Add optional EncodingWarning Inada
IW 598 Introducing incremental feature releases Coghlan
IS 599 The manylinux2014 Platform Tag Ingram
IA 600 Future ‘manylinux’ Platform Tags for Portable Linux … Smith, Kluyver
SR 601 Forbid return/break/continue breaking out of finally George, Taskaya
IA 602 Annual Release Cycle for Python Langa
S 603 Adding a frozenmap type to collections Selivanov
SA 604 Allow writing union types as X | Y PRADOS, Moss
IR 605 A rolling feature release stream for CPython Dower, Coghlan
SR 606 Python Compatibility Version Stinner
IF 607 Reducing CPython’s Feature Delivery Latency Langa, Dower, Coghlan
SR 608 Coordinated Python release Hrončok, Stinner
P 609 PyPA Governance Ingram, Gedam, Harihareswara
SF 610 Recording the Direct URL Origin of installed … Bidoul, Jerdonek
SW 611 The one million limit Shannon
SA 612 Parameter Specification Variables Mendoza
SA 613 Explicit Type Aliases Zhu
SF 614 Relaxing Grammar Restrictions On Decorators Bucher
SA 615 Support for the IANA Time Zone Database in the … Ganssle
SA 616 String methods to remove prefixes and suffixes Sweeney
SA 617 New PEG parser for CPython GvR, Galindo, Nikolaou
SF 618 Add Optional Length-Checking To zip Bucher
I 619 Python 3.10 Release Schedule Salgado
S 620 Hide implementation details from the C API Stinner
SF 621 Storing project metadata in pyproject.toml Cannon, Ingram, Ganssle, Gedam, Eustace, Kluyver, Chung
SS 622 Structural Pattern Matching Bucher, Moisset, Kohn, Levkivskyi, GvR, Talin
SA 623 Remove wstr from Unicode Inada
SF 624 Remove Py_UNICODE encoder APIs Inada
S 625 File name of a Source Distribution Chung, Moore
SF 626 Precise line numbers for debugging and other tools. Shannon
IA 627 Recording installed projects Viktorin
SF 628 Add math.tau Coghlan
SF 629 Versioning PyPI’s Simple API Stufft
I 630 Isolating Extension Modules Viktorin
SA 631 Dependency specification in pyproject.toml based on … Lev
SA 632 Deprecate distutils module Dower
SR 633 Dependency specification in pyproject.toml using an … Opperman, Neelicattu
SA 634 Structural Pattern Matching: Specification Bucher, GvR
IF 635 Structural Pattern Matching: Motivation and Rationale Kohn, GvR
IF 636 Structural Pattern Matching: Tutorial Moisset
SR 637 Support for indexing with keyword arguments Borini
S 638 Syntactic Macros Shannon
S 639 Improving License Clarity with Better Package Metadata Ombredanne, Gerlach
SR 640 Unused variable syntax Wouters
SR 641 Using an underscore in the version portion of … Cannon, Dower, Warsaw
S 642 Explicit Pattern Syntax for Structural Pattern Matching Coghlan
SF 643 Metadata for Package Source Distributions Moore
SF 644 Require OpenSSL 1.1.1 or newer Heimes
P 645 Allow writing optional types as x? Moss
SA 646 Variadic Generics Mendoza, Rahtz, Srinivasan, Siles
SA 647 User-Defined Type Guards Traut
SR 648 Extensible customizations of the interpreter at startup Corchero
S 649 Deferred Evaluation Of Annotations Using Descriptors Hastings
P 650 Specifying Installer Requirements for Python Projects Jayanthi, Ingram, Cannon
SR 651 Robust Stack Overflow Handling Shannon
SF 652 Maintaining the Stable ABI Viktorin
S 653 Precise Semantics for Pattern Matching Shannon
SA 654 Exception Groups and except* Katriel, Selivanov, GvR
SA 655 Marking individual TypedDict items as required or … Foster
IA 656 Platform Tag for Linux Distributions Using Musl Chung
SF 657 Include Fine Grained Error Locations in Tracebacks Galindo, Taskaya, Askar
SA 658 Serve Distribution Metadata in the Simple … Chung
I 659 Specializing Adaptive Interpreter Shannon
SA 660 Editable installs for pyproject.toml based builds … Holth, Bidoul
S 661 Sentinel Values Einat
SR 662 Editable installs via virtual wheels Gábor
IR 663 Standardizing Enum str(), repr(), and format() … Furman
I 664 Python 3.11 Release Schedule Salgado
SR 665 A file format to list Python dependencies for … Cannon, Gedam, Chung
SR 666 Reject Foolish Indentation Creighton
S 667 Consistent views of namespaces Shannon
I 668 Marking Python base environments as “externally … Thomas, Klose, Laíns, Stufft, Chung, Rivera, Hashman, Gedam
S 669 Low Impact Monitoring for CPython Shannon
S 670 Convert macros to functions in the Python C API Aasland, Stinner
S 671 Syntax for late-bound function argument defaults Angelico
I 672 Unicode-related Security Considerations for Python Viktorin
SA 673 Self Type Srinivasan, Hilton-Balfe
S 674 Disallow using macros as l-values Stinner
SA 675 Arbitrary Literal String Type Srinivasan, Bleaney
P 676 PEP Infrastructure Process Turner
SR 677 Callable Type Syntax Troxler, Srinivasan
S 678 Enriching Exceptions with Notes Hatfield-Dodds
S 679 Allow parentheses in assert statements Salgado
SA 680 tomllib: Support for Parsing TOML in the Standard … Hukkinen
S 681 Data Class Transforms Bonte, Traut
SA 682 Format Specifier for Signed Zero Belmonte
S 683 Immortal Objects, Using a Fixed Refcount Snow, Elizondo
S 684 A Per-Interpreter GIL Snow
SA 685 Comparison of extra names for optional distribution … Cannon
S 686 Make UTF-8 mode default Inada
SR 754 IEEE 754 Floating Point Special Values Warnes
I 801 Reserved Warsaw
SR 2241 Back to the Past Ambiguous
PF 3000 Python 3000 GvR
PW 3001 Procedure for reviewing and improving standard … Brandl
PF 3002 Procedure for Backwards-Incompatible Changes Bethard
PF 3003 Python Language Moratorium Cannon, Noller, GvR
PF 3099 Things that will Not Change in Python 3000 Brandl
PF 3100 Miscellaneous Python 3.0 Plans Cannon
SF 3101 Advanced String Formatting Talin
SF 3102 Keyword-Only Arguments Talin
SR 3103 A Switch/Case Statement GvR
SF 3104 Access to Names in Outer Scopes Yee
SF 3105 Make print a function Brandl
SF 3106 Revamping dict.keys(), .values() and .items() GvR
SF 3107 Function Annotations Winter, Lownds
SF 3108 Standard Library Reorganization Cannon
SF 3109 Raising Exceptions in Python 3000 Winter
SF 3110 Catching Exceptions in Python 3000 Winter
SF 3111 Simple input built-in in Python 3000 Roberge
SF 3112 Bytes literals in Python 3000 Orendorff
SF 3113 Removal of Tuple Parameter Unpacking Cannon
SF 3114 Renaming iterator.next() to iterator.__next__() Yee
SF 3115 Metaclasses in Python 3000 Talin
SF 3116 New I/O Stutzbach, GvR, Verdone
SR 3117 Postfix type declarations Brandl
SF 3118 Revising the buffer protocol Oliphant, Banks
SF 3119 Introducing Abstract Base Classes GvR, Talin
SF 3120 Using UTF-8 as the default source encoding von Löwis
SA 3121 Extension Module Initialization and Finalization von Löwis
SR 3122 Delineation of the main module Cannon
SF 3123 Making PyObject_HEAD conform to standard C von Löwis
SD 3124 Overloading, Generic Functions, Interfaces, and … Eby
SR 3125 Remove Backslash Continuation Jewett
SR 3126 Remove Implicit String Concatenation Jewett, Hettinger
SF 3127 Integer Literal Support and Syntax Maupin
SR 3128 BList: A Faster List-like Type Stutzbach
SF 3129 Class Decorators Winter
SR 3130 Access to Current Module/Class/Function Jewett
SF 3131 Supporting Non-ASCII Identifiers von Löwis
SF 3132 Extended Iterable Unpacking Brandl
SR 3133 Introducing Roles Winter
SF 3134 Exception Chaining and Embedded Tracebacks Yee
SF 3135 New Super Spealman, Delaney, Ryan
SR 3136 Labeled break and continue Chisholm
SF 3137 Immutable Bytes and Mutable Buffer GvR
SF 3138 String representation in Python 3000 Ishimoto
SR 3139 Cleaning out sys and the “interpreter” module Peterson
SR 3140 str(container) should call str(item), not repr(item) Broytman, Jewett
SF 3141 A Type Hierarchy for Numbers Yasskin
SR 3142 Add a “while” clause to generator expressions Britton
SD 3143 Standard daemon process library Finney
SF 3144 IP Address Manipulation Library for the Python … Moody
SW 3145 Asynchronous I/O For subprocess.Popen Pruitt, McCreary, Carlson
SW 3146 Merging Unladen Swallow into CPython Winter, Yasskin, Kleckner
SF 3147 PYC Repository Directories Warsaw
SF 3148 futures - execute computations asynchronously Quinlan
SF 3149 ABI version tagged .so files Warsaw
SD 3150 Statement local namespaces (aka “given” clause) Coghlan
SF 3151 Reworking the OS and IO exception hierarchy Pitrou
SR 3152 Cofunctions Ewing
SS 3153 Asynchronous IO support Houtven
SF 3154 Pickle protocol version 4 Pitrou
SF 3155 Qualified name for classes and functions Pitrou
SF 3156 Asynchronous IO Support Rebooted: the “asyncio” Module GvR
IF 3333 Python Web Server Gateway Interface v1.0.1 Eby
I 8000 Python Language Governance Proposal Overview Warsaw
PF 8001 Python Governance Voting Process Cannon, Heimes, Stufft, Snow, Smith, Langa, Mariatta, Smith, Salgado, Hettinger, Einat, Peters, Ware
I 8002 Open Source Governance Survey Warsaw, Langa, Pitrou, Hellmann, Willing
IR 8010 The Technical Leader Governance Model Warsaw
IR 8011 Python Governance Model Lead by Trio of Pythonistas Mariatta, Warsaw
IR 8012 The Community Governance Model Langa
IR 8013 The External Council Governance Model Dower
IR 8014 The Commons Governance Model Jansen
IR 8015 Organization of the Python community Stinner
IA 8016 The Steering Council Model Smith, Stufft
I 8100 January 2019 steering council election Smith, Durbin
I 8101 2020 Term steering council election Jodlowska, Durbin
I 8102 2021 Term steering council election Jodlowska, Durbin, Carey
I 8103 2022 Term steering council election Jodlowska, Durbin, Carey
SP 9001 The Final Style Guide for Python Code for Life, IIII, Robin

Reserved PEP Numbers

PEP PEP Title PEP Author(s)
801 RESERVED Warsaw

PEP Types Key

I - Informational PEP

P - Process PEP

S - Standards Track PEP

PEP Status Key

A - Accepted (Standards Track only) or Active proposal

D - Deferred proposal

F - Final proposal

P - Provisional proposal

R - Rejected proposal

S - Superseded proposal

W - Withdrawn proposal

Authors/Owners

Name Email Address
Aahz aahz at pythoncraft.com
Aasland, Erlend Egeberg erlend.aasland at protonmail.com
Ahlstrom, James C. jim at interet.com
Althoff, Jim james_althoff at i2.com
Altis, Kevin altis at semi-retired.com
Ambiguous, Temporally
Angelico, Chris rosuav at gmail.com
Angerer, Philipp phil.angerer at gmail.com
Ascher, David davida at activestate.com
Askar, Ammar ammar at ammaraskar.com
Astrand, Peter astrand at lysator.liu.se
Banks, Carl pythondev at aerojockey.com
Barker, Christopher chris.barker at noaa.gov
Barrett, Paul barrett at stsci.edu
Batista, Facundo facundo at taniquetil.com.ar
Baxter, Anthony anthony at interlink.com.au
Behnel, Stefan stefan_ml at behnel.de
Bellman, Thomas bellman+pep-divmod at lysator.liu.se
Belmonte, John john at neggie.net
Belopolsky, Alexander alexander.belopolsky at gmail.com
Bendersky, Eli eliben at gmail.com
Benfield, Cory cory at lukasa.co.uk
Bethard, Steven steven.bethard at gmail.com
Bidoul, Stéphane stephane.bidoul at gmail.com
Bleaney, Graham gbleaney at gmail.com
Bonte, Erik De erikd at microsoft.com
Borini, Stefano
Brandl, Georg georg at python.org
Bray, Erik M.
Britton, Gerald gerald.britton at gmail.com
Broytman, Oleg phd at phdru.name
Bryon, Benoit benoit at marmelune.net
Bucher, Brandt brandt at python.org
Cannon, Brett brett at python.org
Cappos, Justin jcappos at nyu.edu
Carey, Joe joe at python.org
Carlson, Josiah jcarlson at uci.edu
Carroll, W Isaac icarroll at pobox.com
Chisholm, Matt matt-python at theory.org
Chung, Tzu-ping uranusjr at gmail.com
Chung, Tzu-Ping uranusjr at gmail.com
Coghlan, Nick ncoghlan at gmail.com
Cole, Dave djc at object-craft.com.au
Collins, Robert rbtcollins at hp.com
Colomiets, Paul paul at colomiets.name
Corchero, Mario mariocj89 at gmail.com
Craig, Christopher A. python-pep at ccraig.org
Creighton, Laura lac at strakt.com
D’Aprano, Steven steve at pearwood.info
Das, Kushal mail at kushaldas.in
Deily, Ned nad at python.org
Delaney, Tim timothy.c.delaney at gmail.com
DeLong, Lois Anne lad278 at nyu.edu
Demeyer, Jeroen j.demeyer at ugent.be
Diaz, Vladimir vladimir.diaz at nyu.edu
Diederich, Jack jackdied at gmail.com
Dower, Steve steve.dower at python.org
Dörwald, Walter walter at livinglogic.de
Drake, Fred L., Jr. fred at fdrake.net
Dubner, Michael P. dubnerm at mindless.com
Dubois, Paul F. paul at pfdubois.com
Durbin, Ee ee at python.org
Eby, Phillip J. pje at telecommunity.com
Einat, Tal tal at python.org
Elizondo, Eddie eduardo.elizondorueda at gmail.com
Elliott, Micah mde at tracos.org
Epler, Jeff jepler at unpythonic.net
Eppstein, David eppstein at ics.uci.edu
Eustace, Sébastien sebastien at eustace.io
Evans, Clark C. cce at clarkevans.com
Ewing, Gregory greg.ewing at canterbury.ac.nz
Faassen, Martijn faassen at infrae.com
Finney, Ben ben+python at benfinney.id.au
Foord, Michael michael at python.org
Foster, David david at dafoster.net
Furman, Ethan ethan at stoneleaf.us
Galindo, Pablo pablogsal at python.org
Ganssle, Paul paul at ganssle.io
Gaynor, Alex alex.gaynor at gmail.com
Gábor, Bernát gaborjbernat at gmail.com
Gedam, Pradyun pradyunsg at gmail.com
George, Damien
Gerlach, C.A.M. cam.gerlach at gerlach.cam
Giacometti, Frédéric B. fred at arakne.com
Gilbert, Scott xscottg at yahoo.com
Gonzalez, Ryan rymg19 at gmail.com
Goodger, David goodger at python.org
Griffin, Grant g2 at iowegian.com
Haase, Mark E. mehaase at gmail.com
Hammond, Mark mhammond at skippinet.com.au
Harihareswara, Sumana sh at changeset.nyc
Harris, Peter scav at blueyonder.co.uk
Hashman, Elana ehashman at debian.org
Hastings, Larry larry at hastings.org
Hatfield-Dodds, Zac zac at zhd.dev
Heimes, Christian christian at python.org
Heller, Thomas theller at python.net
Hellmann, Doug doug at doughellmann.com
Hetland, Magnus Lie magnus at hetland.org
Hettinger, Raymond python at rcn.com
Hilton-Balfe, James gobot1234yt at gmail.com
Hodgson, Neil neilh at scintilla.org
Holth, Daniel dholth at gmail.com
House, Philip phouse512 at gmail.com
Houtven, Laurens Van _ at lvh.cc
Hoyt, Ben benhoyt at gmail.com
Hrončok, Miro miro at hroncok.cz
Hudson, Michael mwh at python.net
Hukkinen, Taneli, Shantanu Jain hauntsaninja at gmail.com
Hylton, Jeremy jeremy at alum.mit.edu
IIII, David Bartholomew dave at pythondiscord.com
Inada, Naoki songofacandy at gmail.com
Ingram, Dustin di at python.org
Ishimoto, Atsuo ishimoto–at–gembook.org
Jansen, Jack jack at cwi.nl
Jayanthi, Vikram vikramjayanthi at google.com
Jerdonek, Chris chris.jerdonek at gmail.com
Jevnik, Joseph joejev at gmail.com
Jewett, Jim J. jimjjewett at gmail.com
Jodlowska, Ewa ewa at python.org
Jones, Richard richard at python.org
Kashin, Konstantin kkashin at fb.com
Katriel, Irit iritkatriel at gmail.com
Kleckner, Reid rnk at mit.edu
Klose, Matthias doko at ubuntu.com
Kluyver, Thomas thomas at kluyver.me.uk
Kohn, Tobias kohnt at tobiaskohn.ch
Koltsov, Stepan yozh at mx1.ru
Krah, Stefan skrah at bytereef.org
Kreft, Sebastian skreft at deezer.com
Krekel, Holger holger at merlinux.eu
Kuchling, A.M. amk at amk.ca
Kuppusamy, Trishank Karthik karthik at trishank.com
Kuska, Robert rkuska at redhat.com
Laíns, Filipe lains at riseup.net
Landau, Joshua joshua at landau.ws
Langa, Łukasz lukasz at python.org
Lee, Michael michael.lee.0x2a at gmail.com
Lehtosalo, Jukka jukka.lehtosalo at iki.fi
Lemburg, Marc-André mal at lemburg.com
Lev, Ofek ofekmeister at gmail.com
Levkivskyi, Ivan levkivskyi at gmail.com
Lielens, Gregory gregory.lielens at fft.be
for Life, Benevolent Dictator modmail at pythondiscord.com
Lindqvist, Björn bjourne at gmail.com
Lock, Joshua jlock at vmware.com
Lownds, Tony tony at lownds.com
von Löwis, Martin martin at v.loewis.de
Mariatta mariatta at python.org
Martelli, Alex aleaxit at gmail.com
Martinot-Lagarde, Joseph
Mastrodomenico, Lino l.mastrodomenico at gmail.com
Maupin, Patrick pmaupin at gmail.com
McClelland, Andrew eternalsquire at comcast.net
McCreary, Charles R.
McDonough, Chris chrism at plope.com
McGibbon, Robert T. rmcgibbo at gmail.com
McMillan, Gordon gmcm at hypernet.com
McNamara, Andrew andrewm at object-craft.com.au
Melotti, Ezio ezio.melotti at gmail.com
Mendoza, Mark mendoza.mark.a at gmail.com
Meskanen, Markus markusmeskanen at gmail.com
Meyer, Mike mwm at mired.org
Meyer, Carl carl at oddbird.net
Mick, Trent trentm at activestate.com
Miller, Mike G.
Moisset, Daniel F dfmoisset at gmail.com
Montanaro, Skip skip at pobox.com
Moody, Peter pmoody at google.com
Moore, Paul p.f.moore at gmail.com
Moore, Marina mm9693 at nyu.edu
Moss, Maggie maggiebmoss at gmail.com
Murray, R David
Natali, Charles-François cf.natali at gmail.com
Neelicattu, Arun Babu arun.neelicattu at gmail.com
Nikolaou, Lysandros lisandrosnik at gmail.com
Noller, Jesse jnoller at gmail.com
North, Ben ben at redfrontdoor.org
Norwitz, Neal nnorwitz at gmail.com
Ochtman, Dirkjan dirkjan at ochtman.nl
Oliphant, Travis oliphant at ee.byu.edu
Ombredanne, Philippe pombredanne at nexb.com
Opperman, Laurie laurie_opperman at hotmail.com
Orendorff, Jason jason.orendorff at gmail.com
Orsava, Tomáš tomas.n at orsava.cz
Oudkerk, Richard r.m.oudkerk at googlemail.com
Oussoren, Ronald ronaldoussoren at mac.com
Palard, Julien julien at palard.fr
Pedroni, Samuele pedronis at python.org
Peksag, Berker berker.peksag at gmail.com
Pelletier, Michel michel at users.sourceforge.net
Peters, Tim tim.peters at gmail.com
Peterson, Benjamin benjamin at python.org
Petrone, Jason jp at demonseed.net
Pitrou, Antoine solipsis at pitrou.net
Plch, Marcel gmarcel.plch at gmail.com
Polley, James jp at jamezpolley.com
PRADOS, Philippe python at prados.fr
Pranskevichus, Elvis elvis at edgedb.com
Prescod, Paul paul at prescod.net
Pruitt, (James) Eric
Puehringer, Lukas lukas.puehringer at nyu.edu
Quinlan, Brian brian at sweetapp.com
Rahtz, Matthew mrahtz at google.com
Reedy, Terry tjreedy at udel.edu
Regebro, Lennart regebro at gmail.com
Reifschneider, Sean jafo-pep at tummy.com
Reis, Christian R. kiko at async.com.br
Riehl, Jonathan jriehl at spaceship.com
Rivera, Stefano stefanor at debian.org
Roach, Lisa lisaroach14 at gmail.com
Roberge, Andre andre.roberge at gmail.com
Robin, Sir sir-robin at pythondiscord.com
Ronacher, Armin armin.ronacher at active-4.com
van Rossum, Guido (GvR) guido at python.org
van Rossum, Just (JvR) just at letterror.com
Rovito, Todd rovitotv at gmail.com
Ryan, Lie lie.1296 at gmail.com
Sajip, Vinay vinay_sajip at red-dove.com
Salgado, Pablo Galindo pablogsal at python.org
Schemenauer, Neil nas at arctrix.com
Schneider-Kamp, Peter nowonder at nowonder.de
Schofield, Ed ed at pythoncharmers.com
Selivanov, Yury yury at edgedb.com
Seo, Jiwon seojiwon at gmail.com
Shannon, Mark mark at hotpy.org
Siles, Vincent vsiles at fb.com
Simpson, Cameron cs at cskk.id.au
Slodkowicz, Greg jergosh at gmail.com
Smith, Kevin D. kevin.smith at themorgue.org
Smith, Eric V. eric at trueblade.com
Smith, Nathaniel J. njs at pobox.com
Smith, Ethan ethan at ethanhs.me
Smith, Gregory P. greg at krypto.org
Snow, Eric ericsnowcurrently at gmail.com
Spealman, Calvin ironfroggy at gmail.com
Srinivasan, Pradeep Kumar gohanpra at gmail.com
Staley, Kerrick mail at kerrickstaley.com
Stein, Greg gstein at lyra.org
Stinner, Victor vstinner at python.org
Storchaka, Serhiy
Stufft, Donald donald at stufft.io
Stutzbach, Daniel daniel at stutzbachenterprises.com
Sullivan, Michael J. sully at msully.net
Suzi, Roman rnd at onego.ru
Sweeney, Dennis sweeney.dennis650 at gmail.com
Talin viridia at gmail.com
Taschuk, Steven staschuk at telusplanet.net
Taskaya, Batuhan batuhan at python.org
Teichmann, Martin lkb.teichmann at gmail.com
The Python core team and community
Thomas, Geoffrey geofft at ldpreload.com
Tirosh, Oren oren at hishome.net
Traut, Eric erictr at microsoft.com
Troxler, Steven steven.troxler at gmail.com
Turnbull, Stephen J. stephen at xemacs.org
Turner, Adam python at quite.org.uk
Urban, Daniel urban.dani+py at gmail.com
Vander Weele, Eric N. ericvw at gmail.com
Varoquaux, Till till at fb.com
Vassalotti, Alexandre alexandre at peadrop.com
Verdone, Mike mike.verdone at gmail.com
Viehland, Dino dinov at microsoft.com
Viktorin, Petr encukou at gmail.com
Ware, Zachary zachary.ware at gmail.com
Warnes, Gregory R. gregory_r_warnes at groton.pfizer.com
Warsaw, Barry barry at python.org
Way, Terence terry at wayforward.net
Wells, Cliff logiplexsoftware at earthlink.net
Whitley, Jervis jervisau at gmail.com
Williams, Mark mrw at enotuniq.org
Willing, Carol willingc at gmail.com
Wilson, Greg gvwilson at ddj.com
Winter, Collin collinwinter at google.com
Wouters, Thomas thomas at python.org
Yamamoto, Masayuki
Yasskin, Jeffrey jyasskin at google.com
Yee, Ka-Ping ping at zesty.ca
Zadka, Moshe moshez at zadka.site.co.il
Zevenhoven, Koos k7hoven at gmail.com
Zhu, Huaiyu hzhu at users.sourceforge.net
Zhu, Shannon szhu at fb.com
Ziadé, Tarek tarek at ziade.org