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

Python Enhancement Proposals

PEP 0 – Index of Python Enhancement Proposals (PEPs)

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

Table of Contents

Introduction

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

Topics

PEPs for specialist subjects are indexed by topic.

Index by Category

Meta-PEPs (PEPs about PEPs or Processes)

PEP Title Authors
PA 1 PEP Purpose and Guidelines Barry Warsaw, Jeremy Hylton, David Goodger, Nick Coghlan
PA 2 Procedure for Adding New Modules Brett Cannon, Martijn Faassen
PA 4 Deprecation of Standard Modules Brett Cannon, Martin von Löwis
PA 5 Guidelines for Language Evolution Paul Prescod
PA 6 Bug Fix Releases Aahz, Anthony Baxter
PA 7 Style Guide for C Code Guido van Rossum, Barry Warsaw
PA 8 Style Guide for Python Code Guido van Rossum, Barry Warsaw, Nick Coghlan
PA 10 Voting Guidelines Barry Warsaw
PA 11 CPython platform support Martin von Löwis, Brett Cannon
PA 12 Sample reStructuredText PEP Template David Goodger, Barry Warsaw, Brett Cannon
PA 13 Python Language Governance The Python core team and community
PA 387 Backwards Compatibility Policy Benjamin Peterson
PA 581 Using GitHub Issues for CPython Mariatta
PA 609 Python Packaging Authority (PyPA) Governance Dustin Ingram, Pradyun Gedam, Sumana Harihareswara
PA 676 PEP Infrastructure Process Adam Turner

Other Informational PEPs

PEP Title Authors
IA 20 The Zen of Python Tim Peters
IA 101 Doing Python Releases 101 Barry Warsaw, Guido van Rossum
IF 247 API for Cryptographic Hash Functions A.M. Kuchling
IF 248 Python Database API Specification v1.0 Greg Stein, Marc-André Lemburg
IF 249 Python Database API Specification v2.0 Marc-André Lemburg
IA 257 Docstring Conventions David Goodger, Guido van Rossum
IF 272 API for Block Encryption Algorithms v1.0 A.M. Kuchling
IA 287 reStructuredText Docstring Format David Goodger
IA 290 Code Migration and Modernization Raymond Hettinger
IF 291 Backward Compatibility for the Python 2 Standard Library Neal Norwitz
IF 333 Python Web Server Gateway Interface v1.0 Phillip J. Eby
IA 394 The “python” Command on Unix-Like Systems Kerrick Staley, Nick Coghlan, Barry Warsaw, Petr Viktorin, Miro Hrončok, Carol Willing
IF 399 Pure Python/C Accelerator Module Compatibility Requirements Brett Cannon
IF 430 Migrating to Python 3 as the default online documentation Nick Coghlan
IA 434 IDLE Enhancement Exception for All Branches Todd Rovito, Terry Reedy
IF 452 API for Cryptographic Hash Functions v2.0 A.M. Kuchling, Christian Heimes
IF 457 Notation For Positional-Only Parameters Larry Hastings
IF 482 Literature Overview for Type Hints Łukasz Langa
IF 483 The Theory of Type Hints Guido van Rossum, Ivan Levkivskyi
IA 514 Python registration in the Windows registry Steve Dower
IA 569 Python 3.8 Release Schedule Łukasz Langa
IF 579 Refactoring C functions and methods Jeroen Demeyer
IA 596 Python 3.9 Release Schedule Łukasz Langa
IA 602 Annual Release Cycle for Python Łukasz Langa
IF 607 Reducing CPython’s Feature Delivery Latency Łukasz Langa, Steve Dower, Nick Coghlan
IA 619 Python 3.10 Release Schedule Pablo Galindo Salgado
IF 630 Isolating Extension Modules Petr Viktorin
IF 635 Structural Pattern Matching: Motivation and Rationale Tobias Kohn, Guido van Rossum
IF 636 Structural Pattern Matching: Tutorial Daniel F Moisset
IA 664 Python 3.11 Release Schedule Pablo Galindo Salgado
IA 672 Unicode-related Security Considerations for Python Petr Viktorin
IA 693 Python 3.12 Release Schedule Thomas Wouters
IA 719 Python 3.13 Release Schedule Thomas Wouters
IA 801 Reserved Barry Warsaw
IF 3333 Python Web Server Gateway Interface v1.0.1 Phillip J. Eby
IF 8000 Python Language Governance Proposal Overview Barry Warsaw
IF 8002 Open Source Governance Survey Barry Warsaw, Łukasz Langa, Antoine Pitrou, Doug Hellmann, Carol Willing
IA 8016 The Steering Council Model Nathaniel J. Smith, Donald Stufft
IF 8100 January 2019 Steering Council election Nathaniel J. Smith, Ee Durbin
IF 8101 2020 Term Steering Council election Ewa Jodlowska, Ee Durbin
IF 8102 2021 Term Steering Council election Ewa Jodlowska, Ee Durbin, Joe Carey
IF 8103 2022 Term Steering Council election Ewa Jodlowska, Ee Durbin, Joe Carey
IA 8104 2023 Term Steering Council election Ee Durbin

Provisional PEPs (provisionally accepted; interface may still change)

PEP Title Authors
SP 708 Extending the Repository API to Mitigate Dependency Confusion Attacks Donald Stufft

Accepted PEPs (accepted; may not be implemented yet)

PEP Title Authors
SA 458 Secure PyPI downloads with signed repository metadata Trishank Karthik Kuppusamy, Vladimir Diaz, Marina Moore, Lukas Puehringer, Joshua Lock, Lois Anne DeLong, Justin Cappos
SA 544 Protocols: Structural subtyping (static duck typing) Ivan Levkivskyi, Jukka Lehtosalo, Łukasz Langa
SA 560 Core support for typing module and generic types Ivan Levkivskyi
SA 563 Postponed Evaluation of Annotations Łukasz Langa
SA 578 Python Runtime Audit Hooks Steve Dower
SA 586 Literal Types Michael Lee, Ivan Levkivskyi, Jukka Lehtosalo
SA 589 TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys Jukka Lehtosalo
SA 590 Vectorcall: a fast calling protocol for CPython Mark Shannon, Jeroen Demeyer
SA 591 Adding a final qualifier to typing Michael J. Sullivan, Ivan Levkivskyi
SA 593 Flexible function and variable annotations Till Varoquaux, Konstantin Kashin
SA 604 Allow writing union types as X | Y Philippe PRADOS, Maggie Moss
SA 612 Parameter Specification Variables Mark Mendoza
SA 613 Explicit Type Aliases Shannon Zhu
SA 615 Support for the IANA Time Zone Database in the Standard Library Paul Ganssle
SA 617 New PEG parser for CPython Guido van Rossum, Pablo Galindo, Lysandros Nikolaou
SA 625 Filename of a Source Distribution Tzu-ping Chung, Paul Moore
SA 632 Deprecate distutils module Steve Dower
SA 634 Structural Pattern Matching: Specification Brandt Bucher, Guido van Rossum
SA 646 Variadic Generics Mark Mendoza, Matthew Rahtz, Pradeep Kumar Srinivasan, Vincent Siles
SA 647 User-Defined Type Guards Eric Traut
SA 649 Deferred Evaluation Of Annotations Using Descriptors Larry Hastings
SA 654 Exception Groups and except* Irit Katriel, Yury Selivanov, Guido van Rossum
SA 655 Marking individual TypedDict items as required or potentially-missing David Foster
SA 658 Serve Distribution Metadata in the Simple Repository API Tzu-ping Chung
SA 668 Marking Python base environments as “externally managed” Geoffrey Thomas, Matthias Klose, Filipe Laíns, Donald Stufft, Tzu-ping Chung, Stefano Rivera, Elana Hashman, Pradyun Gedam
SA 669 Low Impact Monitoring for CPython Mark Shannon
SA 673 Self Type Pradeep Kumar Srinivasan, James Hilton-Balfe
SA 675 Arbitrary Literal String Type Pradeep Kumar Srinivasan, Graham Bleaney
SA 678 Enriching Exceptions with Notes Zac Hatfield-Dodds
SA 680 tomllib: Support for Parsing TOML in the Standard Library Taneli Hukkinen, Shantanu Jain
SA 681 Data Class Transforms Erik De Bonte, Eric Traut
SA 683 Immortal Objects, Using a Fixed Refcount Eric Snow, Eddie Elizondo
SA 684 A Per-Interpreter GIL Eric Snow
SA 685 Comparison of extra names for optional distribution dependencies Brett Cannon
SA 686 Make UTF-8 mode default Inada Naoki
SA 687 Isolating modules in the standard library Erlend Egeberg Aasland, Petr Viktorin
SA 688 Making the buffer protocol accessible in Python Jelle Zijlstra
SA 691 JSON-based Simple API for Python Package Indexes Donald Stufft, Pradyun Gedam, Cooper Lees, Dustin Ingram
SA 692 Using TypedDict for more precise **kwargs typing Franek Magiera
SA 695 Type Parameter Syntax Eric Traut
SA 698 Override Decorator for Static Typing Steven Troxler, Joshua Xu, Shannon Zhu
SA 699 Remove private dict version field added in PEP 509 Ken Jin
SA 700 Additional Fields for the Simple API for Package Indexes Paul Moore
SA 701 Syntactic formalization of f-strings Pablo Galindo, Batuhan Taskaya, Lysandros Nikolaou, Marta Gómez Macías
SA 709 Inlined comprehensions Carl Meyer
SA 714 Rename dist-info-metadata in the Simple API Donald Stufft
SA 3121 Extension Module Initialization and Finalization Martin von Löwis

Open PEPs (under consideration)

PEP Title Authors
S 467 Minor API improvements for binary sequences Nick Coghlan, Ethan Furman
S 480 Surviving a Compromise of PyPI: End-to-end signing of packages Trishank Karthik Kuppusamy, Vladimir Diaz, Justin Cappos, Marina Moore
S 554 Multiple Interpreters in the Stdlib Eric Snow
I 588 GitHub Issues Migration Plan Mariatta
S 603 Adding a frozenmap type to collections Yury Selivanov
S 638 Syntactic Macros Mark Shannon
S 639 Improving License Clarity with Better Package Metadata Philippe Ombredanne, C.A.M. Gerlach
S 653 Precise Semantics for Pattern Matching Mark Shannon
I 659 Specializing Adaptive Interpreter Mark Shannon
S 661 Sentinel Values Tal Einat
S 667 Consistent views of namespaces Mark Shannon
S 671 Syntax for late-bound function argument defaults Chris Angelico
S 679 Allow parentheses in assert statements Pablo Galindo Salgado
S 694 Upload 2.0 API for Python Package Repositories Donald Stufft
S 696 Type defaults for TypeVarLikes James Hilton-Balfe
S 702 Marking deprecations using the type system Jelle Zijlstra
S 703 Making the Global Interpreter Lock Optional in CPython Sam Gross
S 705 TypedMapping: Type Hints for Mappings with a Fixed Set of Keys Alice Purcell
S 710 Recording the provenance of installed packages Fridolín Pokorný
S 711 PyBI: a standard format for distributing Python Binaries Nathaniel J. Smith
S 712 Adding a “converter” parameter to dataclasses.field Joshua Cannon
S 718 Subscriptable functions James Hilton-Balfe
I 720 Cross-compiling Python packages Filipe Laíns
S 722 Dependency specification for single-file scripts Paul Moore
S 723 Embedding pyproject.toml in single-file scripts Ofek Lev
S 724 Stricter Type Guards Rich Chiodo, Eric Traut, Erik De Bonte
S 725 Specifying external dependencies in pyproject.toml Pradyun Gedam, Ralf Gommers
S 726 Module __setattr__ and __delattr__ Sergey B Kirpichev
S 727 Documentation Metadata in Typing Sebastián Ramírez

Finished PEPs (done, with a stable interface)

PEP Title Authors
SF 100 Python Unicode Integration Marc-André Lemburg
SF 201 Lockstep Iteration Barry Warsaw
SF 202 List Comprehensions Barry Warsaw
SF 203 Augmented Assignments Thomas Wouters
SF 205 Weak References Fred L. Drake, Jr.
SF 207 Rich Comparisons Guido van Rossum, David Ascher
SF 208 Reworking the Coercion Model Neil Schemenauer, Marc-André Lemburg
SF 214 Extended Print Statement Barry Warsaw
SF 217 Display Hook for Interactive Use Moshe Zadka
SF 218 Adding a Built-In Set Object Type Greg Wilson, Raymond Hettinger
SF 221 Import As Thomas Wouters
SF 223 Change the Meaning of x Escapes Tim Peters
SF 227 Statically Nested Scopes Jeremy Hylton
SF 229 Using Distutils to Build Python A.M. Kuchling
SF 230 Warning Framework Guido van Rossum
SF 232 Function Attributes Barry Warsaw
SF 234 Iterators Ka-Ping Yee, Guido van Rossum
SF 235 Import on Case-Insensitive Platforms Tim Peters
SF 236 Back to the __future__ Tim Peters
SF 237 Unifying Long Integers and Integers Moshe Zadka, Guido van Rossum
SF 238 Changing the Division Operator Moshe Zadka, Guido van Rossum
SF 250 Using site-packages on Windows Paul Moore
SF 252 Making Types Look More Like Classes Guido van Rossum
SF 253 Subtyping Built-in Types Guido van Rossum
SF 255 Simple Generators Neil Schemenauer, Tim Peters, Magnus Lie Hetland
SF 260 Simplify xrange() Guido van Rossum
SF 261 Support for “wide” Unicode characters Paul Prescod
SF 263 Defining Python Source Code Encodings Marc-André Lemburg, Martin von Löwis
SF 264 Future statements in simulated shells Michael Hudson
SF 273 Import Modules from Zip Archives James C. Ahlstrom
SF 274 Dict Comprehensions Barry Warsaw
SF 277 Unicode file name support for Windows NT Neil Hodgson
SF 278 Universal Newline Support Jack Jansen
SF 279 The enumerate() built-in function Raymond Hettinger
SF 282 A Logging System Vinay Sajip, Trent Mick
SF 285 Adding a bool type Guido van Rossum
SF 289 Generator Expressions Raymond Hettinger
SF 292 Simpler String Substitutions Barry Warsaw
SF 293 Codec Error Handling Callbacks Walter Dörwald
SF 301 Package Index and Metadata for Distutils Richard Jones
SF 302 New Import Hooks Just van Rossum, Paul Moore
SF 305 CSV File API Kevin Altis, Dave Cole, Andrew McNamara, Skip Montanaro, Cliff Wells
SF 307 Extensions to the pickle protocol Guido van Rossum, Tim Peters
SF 308 Conditional Expressions Guido van Rossum, Raymond Hettinger
SF 309 Partial Function Application Peter Harris
SF 311 Simplified Global Interpreter Lock Acquisition for Extensions Mark Hammond
SF 318 Decorators for Functions and Methods Kevin D. Smith, Jim J. Jewett, Skip Montanaro, Anthony Baxter
SF 322 Reverse Iteration Raymond Hettinger
SF 324 subprocess - New process module Peter Astrand
SF 327 Decimal Data Type Facundo Batista
SF 328 Imports: Multi-Line and Absolute/Relative Aahz
SF 331 Locale-Independent Float/String Conversions Christian R. Reis
SF 338 Executing modules as scripts Nick Coghlan
SF 341 Unifying try-except and try-finally Georg Brandl
SF 342 Coroutines via Enhanced Generators Guido van Rossum, Phillip J. Eby
SF 343 The “with” Statement Guido van Rossum, Nick Coghlan
SF 352 Required Superclass for Exceptions Brett Cannon, Guido van Rossum
SF 353 Using ssize_t as the index type Martin von Löwis
SF 357 Allowing Any Object to be Used for Slicing Travis Oliphant
SF 358 The “bytes” Object Neil Schemenauer, Guido van Rossum
SF 362 Function Signature Object Brett Cannon, Jiwon Seo, Yury Selivanov, Larry Hastings
SF 366 Main module explicit relative imports Nick Coghlan
SF 370 Per user site-packages directory Christian Heimes
SF 371 Addition of the multiprocessing package to the standard library Jesse Noller, Richard Oudkerk
SF 372 Adding an ordered dictionary to collections Armin Ronacher, Raymond Hettinger
SF 376 Database of Installed Python Distributions Tarek Ziadé
SF 378 Format Specifier for Thousands Separator Raymond Hettinger
SF 380 Syntax for Delegating to a Subgenerator Gregory Ewing
SF 383 Non-decodable Bytes in System Character Interfaces Martin von Löwis
SF 384 Defining a Stable ABI Martin von Löwis
SF 389 argparse - New Command Line Parsing Module Steven Bethard
SF 391 Dictionary-Based Configuration For Logging Vinay Sajip
SF 393 Flexible String Representation Martin von Löwis
SF 397 Python launcher for Windows Mark Hammond, Martin von Löwis
SF 405 Python Virtual Environments Carl Meyer
SF 409 Suppressing exception context Ethan Furman
SF 412 Key-Sharing Dictionary Mark Shannon
SF 414 Explicit Unicode Literal for Python 3.3 Armin Ronacher, Nick Coghlan
SF 415 Implement context suppression with exception attributes Benjamin Peterson
SF 417 Including mock in the Standard Library Michael Foord
SF 418 Add monotonic time, performance counter, and process time functions Cameron Simpson, Jim J. Jewett, Stephen J. Turnbull, Victor Stinner
SF 420 Implicit Namespace Packages Eric V. Smith
SF 421 Adding sys.implementation Eric Snow
SF 424 A method for exposing a length hint Alex Gaynor
SF 425 Compatibility Tags for Built Distributions Daniel Holth
SF 427 The Wheel Binary Package Format 1.0 Daniel Holth
SF 428 The pathlib module – object-oriented filesystem paths Antoine Pitrou
SF 435 Adding an Enum type to the Python standard library Barry Warsaw, Eli Bendersky, Ethan Furman
SF 436 The Argument Clinic DSL Larry Hastings
SF 440 Version Identification and Dependency Specification Nick Coghlan, Donald Stufft
SF 441 Improving Python ZIP Application Support Daniel Holth, Paul Moore
SF 442 Safe object finalization Antoine Pitrou
SF 443 Single-dispatch generic functions Łukasz Langa
SF 445 Add new APIs to customize Python memory allocators Victor Stinner
SF 446 Make newly created file descriptors non-inheritable Victor Stinner
SF 448 Additional Unpacking Generalizations Joshua Landau
SF 450 Adding A Statistics Module To The Standard Library Steven D’Aprano
SF 451 A ModuleSpec Type for the Import System Eric Snow
SF 453 Explicit bootstrapping of pip in Python installations Donald Stufft, Nick Coghlan
SF 454 Add a new tracemalloc module to trace Python memory allocations Victor Stinner
SF 456 Secure and interchangeable hash algorithm Christian Heimes
SF 461 Adding % formatting to bytes and bytearray Ethan Furman
SF 465 A dedicated infix operator for matrix multiplication Nathaniel J. Smith
SF 466 Network Security Enhancements for Python 2.7.x Nick Coghlan
SF 468 Preserving the order of **kwargs in a function. Eric Snow
SF 471 os.scandir() function – a better and faster directory iterator Ben Hoyt
SF 475 Retry system calls failing with EINTR Charles-François Natali, Victor Stinner
SF 476 Enabling certificate verification by default for stdlib http clients Alex Gaynor
SF 477 Backport ensurepip (PEP 453) to Python 2.7 Donald Stufft, Nick Coghlan
SF 479 Change StopIteration handling inside generators Chris Angelico, Guido van Rossum
SF 484 Type Hints Guido van Rossum, Jukka Lehtosalo, Łukasz Langa
SF 485 A Function for testing approximate equality Christopher Barker
SF 486 Make the Python Launcher aware of virtual environments Paul Moore
SF 487 Simpler customisation of class creation Martin Teichmann
SF 488 Elimination of PYO files Brett Cannon
SF 489 Multi-phase extension module initialization Petr Viktorin, Stefan Behnel, Nick Coghlan
SF 492 Coroutines with async and await syntax Yury Selivanov
SF 493 HTTPS verification migration tools for Python 2.7 Nick Coghlan, Robert Kuska, Marc-André Lemburg
SF 495 Local Time Disambiguation Alexander Belopolsky, Tim Peters
SF 498 Literal String Interpolation Eric V. Smith
SF 503 Simple Repository API Donald Stufft
SF 506 Adding A Secrets Module To The Standard Library Steven D’Aprano
SF 508 Dependency specification for Python Software Packages Robert Collins
SF 515 Underscores in Numeric Literals Georg Brandl, Serhiy Storchaka
SF 517 A build-system independent format for source trees Nathaniel J. Smith, Thomas Kluyver
SF 518 Specifying Minimum Build System Requirements for Python Projects Brett Cannon, Nathaniel J. Smith, Donald Stufft
SF 519 Adding a file system path protocol Brett Cannon, Koos Zevenhoven
SF 520 Preserving Class Attribute Definition Order Eric Snow
SF 523 Adding a frame evaluation API to CPython Brett Cannon, Dino Viehland
SF 524 Make os.urandom() blocking on Linux Victor Stinner
SF 525 Asynchronous Generators Yury Selivanov
SF 526 Syntax for Variable Annotations Ryan Gonzalez, Philip House, Ivan Levkivskyi, Lisa Roach, Guido van Rossum
SF 527 Removing Un(der)used file types/extensions on PyPI Donald Stufft
SF 528 Change Windows console encoding to UTF-8 Steve Dower
SF 529 Change Windows filesystem encoding to UTF-8 Steve Dower
SF 530 Asynchronous Comprehensions Yury Selivanov
SF 538 Coercing the legacy C locale to a UTF-8 based locale Nick Coghlan
SF 539 A New C-API for Thread-Local Storage in CPython Erik M. Bray, Masayuki Yamamoto
SF 540 Add a new UTF-8 Mode Victor Stinner
SF 552 Deterministic pycs Benjamin Peterson
SF 553 Built-in breakpoint() Barry Warsaw
SF 557 Data Classes Eric V. Smith
SF 561 Distributing and Packaging Type Information Ethan Smith
SF 562 Module __getattr__ and __dir__ Ivan Levkivskyi
SF 564 Add new time functions with nanosecond resolution Victor Stinner
SF 565 Show DeprecationWarning in __main__ Nick Coghlan
SF 566 Metadata for Python Software Packages 2.1 Dustin Ingram
SF 567 Context Variables Yury Selivanov
SF 570 Python Positional-Only Parameters Larry Hastings, Pablo Galindo, Mario Corchero, Eric N. Vander Weele
SF 572 Assignment Expressions Chris Angelico, Tim Peters, Guido van Rossum
SF 573 Module State Access from C Extension Methods Petr Viktorin, Nick Coghlan, Eric Snow, Marcel Plch
SF 574 Pickle protocol 5 with out-of-band data Antoine Pitrou
SF 584 Add Union Operators To dict Steven D’Aprano, Brandt Bucher
SF 585 Type Hinting Generics In Standard Collections Łukasz Langa
SF 587 Python Initialization Configuration Victor Stinner, Nick Coghlan
SF 592 Adding “Yank” Support to the Simple API Donald Stufft
SF 594 Removing dead batteries from the standard library Christian Heimes, Brett Cannon
SF 597 Add optional EncodingWarning Inada Naoki
SF 600 Future ‘manylinux’ Platform Tags for Portable Linux Built Distributions Nathaniel J. Smith, Thomas Kluyver
SF 610 Recording the Direct URL Origin of installed distributions Stéphane Bidoul, Chris Jerdonek
SF 614 Relaxing Grammar Restrictions On Decorators Brandt Bucher
SF 616 String methods to remove prefixes and suffixes Dennis Sweeney
SF 618 Add Optional Length-Checking To zip Brandt Bucher
SF 621 Storing project metadata in pyproject.toml Brett Cannon, Dustin Ingram, Paul Ganssle, Pradyun Gedam, Sébastien Eustace, Thomas Kluyver, Tzu-ping Chung
SF 623 Remove wstr from Unicode Inada Naoki
SF 624 Remove Py_UNICODE encoder APIs Inada Naoki
SF 626 Precise line numbers for debugging and other tools. Mark Shannon
SF 627 Recording installed projects Petr Viktorin
SF 628 Add math.tau Nick Coghlan
SF 629 Versioning PyPI’s Simple API Donald Stufft
SF 643 Metadata for Package Source Distributions Paul Moore
SF 644 Require OpenSSL 1.1.1 or newer Christian Heimes
SF 652 Maintaining the Stable ABI Petr Viktorin
SF 656 Platform Tag for Linux Distributions Using Musl Tzu-ping Chung
SF 657 Include Fine Grained Error Locations in Tracebacks Pablo Galindo, Batuhan Taskaya, Ammar Askar
SF 660 Editable installs for pyproject.toml based builds (wheel based) Daniel Holth, Stéphane Bidoul
SF 670 Convert macros to functions in the Python C API Erlend Egeberg Aasland, Victor Stinner
SF 682 Format Specifier for Signed Zero John Belmonte
SF 689 Unstable C API tier Petr Viktorin
SF 697 Limited C API for Extending Opaque Types Petr Viktorin
SF 706 Filter for tarfile.extractall Petr Viktorin
SF 715 Disabling bdist_egg distribution uploads on PyPI William Woodruff
SF 721 Using tarfile.data_filter for source distribution extraction Petr Viktorin
SF 3101 Advanced String Formatting Talin
SF 3102 Keyword-Only Arguments Talin
SF 3104 Access to Names in Outer Scopes Ka-Ping Yee
SF 3105 Make print a function Georg Brandl
SF 3106 Revamping dict.keys(), .values() and .items() Guido van Rossum
SF 3107 Function Annotations Collin Winter, Tony Lownds
SF 3108 Standard Library Reorganization Brett Cannon
SF 3109 Raising Exceptions in Python 3000 Collin Winter
SF 3110 Catching Exceptions in Python 3000 Collin Winter
SF 3111 Simple input built-in in Python 3000 Andre Roberge
SF 3112 Bytes literals in Python 3000 Jason Orendorff
SF 3113 Removal of Tuple Parameter Unpacking Brett Cannon
SF 3114 Renaming iterator.next() to iterator.__next__() Ka-Ping Yee
SF 3115 Metaclasses in Python 3000 Talin
SF 3116 New I/O Daniel Stutzbach, Guido van Rossum, Mike Verdone
SF 3118 Revising the buffer protocol Travis Oliphant, Carl Banks
SF 3119 Introducing Abstract Base Classes Guido van Rossum, Talin
SF 3120 Using UTF-8 as the default source encoding Martin von Löwis
SF 3123 Making PyObject_HEAD conform to standard C Martin von Löwis
SF 3127 Integer Literal Support and Syntax Patrick Maupin
SF 3129 Class Decorators Collin Winter
SF 3131 Supporting Non-ASCII Identifiers Martin von Löwis
SF 3132 Extended Iterable Unpacking Georg Brandl
SF 3134 Exception Chaining and Embedded Tracebacks Ka-Ping Yee
SF 3135 New Super Calvin Spealman, Tim Delaney, Lie Ryan
SF 3137 Immutable Bytes and Mutable Buffer Guido van Rossum
SF 3138 String representation in Python 3000 Atsuo Ishimoto
SF 3141 A Type Hierarchy for Numbers Jeffrey Yasskin
SF 3144 IP Address Manipulation Library for the Python Standard Library Peter Moody
SF 3147 PYC Repository Directories Barry Warsaw
SF 3148 futures - execute computations asynchronously Brian Quinlan
SF 3149 ABI version tagged .so files Barry Warsaw
SF 3151 Reworking the OS and IO exception hierarchy Antoine Pitrou
SF 3154 Pickle protocol version 4 Antoine Pitrou
SF 3155 Qualified name for classes and functions Antoine Pitrou
SF 3156 Asynchronous IO Support Rebooted: the “asyncio” Module Guido van Rossum

Historical Meta-PEPs and Informational PEPs

PEP Title Authors
IF 160 Python 1.6 Release Schedule Fred L. Drake, Jr.
IF 200 Python 2.0 Release Schedule Jeremy Hylton
IF 226 Python 2.1 Release Schedule Jeremy Hylton
IF 251 Python 2.2 Release Schedule Barry Warsaw, Guido van Rossum
IF 283 Python 2.3 Release Schedule Guido van Rossum
IF 320 Python 2.4 Release Schedule Barry Warsaw, Raymond Hettinger, Anthony Baxter
PF 347 Migrating the Python CVS to Subversion Martin von Löwis
IF 356 Python 2.5 Release Schedule Neal Norwitz, Guido van Rossum, Anthony Baxter
PF 360 Externally Maintained Packages Brett Cannon
IF 361 Python 2.6 and 3.0 Release Schedule Neal Norwitz, Barry Warsaw
IF 373 Python 2.7 Release Schedule Benjamin Peterson
PF 374 Choosing a distributed VCS for the Python project Brett Cannon, Stephen J. Turnbull, Alexandre Vassalotti, Barry Warsaw, Dirkjan Ochtman
IF 375 Python 3.1 Release Schedule Benjamin Peterson
PF 385 Migrating from Subversion to Mercurial Dirkjan Ochtman, Antoine Pitrou, Georg Brandl
IF 392 Python 3.2 Release Schedule Georg Brandl
IF 398 Python 3.3 Release Schedule Georg Brandl
IF 404 Python 2.8 Un-release Schedule Barry Warsaw
IF 429 Python 3.4 Release Schedule Larry Hastings
PS 438 Transitioning to release-file hosting on PyPI Holger Krekel, Carl Meyer
PF 449 Removal of the PyPI Mirror Auto Discovery and Naming Scheme Donald Stufft
PF 464 Removal of the PyPI Mirror Authenticity API Donald Stufft
PF 470 Removing External Hosting Support on PyPI Donald Stufft
IF 478 Python 3.5 Release Schedule Larry Hastings
IF 494 Python 3.6 Release Schedule Ned Deily
PF 512 Migrating from hg.python.org to GitHub Brett Cannon
IF 537 Python 3.7 Release Schedule Ned Deily
PF 541 Package Index Name Retention Łukasz Langa
PF 545 Python Documentation Translations Julien Palard, Inada Naoki, Victor Stinner
PF 3000 Python 3000 Guido van Rossum
PF 3002 Procedure for Backwards-Incompatible Changes Steven Bethard
PF 3003 Python Language Moratorium Brett Cannon, Jesse Noller, Guido van Rossum
PF 3099 Things that will Not Change in Python 3000 Georg Brandl
PF 3100 Miscellaneous Python 3.0 Plans Brett Cannon
PF 8001 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

Deferred PEPs (postponed pending further research or updates)

PEP Title Authors
SD 213 Attribute Access Handlers Paul Prescod
SD 219 Stackless Python Gordon McMillan
SD 222 Web Library Enhancements A.M. Kuchling
SD 233 Python Online Help Paul Prescod
SD 267 Optimized Access to Module Namespaces Jeremy Hylton
SD 269 Pgen Module for Python Jonathan Riehl
SD 280 Optimizing access to globals Guido van Rossum
SD 286 Enhanced Argument Tuples Martin von Löwis
SD 312 Simple Implicit Lambda Roman Suzi, Alex Martelli
SD 316 Programming by Contract for Python Terence Way
SD 323 Copyable Iterators Alex Martelli
SD 337 Logging Usage in the Standard Library Michael P. Dubner
SD 368 Standard image protocol and class Lino Mastrodomenico
SD 400 Deprecate codecs.StreamReader and codecs.StreamWriter Victor Stinner
SD 403 General purpose decorator clause (aka “@in” clause) Nick Coghlan
PD 407 New release cycle and introducing long-term support versions Antoine Pitrou, Georg Brandl, Barry Warsaw
SD 419 Protecting cleanup statements from interruptions Paul Colomiets
ID 423 Naming conventions and recipes related to packaging Benoit Bryon
ID 444 Python Web3 Interface Chris McDonough, Armin Ronacher
SD 447 Add __getdescriptor__ method to metaclass Ronald Oussoren
SD 491 The Wheel Binary Package Format 1.9 Daniel Holth
SD 499 python -m foo should also bind ‘foo’ in sys.modules Cameron Simpson, Chris Angelico, Joseph Jevnik
SD 501 General purpose string interpolation Nick Coghlan
SD 505 None-aware operators Mark E. Haase, Steve Dower
SD 532 A circuit breaking protocol and binary operators Nick Coghlan, Mark E. Haase
SD 533 Deterministic cleanup for iterators Nathaniel J. Smith
SD 534 Improved Errors for Missing Standard Library Modules Tomáš Orsava, Petr Viktorin, Nick Coghlan
SD 535 Rich comparison chaining Nick Coghlan
SD 536 Final Grammar for Literal String Interpolation Philipp Angerer
SD 547 Running extension modules using the -m option Marcel Plch, Petr Viktorin
SD 556 Threaded garbage collection Antoine Pitrou
SD 558 Defined semantics for locals() Nick Coghlan
SD 568 Generator-sensitivity for Context Variables Nathaniel J. Smith
SD 674 Disallow using macros as l-values Victor Stinner
SD 3124 Overloading, Generic Functions, Interfaces, and Adaptation Phillip J. Eby
SD 3143 Standard daemon process library Ben Finney
SD 3150 Statement local namespaces (aka “given” clause) Nick Coghlan

Abandoned, Withdrawn, and Rejected PEPs

PEP Title Authors
PW 3 Guidelines for Handling Bug Reports Jeremy Hylton
PW 9 Sample Plaintext PEP Template Barry Warsaw
PW 42 Feature Requests Jeremy Hylton
IS 102 Doing Python Micro Releases Anthony Baxter, Barry Warsaw, Guido van Rossum
IW 103 Collecting information about git Oleg Broytman
SR 204 Range Literals Thomas Wouters
IW 206 Python Advanced Library A.M. Kuchling
SW 209 Multi-dimensional Arrays Paul Barrett, Travis Oliphant
SR 210 Decoupling the Interpreter Loop David Ascher
SR 211 Adding A New Outer Product Operator Greg Wilson
SR 212 Loop Counter Iteration Peter Schneider-Kamp
SS 215 String Interpolation Ka-Ping Yee
IR 216 Docstring Format Moshe Zadka
IR 220 Coroutines, Generators, Continuations Gordon McMillan
SR 224 Attribute Docstrings Marc-André Lemburg
SR 225 Elementwise/Objectwise Operators Huaiyu Zhu, Gregory Lielens
SW 228 Reworking Python’s Numeric Model Moshe Zadka, Guido van Rossum
SR 231 __findattr__() Barry Warsaw
SR 239 Adding a Rational Type to Python Christopher A. Craig, Moshe Zadka
SR 240 Adding a Rational Literal to Python Christopher A. Craig, Moshe Zadka
SS 241 Metadata for Python Software Packages A.M. Kuchling
SR 242 Numeric Kinds Paul F. Dubois
SW 243 Module Repository Upload Mechanism Sean Reifschneider
SR 244 The directive statement Martin von Löwis
SR 245 Python Interface Syntax Michel Pelletier
SR 246 Object Adaptation Alex Martelli, Clark C. Evans
SR 254 Making Classes Look More Like Types Guido van Rossum
SR 256 Docstring Processing System Framework David Goodger
SR 258 Docutils Design Specification David Goodger
SR 259 Omit printing newline after newline Guido van Rossum
SR 262 A Database of Installed Python Packages A.M. Kuchling
SR 265 Sorting Dictionaries by Value Grant Griffin
SW 266 Optimizing Global Variable/Attribute Access Skip Montanaro
SR 268 Extended HTTP functionality and WebDAV Greg Stein
SR 270 uniq method for list objects Jason Petrone
SR 271 Prefixing sys.path by command line option Frédéric B. Giacometti
SR 275 Switching on Multiple Values Marc-André Lemburg
SR 276 Simple Iterator for ints Jim Althoff
SR 281 Loop Counter Iteration with range and xrange Magnus Lie Hetland
SR 284 Integer for-loops David Eppstein, Gregory Ewing
SW 288 Generators Attributes and Exceptions Raymond Hettinger
SR 294 Type Names in the types Module Oren Tirosh
SR 295 Interpretation of multiline string constants Stepan Koltsov
SW 296 Adding a bytes Object Type Scott Gilbert
SR 297 Support for System Upgrades Marc-André Lemburg
SW 298 The Locked Buffer Interface Thomas Heller
SR 299 Special __main__() function in modules Jeff Epler
SR 303 Extend divmod() for Multiple Divisors Thomas Bellman
SW 304 Controlling Generation of Bytecode Files Skip Montanaro
IW 306 How to Change Python’s Grammar Michael Hudson, Jack Diederich, Nick Coghlan, Benjamin Peterson
SR 310 Reliable Acquisition/Release Pairs Michael Hudson, Paul Moore
SR 313 Adding Roman Numeral Literals to Python Mike Meyer
SS 314 Metadata for Python Software Packages 1.1 A.M. Kuchling, Richard Jones
SR 315 Enhanced While Loop Raymond Hettinger, W Isaac Carroll
SR 317 Eliminate Implicit Exception Instantiation Steven Taschuk
SR 319 Python Synchronize/Asynchronize Block Michel Pelletier
SW 321 Date/Time Parsing and Formatting A.M. Kuchling
SR 325 Resource-Release Support for Generators Samuele Pedroni
SR 326 A Case for Top and Bottom Values Josiah Carlson, Terry Reedy
SR 329 Treating Builtins as Constants in the Standard Library Raymond Hettinger
SR 330 Python Bytecode Verification Michel Pelletier
SR 332 Byte vectors and String/Unicode Unification Skip Montanaro
SW 334 Simple Coroutines via SuspendIteration Clark C. Evans
SR 335 Overloadable Boolean Operators Gregory Ewing
SR 336 Make None Callable Andrew McClelland
IW 339 Design of the CPython Compiler Brett Cannon
SR 340 Anonymous Block Statements Guido van Rossum
SS 344 Exception Chaining and Embedded Tracebacks Ka-Ping Yee
SS 345 Metadata for Python Software Packages 1.2 Richard Jones
SW 346 User Defined (“with”) Statements Nick Coghlan
SR 348 Exception Reorganization for Python 3.0 Brett Cannon
SR 349 Allow str() to return unicode strings Neil Schemenauer
IR 350 Codetags Micah Elliott
SR 351 The freeze protocol Barry Warsaw
SS 354 Enumerations in Python Ben Finney
SR 355 Path - Object oriented filesystem paths Björn Lindqvist
SW 359 The “make” Statement Steven Bethard
SR 363 Syntax For Dynamic Attribute Access Ben North
SW 364 Transitioning to the Py3K Standard Library Barry Warsaw
SR 365 Adding the pkg_resources module Phillip J. Eby
SS 367 New Super Calvin Spealman, Tim Delaney
SW 369 Post import hooks Christian Heimes
SR 377 Allow __enter__() methods to skip the statement body Nick Coghlan
SW 379 Adding an Assignment Expression Jervis Whitley
SW 381 Mirroring infrastructure for PyPI Tarek Ziadé, Martin von Löwis
SR 382 Namespace Packages Martin von Löwis
SS 386 Changing the version comparison module in Distutils Tarek Ziadé
SR 390 Static metadata for Distutils Tarek Ziadé
SW 395 Qualified Names for Modules Nick Coghlan
IR 396 Module Version Numbers Barry Warsaw
PR 401 BDFL Retirement Barry Warsaw, Brett Cannon
SR 402 Simplified Package Layout and Partitioning Phillip J. Eby
SW 406 Improved Encapsulation of Import State Nick Coghlan, Greg Slodkowicz
SR 408 Standard library __preview__ package Nick Coghlan, Eli Bendersky
SR 410 Use decimal.Decimal type for timestamps Victor Stinner
IS 411 Provisional packages in the Python standard library Nick Coghlan, Eli Bendersky
PW 413 Faster evolution of the Python Standard Library Nick Coghlan
SR 416 Add a frozendict builtin type Victor Stinner
SW 422 Simpler customisation of class creation Nick Coghlan, Daniel Urban
IW 426 Metadata for Python Software Packages 2.0 Nick Coghlan, Daniel Holth, Donald Stufft
SS 431 Time zone support improvements Lennart Regebro
SW 432 Restructuring the CPython startup sequence Nick Coghlan, Victor Stinner, Eric Snow
SS 433 Easier suppression of file descriptor inheritance Victor Stinner
SR 437 A DSL for specifying signatures, annotations and argument converters Stefan Krah
SR 439 Inclusion of implicit pip bootstrap in Python installation Richard Jones
SR 455 Adding a key-transforming dictionary to collections Antoine Pitrou
SW 459 Standard Metadata Extensions for Python Software Packages Nick Coghlan
SW 460 Add binary interpolation and formatting Antoine Pitrou
PW 462 Core development workflow automation for CPython Nick Coghlan
SR 463 Exception-catching expressions Chris Angelico
SW 469 Migration of dict iteration code to Python 3 Nick Coghlan
SR 472 Support for indexing with keyword arguments Stefano Borini, Joseph Martinot-Lagarde
SR 473 Adding structured data to built-in exceptions Sebastian Kreft
PW 474 Creating forge.python.org Nick Coghlan
PW 481 Migrate CPython to Git, Github, and Phabricator Donald Stufft
SR 490 Chain exceptions at C level Victor Stinner
IR 496 Environment Markers James Polley
PR 497 A standard mechanism for backward compatibility Ed Schofield
SR 500 A protocol for delegating datetime methods to their tzinfo implementations Alexander Belopolsky, Tim Peters
IR 502 String Interpolation - Extended Discussion Mike G. Miller
SW 504 Using the System RNG by default Nick Coghlan
PR 507 Migrate CPython to Git and GitLab Barry Warsaw
SS 509 Add a private version to dict Victor Stinner
SR 510 Specialize functions with guards Victor Stinner
SR 511 API for code transformers Victor Stinner
IS 513 A Platform Tag for Portable Linux Built Distributions Robert T. McGibbon, Nathaniel J. Smith
SR 516 Build system abstraction for pip/conda etc Robert Collins, Nathaniel J. Smith
SW 521 Managing global context via ‘with’ blocks in generators and coroutines Nathaniel J. Smith
SR 522 Allow BlockingIOError in security sensitive APIs Nick Coghlan, Nathaniel J. Smith
SW 531 Existence checking operators Nick Coghlan
SR 542 Dot Notation Assignment In Function Header Markus Meskanen
SW 543 A Unified TLS API for Python Cory Benfield, Christian Heimes
SR 546 Backport ssl.MemoryBIO and ssl.SSLObject to Python 2.7 Victor Stinner, Cory Benfield
SR 548 More Flexible Loop Control R David Murray
SR 549 Instance Descriptors Larry Hastings
SW 550 Execution Context Yury Selivanov, Elvis Pranskevichus
IW 551 Security transparency in the Python runtime Steve Dower
SW 555 Context-local variables (contextvars) Koos Zevenhoven
SR 559 Built-in noop() Barry Warsaw
IS 571 The manylinux2010 Platform Tag Mark Williams, Geoffrey Thomas, Thomas Kluyver
SW 575 Unifying function/method classes Jeroen Demeyer
SW 576 Rationalize Built-in function classes Mark Shannon
SW 577 Augmented Assignment Expressions Nick Coghlan
SR 580 The C call protocol Jeroen Demeyer
SR 582 Python local packages directory Kushal Das, Steve Dower, Donald Stufft, Nick Coghlan
IW 583 A Concurrency Memory Model for Python Jeffrey Yasskin
IW 595 Improving bugs.python.org Ezio Melotti, Berker Peksag
IW 598 Introducing incremental feature releases Nick Coghlan
IS 599 The manylinux2014 Platform Tag Dustin Ingram
SR 601 Forbid return/break/continue breaking out of finally Damien George, Batuhan Taskaya
IR 605 A rolling feature release stream for CPython Steve Dower, Nick Coghlan
SR 606 Python Compatibility Version Victor Stinner
SR 608 Coordinated Python release Miro Hrončok, Victor Stinner
SW 611 The one million limit Mark Shannon
SW 620 Hide implementation details from the C API Victor Stinner
SS 622 Structural Pattern Matching Brandt Bucher, Daniel F Moisset, Tobias Kohn, Ivan Levkivskyi, Guido van Rossum, Talin
SS 631 Dependency specification in pyproject.toml based on PEP 508 Ofek Lev
SR 633 Dependency specification in pyproject.toml using an exploded TOML table Laurie Opperman, Arun Babu Neelicattu
SR 637 Support for indexing with keyword arguments Stefano Borini
SR 640 Unused variable syntax Thomas Wouters
SR 641 Using an underscore in the version portion of Python 3.10 compatibility tags Brett Cannon, Steve Dower, Barry Warsaw
SR 642 Explicit Pattern Syntax for Structural Pattern Matching Nick Coghlan
SW 645 Allow writing optional types as x? Maggie Moss
SR 648 Extensible customizations of the interpreter at startup Mario Corchero
SW 650 Specifying Installer Requirements for Python Projects Vikram Jayanthi, Dustin Ingram, Brett Cannon
SR 651 Robust Stack Overflow Handling Mark Shannon
SR 662 Editable installs via virtual wheels Bernát Gábor
IR 663 Standardizing Enum str(), repr(), and format() behaviors Ethan Furman
SR 665 A file format to list Python dependencies for reproducibility of an application Brett Cannon, Pradyun Gedam, Tzu-ping Chung
SR 666 Reject Foolish Indentation Laura Creighton
SR 677 Callable Type Syntax Steven Troxler, Pradeep Kumar Srinivasan
SR 690 Lazy Imports Germán Méndez Bravo, Carl Meyer
SW 704 Require virtual environments by default for package installers Pradyun Gedam
SR 707 A simplified signature for __exit__ and __aexit__ Irit Katriel
SR 713 Callable Modules Amethyst Reese
SR 754 IEEE 754 Floating Point Special Values Gregory R. Warnes
PW 3001 Procedure for reviewing and improving standard library modules Georg Brandl
SR 3103 A Switch/Case Statement Guido van Rossum
SR 3117 Postfix type declarations Georg Brandl
SR 3122 Delineation of the main module Brett Cannon
SR 3125 Remove Backslash Continuation Jim J. Jewett
SR 3126 Remove Implicit String Concatenation Jim J. Jewett, Raymond Hettinger
SR 3128 BList: A Faster List-like Type Daniel Stutzbach
SR 3130 Access to Current Module/Class/Function Jim J. Jewett
SR 3133 Introducing Roles Collin Winter
SR 3136 Labeled break and continue Matt Chisholm
SR 3139 Cleaning out sys and the “interpreter” module Benjamin Peterson
SR 3140 str(container) should call str(item), not repr(item) Oleg Broytman, Jim J. Jewett
SR 3142 Add a “while” clause to generator expressions Gerald Britton
SW 3145 Asynchronous I/O For subprocess.Popen Eric Pruitt, Charles R. McCreary, Josiah Carlson
SW 3146 Merging Unladen Swallow into CPython Collin Winter, Jeffrey Yasskin, Reid Kleckner
SR 3152 Cofunctions Gregory Ewing
SS 3153 Asynchronous IO support Laurens Van Houtven
IR 8010 The Technical Leader Governance Model Barry Warsaw
IR 8011 Python Governance Model Lead by Trio of Pythonistas Mariatta, Barry Warsaw
IR 8012 The Community Governance Model Łukasz Langa
IR 8013 The External Council Governance Model Steve Dower
IR 8014 The Commons Governance Model Jack Jansen
IR 8015 Organization of the Python community Victor Stinner

Numerical Index

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

Reserved PEP Numbers

PEP Title Authors
801 RESERVED Warsaw

PEP Types Key

  • IInformational: Non-normative PEP containing background, guidelines or other information relevant to the Python ecosystem
  • PProcess: Normative PEP describing or proposing a change to a Python community process, workflow or governance
  • SStandards Track: Normative PEP with a new feature for Python, implementation change for CPython or interoperability standard for the ecosystem

More info in PEP 1.

PEP Status Key

  • AAccepted: Normative proposal accepted for implementation
  • AActive: Currently valid informational guidance, or an in-use process
  • DDeferred: Inactive draft that may be taken up again at a later time
  • <No letter>Draft: Proposal under active discussion and revision
  • FFinal: Accepted and implementation complete, or no longer active
  • PProvisional: Provisionally accepted but additional feedback needed
  • RRejected: Formally declined and will not be accepted
  • SSuperseded: Replaced by another succeeding PEP
  • WWithdrawn: Removed from consideration by sponsor or authors

More info in PEP 1.

Authors/Owners

Name Email Address
A.M. Kuchling amk at amk.ca
Aahz aahz at pythoncraft.com
Adam Turner python at quite.org.uk
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
Alice Purcell alicederyn 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 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
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
Dennis Sweeney sweeney.dennis650 at gmail.com
Dino Viehland dinov at microsoft.com
Dirkjan Ochtman dirkjan at ochtman.nl
Donald Stufft donald at stufft.io
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
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.aasland at protonmail.com
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
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
Inada Naoki songofacandy at gmail.com
Irit Katriel iritkatriel at gmail.com
Ivan Levkivskyi levkivskyi at gmail.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 J. Jewett jimjjewett at gmail.com
Jiwon Seo seojiwon at gmail.com
Joe Carey joe at python.org
John Belmonte john at neggie.net
Jonathan Riehl jriehl at spaceship.com
Joseph Jevnik joejev at gmail.com
Joseph Martinot-Lagarde
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
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
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
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
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
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 Coghlan ncoghlan at gmail.com
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 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
Ryan Gonzalez rymg19 at gmail.com
Sam Gross colesbury at gmail.com
Samuele Pedroni pedronis at python.org
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
Sébastien Eustace sebastien at eustace.io
Shannon Zhu szhu at fb.com
Shantanu Jain hauntsaninja 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
Stephen J. Turnbull stephen at xemacs.org
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
Till Varoquaux till at fb.com
Tim Delaney timothy.c.delaney at gmail.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
William Woodruff william at yossarian.net
Yury Selivanov yury at edgedb.com
Zac Hatfield-Dodds zac at zhd.dev
Zachary Ware zachary.ware at gmail.com
Łukasz Langa lukasz at python.org