Python Enhancement Proposals

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[1].  The Mercurial history[2] of
    the PEP texts represent their historical record.

Index by Category

     num  title                                                   owner
     —  —–                                                   —–

Meta-PEPs (PEPs about PEPs or Processes)

P 1 PEP Purpose and Guidelines Warsaw, Hylton, Goodger, Coghlan P 4 Deprecation of Standard Modules Cannon, von Löwis P 5 Guidelines for Language Evolution Prescod P 6 Bug Fix Releases Aahz, Baxter P 7 Style Guide for C Code GvR P 8 Style Guide for Python Code GvR, Warsaw, Coghlan P 10 Voting Guidelines Warsaw P 11 Removing support for little used platforms von Löwis, Cannon P 12 Sample reStructuredText PEP Template Goodger, Warsaw

Other Informational PEPs

I 20 The Zen of Python Peters I 101 Doing Python Releases 101 Warsaw, GvR IF 247 API for Cryptographic Hash Functions Kuchling IF 248 Python Database API Specification v1.0 Lemburg IF 249 Python Database API Specification v2.0 Lemburg I 257 Docstring Conventions Goodger, GvR IF 272 API for Block Encryption Algorithms v1.0 Kuchling I 287 reStructuredText Docstring Format Goodger I 290 Code Migration and Modernization Hettinger IF 291 Backward Compatibility for the Python 2 Standard … Norwitz IF 333 Python Web Server Gateway Interface v1.0 Eby I 373 Python 2.7 Release Schedule Peterson I 392 Python 3.2 Release Schedule Brandl I 394 The “python” Command on Unix-Like Systems Staley, Coghlan, Warsaw I 398 Python 3.3 Release Schedule Brandl IF 399 Pure Python/C Accelerator Module Compatibility … Cannon IF 404 Python 2.8 Un-release Schedule Warsaw IA 411 Provisional packages in the Python standard library Coghlan, Bendersky I 429 Python 3.4 Release Schedule Hastings IF 430 Migrating to Python 3 as the default online … Coghlan I 434 IDLE Enhancement Exception for All Branches Rovito, Reedy IA 440 Version Identification and Dependency Specification Coghlan, Stufft I 478 Python 3.5 Release Schedule Hastings I 494 Python 3.6 Release Schedule Deily IA 503 Simple Repository API Stufft I 508 Dependency specification for Python Software Packages Collins I 513 A Platform Tag for Portable Linux Built Distributions McGibbon, Smith I 514 Python registration in the Windows registry Dower IA 518 Specifying Minimum Build System Requirements for … Cannon, Smith, Stufft I 537 Python 3.7 Release Schedule Deily IF 3333 Python Web Server Gateway Interface v1.0.1 Eby

Accepted PEPs (accepted; may not be implemented yet)

SA 345 Metadata for Python Software Packages 1.2 Jones SA 376 Database of Installed Python Distributions Ziadé SA 425 Compatibility Tags for Built Distributions Holth SA 427 The Wheel Binary Package Format 1.0 Holth SA 484 Type Hints GvR, Lehtosalo, Langa SA 495 Local Time Disambiguation Belopolsky, Peters SA 498 Literal String Interpolation Smith SA 506 Adding A Secrets Module To The Standard Library D’Aprano SA 515 Underscores in Numeric Literals Brandl, Storchaka SA 3121 Extension Module Initialization and Finalization von Löwis

Open PEPs (under consideration)

S 381 Mirroring infrastructure for PyPI Ziadé, v. Löwis P 387 Backwards Compatibility Policy Peterson I 426 Metadata for Python Software Packages 2.0 Coghlan, Holth, Stufft S 432 Restructuring the CPython startup sequence Coghlan S 436 The Argument Clinic DSL Hastings S 447 Add __getdescriptor__ method to metaclass Oussoren I 452 API for Cryptographic Hash Functions v2.0 Kuchling, Heimes I 457 Syntax For Positional-Only Parameters Hastings S 458 Surviving a Compromise of PyPI Kuppusamy, Diaz, Stufft, Cappos S 467 Minor API improvements for binary sequences Coghlan S 472 Support for indexing with keyword arguments Borini, Martinot-Lagarde S 473 Adding structured data to built-in exceptions Kreft S 480 Surviving a Compromise of PyPI: The Maximum … Kuppusamy, Diaz, Stufft, Cappos I 482 Literature Overview for Type Hints Langa I 483 The Theory of Type Hints GvR, Levkivskyi S 490 Chain exceptions at C level Stinner S 491 The Wheel Binary Package Format 1.9 Holth P 497 A standard mechanism for backward compatibility Schofield S 499 python -m foo should bind … Simpson I 502 String Interpolation - Extended Discussion Miller S 505 None-aware operators Haase S 510 Specialize functions with guards Stinner S 511 API for code transformers Stinner S 516 Build system abstraction for pip/conda etc Collins, Smith S 517 A build-system independent format for source trees Smith, Kluyver S 532 A circuit breaking protocol and binary operators Coghlan, Haase S 533 Deterministic cleanup for iterators Smith S 534 Distributing a Subset of the Standard Library Orsava, Viktorin, Coghlan S 535 Rich comparison chaining Coghlan S 536 Final Grammar for Literal String Interpolation Angerer S 538 Coercing the legacy C locale to a UTF-8 based locale Coghlan I 539 A New C-API for Thread-Local Storage in CPython Bray, Yamamoto S 540 Add a new UTF-8 mode Stinner P 541 Package Index Name Retention Langa S 542 Dot Notation Assignment In Function Header Meskanen S 543 A Unified TLS API for Python Benfield, Heimes

Finished PEPs (done, implemented in code repository)

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

Historical Meta-PEPs and Informational PEPs

PF 2 Procedure for Adding New Modules Faassen IF 160 Python 1.6 Release Schedule Drake IF 200 Python 2.0 Release Schedule Hylton IF 226 Python 2.1 Release Schedule Hylton IF 251 Python 2.2 Release Schedule Warsaw, GvR IF 283 Python 2.3 Release Schedule GvR IF 320 Python 2.4 Release Schedule Warsaw, Hettinger, Baxter PF 347 Migrating the Python CVS to Subversion von Löwis IF 356 Python 2.5 Release Schedule Norwitz, GvR, Baxter PF 360 Externally Maintained Packages Cannon IF 361 Python 2.6 and 3.0 Release Schedule Norwitz, Warsaw PF 374 Choosing a distributed VCS for the Python project Cannon, Turnbull, Vassalotti, Warsaw, Ochtman IF 375 Python 3.1 Release Schedule Peterson PF 385 Migrating from Subversion to Mercurial Ochtman, Pitrou, Brandl PS 438 Transitioning to release-file hosting on PyPI Krekel, Meyer PA 449 Removal of the PyPI Mirror Auto Discovery and … Stufft PA 464 Removal of the PyPI Mirror Authenticity API Stufft PA 470 Removing External Hosting Support on PyPI Stufft PF 512 Migrating from hg.python.org to GitHub Cannon PA 527 Removing Un(der)used file types/extensions on PyPI Stufft PF 3000 Python 3000 GvR PF 3002 Procedure for Backwards-Incompatible Changes Bethard PF 3003 Python Language Moratorium Cannon, Noller, GvR PF 3099 Things that will Not Change in Python 3000 Brandl PF 3100 Miscellaneous Python 3.0 Plans Cannon

Deferred PEPs

SD 211 Adding A New Outer Product Operator Wilson SD 212 Loop Counter Iteration Schneider-Kamp SD 213 Attribute Access Handlers Prescod SD 219 Stackless Python McMillan SD 222 Web Library Enhancements Kuchling SD 225 Elementwise/Objectwise Operators Zhu, Lielens SD 233 Python Online Help Prescod SD 262 A Database of Installed Python Packages Kuchling SD 267 Optimized Access to Module Namespaces Hylton SD 269 Pgen Module for Python Riehl SD 280 Optimizing access to globals GvR SD 286 Enhanced Argument Tuples von Löwis SD 312 Simple Implicit Lambda Suzi, Martelli SD 316 Programming by Contract for Python Way SD 323 Copyable Iterators Martelli SD 337 Logging Usage in the Standard Library Dubner SD 349 Allow str() to return unicode strings Schemenauer SD 368 Standard image protocol and class Mastrodomenico ID 396 Module Version Numbers Warsaw SD 400 Deprecate codecs.StreamReader and codecs.StreamWriter Stinner SD 403 General purpose decorator clause (aka “@in” clause) Coghlan PD 407 New release cycle and introducing long-term support … Pitrou, Brandl, Warsaw SD 419 Protecting cleanup statements from interruptions Colomiets ID 423 Naming conventions and recipes related to packaging Bryon ID 444 Python Web3 Interface McDonough, Ronacher SD 459 Standard Metadata Extensions for Python Software … Coghlan SD 501 General purpose string interpolation Coghlan SD 521 Managing global context via ‘with’ blocks in … Smith SD 3124 Overloading, Generic Functions, Interfaces, and … Eby SD 3143 Standard daemon process library Finney SD 3150 Statement local namespaces (aka “given” clause) Coghlan

Abandoned, Withdrawn, and Rejected PEPs

PW 3 Guidelines for Handling Bug Reports Hylton PW 9 Sample Plaintext PEP Template Warsaw PR 42 Feature Requests Hylton IS 102 Doing Python Micro Releases Baxter, Warsaw, GvR IW 103 Collecting information about git Broytman SR 204 Range Literals Wouters IW 206 Python Advanced Library Kuchling SW 209 Multi-dimensional Arrays Barrett, Oliphant SR 210 Decoupling the Interpreter Loop Ascher SS 215 String Interpolation Yee IR 216 Docstring Format Zadka IR 220 Coroutines, Generators, Continuations McMillan SR 224 Attribute Docstrings Lemburg SW 228 Reworking Python’s Numeric Model Zadka, GvR SR 231 __findattr__() Warsaw SR 239 Adding a Rational Type to Python Craig, Zadka SR 240 Adding a Rational Literal to Python Craig, Zadka SR 242 Numeric Kinds Dubois SW 243 Module Repository Upload Mechanism Reifschneider SR 244 The directive statement von Löwis SR 245 Python Interface Syntax Pelletier SR 246 Object Adaptation Martelli, Evans SR 254 Making Classes Look More Like Types GvR SR 256 Docstring Processing System Framework Goodger SR 258 Docutils Design Specification Goodger SR 259 Omit printing newline after newline GvR SR 265 Sorting Dictionaries by Value Griffin SW 266 Optimizing Global Variable/Attribute Access Montanaro SR 268 Extended HTTP functionality and WebDAV Stein SR 270 uniq method for list objects Petrone SR 271 Prefixing sys.path by command line option Giacometti SR 275 Switching on Multiple Values Lemburg SR 276 Simple Iterator for ints Althoff SR 281 Loop Counter Iteration with range and xrange Hetland SR 284 Integer for-loops Eppstein, Ewing SW 288 Generators Attributes and Exceptions Hettinger SR 294 Type Names in the types Module Tirosh SR 295 Interpretation of multiline string constants Koltsov SW 296 Adding a bytes Object Type Gilbert SR 297 Support for System Upgrades Lemburg SW 298 The Locked Buffer Interface Heller SR 299 Special __main__() function in modules Epler SR 303 Extend divmod() for Multiple Divisors Bellman SW 304 Controlling Generation of Bytecode Files Montanaro IW 306 How to Change Python’s Grammar Hudson, Diederich, Coghlan, Peterson SR 310 Reliable Acquisition/Release Pairs Hudson, Moore SR 313 Adding Roman Numeral Literals to Python Meyer SR 315 Enhanced While Loop Hettinger, Carroll SR 317 Eliminate Implicit Exception Instantiation Taschuk SR 319 Python Synchronize/Asynchronize Block Pelletier SW 321 Date/Time Parsing and Formatting Kuchling SR 325 Resource-Release Support for Generators Pedroni SR 326 A Case for Top and Bottom Values Carlson, Reedy SR 329 Treating Builtins as Constants in the Standard Library Hettinger SR 330 Python Bytecode Verification Pelletier SR 332 Byte vectors and String/Unicode Unification Montanaro SW 334 Simple Coroutines via SuspendIteration Evans SR 335 Overloadable Boolean Operators Ewing SR 336 Make None Callable McClelland IW 339 Design of the CPython Compiler Cannon SR 340 Anonymous Block Statements GvR SS 344 Exception Chaining and Embedded Tracebacks Yee SW 346 User Defined (“with”) Statements Coghlan SR 348 Exception Reorganization for Python 3.0 Cannon IR 350 Codetags Elliott SR 351 The freeze protocol Warsaw SS 354 Enumerations in Python Finney SR 355 Path - Object oriented filesystem paths Lindqvist SW 359 The “make” Statement Bethard SR 363 Syntax For Dynamic Attribute Access North SW 364 Transitioning to the Py3K Standard Library Warsaw SR 365 Adding the pkg_resources module Eby SS 367 New Super Spealman, Delaney SW 369 Post import hooks Heimes SR 377 Allow __enter__() methods to skip the statement body Coghlan SW 379 Adding an Assignment Expression Whitley SR 382 Namespace Packages v. Löwis SS 386 Changing the version comparison module in Distutils Ziadé SR 390 Static metadata for Distutils Ziadé SW 395 Qualified Names for Modules Coghlan PR 401 BDFL Retirement Warsaw, Cannon SR 402 Simplified Package Layout and Partitioning Eby SW 406 Improved Encapsulation of Import State Coghlan, Slodkowicz SR 408 Standard library __preview__ package Coghlan, Bendersky SR 410 Use decimal.Decimal type for timestamps Stinner PW 413 Faster evolution of the Python Standard Library Coghlan SR 416 Add a frozendict builtin type Stinner SW 422 Simpler customisation of class creation Coghlan, Urban SW 431 Time zone support improvements Regebro SS 433 Easier suppression of file descriptor inheritance Stinner SR 437 A DSL for specifying signatures, annotations and … Krah SR 439 Inclusion of implicit pip bootstrap in Python … Jones SR 455 Adding a key-transforming dictionary to collections Pitrou SW 460 Add binary interpolation and formatting Pitrou PW 462 Core development workflow automation for CPython Coghlan SR 463 Exception-catching expressions Angelico SW 469 Migration of dict iteration code to Python 3 Coghlan PW 474 Creating forge.python.org Coghlan PW 481 Migrate CPython to Git, Github, and Phabricator Stufft IS 496 Environment Markers Polley SR 500 A protocol for delegating datetime methods to their … Belopolsky, Peters SW 504 Using the System RNG by default Coghlan PR 507 Migrate CPython to Git and GitLab Warsaw SR 522 Allow BlockingIOError in security sensitive APIs Coghlan, Smith SW 531 Existence checking operators Coghlan SR 666 Reject Foolish Indentation Creighton SR 754 IEEE 754 Floating Point Special Values Warnes PW 3001 Procedure for reviewing and improving standard … Brandl SR 3103 A Switch/Case Statement GvR SR 3117 Postfix type declarations Brandl SR 3122 Delineation of the main module Cannon SR 3125 Remove Backslash Continuation Jewett SR 3126 Remove Implicit String Concatenation Jewett, Hettinger SR 3128 BList: A Faster List-like Type Stutzbach SR 3130 Access to Current Module/Class/Function Jewett SR 3133 Introducing Roles Winter SR 3136 Labeled break and continue Chisholm SR 3139 Cleaning out sys and the “interpreter” module Peterson SR 3140 str(container) should call str(item), not repr(item) Broytman, Jewett SR 3142 Add a “while” clause to generator expressions Britton SW 3145 Asynchronous I/O For subprocess.Popen Pruitt, McCreary, Carlson SW 3146 Merging Unladen Swallow into CPython Winter, Yasskin, Kleckner SR 3152 Cofunctions Ewing SS 3153 Asynchronous IO support Houtven

Numerical Index

     num  title                                                   owner
     —  —–                                                   —–
  P     1  PEP Purpose and Guidelines                              Warsaw, Hylton, Goodger, Coghlan
  PF    2  Procedure for Adding New Modules                        Faassen
  PW    3  Guidelines for Handling Bug Reports                     Hylton
  P     4  Deprecation of Standard Modules                         Cannon, von Löwis
  P     5  Guidelines for Language Evolution                       Prescod
  P     6  Bug Fix Releases                                        Aahz, Baxter
  P     7  Style Guide for C Code                                  GvR
  P     8  Style Guide for Python Code                             GvR, Warsaw, Coghlan
  PW    9  Sample Plaintext PEP Template                           Warsaw
  P    10  Voting Guidelines                                       Warsaw
  P    11  Removing support for little used platforms              von Löwis, Cannon
  P    12  Sample reStructuredText PEP Template                    Goodger, Warsaw

I 20 The Zen of Python Peters

PR 42 Feature Requests Hylton

SF 100 Python Unicode Integration Lemburg I 101 Doing Python Releases 101 Warsaw, GvR IS 102 Doing Python Micro Releases Baxter, Warsaw, GvR IW 103 Collecting information about git Broytman

IF 160 Python 1.6 Release Schedule Drake

IF 200 Python 2.0 Release Schedule Hylton SF 201 Lockstep Iteration Warsaw SF 202 List Comprehensions Warsaw SF 203 Augmented Assignments Wouters SR 204 Range Literals Wouters SF 205 Weak References Drake IW 206 Python Advanced Library Kuchling SF 207 Rich Comparisons GvR, Ascher SF 208 Reworking the Coercion Model Schemenauer, Lemburg SW 209 Multi-dimensional Arrays Barrett, Oliphant SR 210 Decoupling the Interpreter Loop Ascher SD 211 Adding A New Outer Product Operator Wilson SD 212 Loop Counter Iteration Schneider-Kamp SD 213 Attribute Access Handlers Prescod SF 214 Extended Print Statement Warsaw SS 215 String Interpolation Yee IR 216 Docstring Format Zadka SF 217 Display Hook for Interactive Use Zadka SF 218 Adding a Built-In Set Object Type Wilson, Hettinger SD 219 Stackless Python McMillan IR 220 Coroutines, Generators, Continuations McMillan SF 221 Import As Wouters SD 222 Web Library Enhancements Kuchling SF 223 Change the Meaning of \x Escapes Peters SR 224 Attribute Docstrings Lemburg SD 225 Elementwise/Objectwise Operators Zhu, Lielens IF 226 Python 2.1 Release Schedule Hylton SF 227 Statically Nested Scopes Hylton SW 228 Reworking Python’s Numeric Model Zadka, GvR SF 229 Using Distutils to Build Python Kuchling SF 230 Warning Framework GvR SR 231 __findattr__()” Warsaw SF 232 Function Attributes Warsaw SD 233 Python Online Help Prescod SF 234 Iterators Yee, GvR SF 235 Import on Case-Insensitive Platforms Peters SF 236 Back to the __future__ Peters SF 237 Unifying Long Integers and Integers Zadka, GvR SF 238 Changing the Division Operator Zadka, GvR SR 239 Adding a Rational Type to Python Craig, Zadka SR 240 Adding a Rational Literal to Python Craig, Zadka SF 241 Metadata for Python Software Packages Kuchling SR 242 Numeric Kinds Dubois SW 243 Module Repository Upload Mechanism Reifschneider SR 244 The directive statement von Löwis SR 245 Python Interface Syntax Pelletier SR 246 Object Adaptation Martelli, Evans IF 247 API for Cryptographic Hash Functions Kuchling IF 248 Python Database API Specification v1.0 Lemburg IF 249 Python Database API Specification v2.0 Lemburg SF 250 Using site-packages on Windows Moore IF 251 Python 2.2 Release Schedule Warsaw, GvR SF 252 Making Types Look More Like Classes GvR SF 253 Subtyping Built-in Types GvR SR 254 Making Classes Look More Like Types GvR SF 255 Simple Generators Schemenauer, Peters, Hetland SR 256 Docstring Processing System Framework Goodger I 257 Docstring Conventions Goodger, GvR SR 258 Docutils Design Specification Goodger SR 259 Omit printing newline after newline GvR SF 260 Simplify xrange() GvR SF 261 Support for “wide” Unicode characters Prescod SD 262 A Database of Installed Python Packages Kuchling SF 263 Defining Python Source Code Encodings Lemburg, von Löwis SF 264 Future statements in simulated shells Hudson SR 265 Sorting Dictionaries by Value Griffin SW 266 Optimizing Global Variable/Attribute Access Montanaro SD 267 Optimized Access to Module Namespaces Hylton SR 268 Extended HTTP functionality and WebDAV Stein SD 269 Pgen Module for Python Riehl SR 270 uniq method for list objects Petrone SR 271 Prefixing sys.path by command line option Giacometti IF 272 API for Block Encryption Algorithms v1.0 Kuchling SF 273 Import Modules from Zip Archives Ahlstrom SF 274 Dict Comprehensions Warsaw SR 275 Switching on Multiple Values Lemburg SR 276 Simple Iterator for ints Althoff SF 277 Unicode file name support for Windows NT Hodgson SF 278 Universal Newline Support Jansen SF 279 The enumerate() built-in function Hettinger SD 280 Optimizing access to globals GvR SR 281 Loop Counter Iteration with range and xrange Hetland SF 282 A Logging System Sajip, Mick IF 283 Python 2.3 Release Schedule GvR SR 284 Integer for-loops Eppstein, Ewing SF 285 Adding a bool type GvR SD 286 Enhanced Argument Tuples von Löwis I 287 reStructuredText Docstring Format Goodger SW 288 Generators Attributes and Exceptions Hettinger SF 289 Generator Expressions Hettinger I 290 Code Migration and Modernization Hettinger IF 291 Backward Compatibility for the Python 2 Standard … Norwitz SF 292 Simpler String Substitutions Warsaw SF 293 Codec Error Handling Callbacks Dörwald SR 294 Type Names in the types Module Tirosh SR 295 Interpretation of multiline string constants Koltsov SW 296 Adding a bytes Object Type Gilbert SR 297 Support for System Upgrades Lemburg SW 298 The Locked Buffer Interface Heller SR 299 Special __main__() function in modules Epler

SF 301 Package Index and Metadata for Distutils Jones SF 302 New Import Hooks JvR, Moore SR 303 Extend divmod() for Multiple Divisors Bellman SW 304 Controlling Generation of Bytecode Files Montanaro SF 305 CSV File API Altis, Cole, McNamara, Montanaro, Wells IW 306 How to Change Python’s Grammar Hudson, Diederich, Coghlan, Peterson SF 307 Extensions to the pickle protocol GvR, Peters SF 308 Conditional Expressions GvR, Hettinger SF 309 Partial Function Application Harris SR 310 Reliable Acquisition/Release Pairs Hudson, Moore SF 311 Simplified Global Interpreter Lock Acquisition for … Hammond SD 312 Simple Implicit Lambda Suzi, Martelli SR 313 Adding Roman Numeral Literals to Python Meyer SF 314 Metadata for Python Software Packages v1.1 Kuchling, Jones SR 315 Enhanced While Loop Hettinger, Carroll SD 316 Programming by Contract for Python Way SR 317 Eliminate Implicit Exception Instantiation Taschuk SF 318 Decorators for Functions and Methods Smith SR 319 Python Synchronize/Asynchronize Block Pelletier IF 320 Python 2.4 Release Schedule Warsaw, Hettinger, Baxter SW 321 Date/Time Parsing and Formatting Kuchling SF 322 Reverse Iteration Hettinger SD 323 Copyable Iterators Martelli SF 324 subprocess - New process module Astrand SR 325 Resource-Release Support for Generators Pedroni SR 326 A Case for Top and Bottom Values Carlson, Reedy SF 327 Decimal Data Type Batista SF 328 Imports: Multi-Line and Absolute/Relative Aahz SR 329 Treating Builtins as Constants in the Standard Library Hettinger SR 330 Python Bytecode Verification Pelletier SF 331 Locale-Independent Float/String Conversions Reis SR 332 Byte vectors and String/Unicode Unification Montanaro IF 333 Python Web Server Gateway Interface v1.0 Eby SW 334 Simple Coroutines via SuspendIteration Evans SR 335 Overloadable Boolean Operators Ewing SR 336 Make None Callable McClelland SD 337 Logging Usage in the Standard Library Dubner SF 338 Executing modules as scripts Coghlan IW 339 Design of the CPython Compiler Cannon SR 340 Anonymous Block Statements GvR SF 341 Unifying try-except and try-finally Brandl SF 342 Coroutines via Enhanced Generators GvR, Eby SF 343 The “with” Statement GvR, Coghlan SS 344 Exception Chaining and Embedded Tracebacks Yee SA 345 Metadata for Python Software Packages 1.2 Jones SW 346 User Defined (“with”) Statements Coghlan PF 347 Migrating the Python CVS to Subversion von Löwis SR 348 Exception Reorganization for Python 3.0 Cannon SD 349 Allow str() to return unicode strings Schemenauer IR 350 Codetags Elliott SR 351 The freeze protocol Warsaw SF 352 Required Superclass for Exceptions Cannon, GvR SF 353 Using ssize_t as the index type von Löwis SS 354 Enumerations in Python Finney SR 355 Path - Object oriented filesystem paths Lindqvist IF 356 Python 2.5 Release Schedule Norwitz, GvR, Baxter SF 357 Allowing Any Object to be Used for Slicing Oliphant SF 358 The “bytes” Object Schemenauer, GvR SW 359 The “make” Statement Bethard PF 360 Externally Maintained Packages Cannon IF 361 Python 2.6 and 3.0 Release Schedule Norwitz, Warsaw SF 362 Function Signature Object Cannon, Seo, Selivanov, Hastings SR 363 Syntax For Dynamic Attribute Access North SW 364 Transitioning to the Py3K Standard Library Warsaw SR 365 Adding the pkg_resources module Eby SF 366 Main module explicit relative imports Coghlan SS 367 New Super Spealman, Delaney SD 368 Standard image protocol and class Mastrodomenico SW 369 Post import hooks Heimes SF 370 Per user site-packages directory Heimes SF 371 Addition of the multiprocessing package to the … Noller, Oudkerk SF 372 Adding an ordered dictionary to collections Ronacher, Hettinger I 373 Python 2.7 Release Schedule Peterson PF 374 Choosing a distributed VCS for the Python project Cannon, Turnbull, Vassalotti, Warsaw, Ochtman IF 375 Python 3.1 Release Schedule Peterson SA 376 Database of Installed Python Distributions Ziadé SR 377 Allow __enter__() methods to skip the statement body Coghlan SF 378 Format Specifier for Thousands Separator Hettinger SW 379 Adding an Assignment Expression Whitley SF 380 Syntax for Delegating to a Subgenerator Ewing S 381 Mirroring infrastructure for PyPI Ziadé, v. Löwis SR 382 Namespace Packages v. Löwis SF 383 Non-decodable Bytes in System Character Interfaces v. Löwis SF 384 Defining a Stable ABI v. Löwis PF 385 Migrating from Subversion to Mercurial Ochtman, Pitrou, Brandl SS 386 Changing the version comparison module in Distutils Ziadé P 387 Backwards Compatibility Policy Peterson

SF 389 argparse - New Command Line Parsing Module Bethard SR 390 Static metadata for Distutils Ziadé SF 391 Dictionary-Based Configuration For Logging Sajip I 392 Python 3.2 Release Schedule Brandl SF 393 Flexible String Representation v. Löwis I 394 The “python” Command on Unix-Like Systems Staley, Coghlan, Warsaw SW 395 Qualified Names for Modules Coghlan ID 396 Module Version Numbers Warsaw SF 397 Python launcher for Windows Hammond, v. Löwis I 398 Python 3.3 Release Schedule Brandl IF 399 Pure Python/C Accelerator Module Compatibility … Cannon SD 400 Deprecate codecs.StreamReader and codecs.StreamWriter Stinner PR 401 BDFL Retirement Warsaw, Cannon SR 402 Simplified Package Layout and Partitioning Eby SD 403 General purpose decorator clause (aka “@in” clause) Coghlan IF 404 Python 2.8 Un-release Schedule Warsaw SF 405 Python Virtual Environments Meyer SW 406 Improved Encapsulation of Import State Coghlan, Slodkowicz PD 407 New release cycle and introducing long-term support … Pitrou, Brandl, Warsaw SR 408 Standard library __preview__ package Coghlan, Bendersky SF 409 Suppressing exception context Furman SR 410 Use decimal.Decimal type for timestamps Stinner IA 411 Provisional packages in the Python standard library Coghlan, Bendersky SF 412 Key-Sharing Dictionary Shannon PW 413 Faster evolution of the Python Standard Library Coghlan SF 414 Explicit Unicode Literal for Python 3.3 Ronacher, Coghlan SF 415 Implement context suppression with exception attributes Peterson SR 416 Add a frozendict builtin type Stinner SF 417 Including mock in the Standard Library Foord SF 418 Add monotonic time, performance counter, and … Simpson, Jewett, Turnbull, Stinner SD 419 Protecting cleanup statements from interruptions Colomiets SF 420 Implicit Namespace Packages Smith SF 421 Adding sys.implementation Snow SW 422 Simpler customisation of class creation Coghlan, Urban ID 423 Naming conventions and recipes related to packaging Bryon SF 424 A method for exposing a length hint Gaynor SA 425 Compatibility Tags for Built Distributions Holth I 426 Metadata for Python Software Packages 2.0 Coghlan, Holth, Stufft SA 427 The Wheel Binary Package Format 1.0 Holth SF 428 The pathlib module – object-oriented filesystem paths Pitrou I 429 Python 3.4 Release Schedule Hastings IF 430 Migrating to Python 3 as the default online … Coghlan SW 431 Time zone support improvements Regebro S 432 Restructuring the CPython startup sequence Coghlan SS 433 Easier suppression of file descriptor inheritance Stinner I 434 IDLE Enhancement Exception for All Branches Rovito, Reedy SF 435 Adding an Enum type to the Python standard library Warsaw, Bendersky, Furman S 436 The Argument Clinic DSL Hastings SR 437 A DSL for specifying signatures, annotations and … Krah PS 438 Transitioning to release-file hosting on PyPI Krekel, Meyer SR 439 Inclusion of implicit pip bootstrap in Python … Jones IA 440 Version Identification and Dependency Specification Coghlan, Stufft SF 441 Improving Python ZIP Application Support Holth, Moore SF 442 Safe object finalization Pitrou SF 443 Single-dispatch generic functions Langa ID 444 Python Web3 Interface McDonough, Ronacher SF 445 Add new APIs to customize Python memory allocators Stinner SF 446 Make newly created file descriptors non-inheritable Stinner S 447 Add “getdescriptor” method to metaclass Oussoren SF 448 Additional Unpacking Generalizations Landau PA 449 Removal of the PyPI Mirror Auto Discovery and … Stufft SF 450 Adding A Statistics Module To The Standard Library D’Aprano SF 451 A ModuleSpec Type for the Import System Snow I 452 API for Cryptographic Hash Functions v2.0 Kuchling, Heimes SF 453 Explicit bootstrapping of pip in Python installations Stufft, Coghlan SF 454 Add a new tracemalloc module to trace Python memory … Stinner SR 455 Adding a key-transforming dictionary to collections Pitrou SF 456 Secure and interchangeable hash algorithm Heimes I 457 Syntax For Positional-Only Parameters Hastings S 458 Surviving a Compromise of PyPI Kuppusamy, Diaz, Stufft, Cappos SD 459 Standard Metadata Extensions for Python Software … Coghlan SW 460 Add binary interpolation and formatting Pitrou SF 461 Adding % formatting to bytes and bytearray Furman PW 462 Core development workflow automation for CPython Coghlan SR 463 Exception-catching expressions Angelico PA 464 Removal of the PyPI Mirror Authenticity API Stufft SF 465 A dedicated infix operator for matrix multiplication Smith SF 466 Network Security Enhancements for Python 2.7.x Coghlan S 467 Minor API improvements for binary sequences Coghlan SF 468 Preserving the order of **kwargs in a function. Snow SW 469 Migration of dict iteration code to Python 3 Coghlan PA 470 Removing External Hosting Support on PyPI Stufft SF 471 os.scandir() function – a better and faster … Hoyt S 472 Support for indexing with keyword arguments Borini, Martinot-Lagarde S 473 Adding structured data to built-in exceptions Kreft PW 474 Creating forge.python.org Coghlan SF 475 Retry system calls failing with EINTR Natali, Stinner SF 476 Enabling certificate verification by default for … Gaynor SF 477 Backport ensurepip (PEP 453) to Python 2.7 Stufft, Coghlan I 478 Python 3.5 Release Schedule Hastings SF 479 Change StopIteration handling inside generators Angelico, GvR S 480 Surviving a Compromise of PyPI: The Maximum … Kuppusamy, Diaz, Stufft, Cappos PW 481 Migrate CPython to Git, Github, and Phabricator Stufft I 482 Literature Overview for Type Hints Langa I 483 The Theory of Type Hints GvR, Levkivskyi SA 484 Type Hints GvR, Lehtosalo, Langa SF 485 A Function for testing approximate equality Barker SF 486 Make the Python Launcher aware of virtual environments Moore SF 487 Simpler customisation of class creation Teichmann SF 488 Elimination of PYO files Cannon SF 489 Multi-phase extension module initialization Viktorin, Behnel, Coghlan S 490 Chain exceptions at C level Stinner S 491 The Wheel Binary Package Format 1.9 Holth SF 492 Coroutines with async and await syntax Selivanov SF 493 HTTPS verification migration tools for Python 2.7 Coghlan, Kuska, Lemburg I 494 Python 3.6 Release Schedule Deily SA 495 Local Time Disambiguation Belopolsky, Peters IS 496 Environment Markers Polley P 497 A standard mechanism for backward compatibility Schofield SA 498 Literal String Interpolation Smith S 499 python -m foo should bind … Simpson SR 500 A protocol for delegating datetime methods to their … Belopolsky, Peters SD 501 General purpose string interpolation Coghlan I 502 String Interpolation - Extended Discussion Miller IA 503 Simple Repository API Stufft SW 504 Using the System RNG by default Coghlan S 505 None-aware operators Haase SA 506 Adding A Secrets Module To The Standard Library D’Aprano PR 507 Migrate CPython to Git and GitLab Warsaw I 508 Dependency specification for Python Software Packages Collins SF 509 Add a private version to dict Stinner S 510 Specialize functions with guards Stinner S 511 API for code transformers Stinner PF 512 Migrating from hg.python.org to GitHub Cannon I 513 A Platform Tag for Portable Linux Built Distributions McGibbon, Smith I 514 Python registration in the Windows registry Dower SA 515 Underscores in Numeric Literals Brandl, Storchaka S 516 Build system abstraction for pip/conda etc Collins, Smith S 517 A build-system independent format for source trees Smith, Kluyver IA 518 Specifying Minimum Build System Requirements for … Cannon, Smith, Stufft SF 519 Adding a file system path protocol Cannon, Zevenhoven SF 520 Preserving Class Attribute Definition Order Snow SD 521 Managing global context via ‘with’ blocks in … Smith SR 522 Allow BlockingIOError in security sensitive APIs Coghlan, Smith SF 523 Adding a frame evaluation API to CPython Cannon, Viehland SF 524 Make os.urandom() blocking on Linux Stinner SF 525 Asynchronous Generators Selivanov SF 526 Syntax for Variable Annotations Gonzalez, House, Levkivskyi, Roach, GvR PA 527 Removing Un(der)used file types/extensions on PyPI Stufft SF 528 Change Windows console encoding to UTF-8 Dower SF 529 Change Windows filesystem encoding to UTF-8 Dower SF 530 Asynchronous Comprehensions Selivanov SW 531 Existence checking operators Coghlan S 532 A circuit breaking protocol and binary operators Coghlan, Haase S 533 Deterministic cleanup for iterators Smith S 534 Distributing a Subset of the Standard Library Orsava, Viktorin, Coghlan S 535 Rich comparison chaining Coghlan S 536 Final Grammar for Literal String Interpolation Angerer I 537 Python 3.7 Release Schedule Deily S 538 Coercing the legacy C locale to a UTF-8 based locale Coghlan I 539 A New C-API for Thread-Local Storage in CPython Bray, Yamamoto S 540 Add a new UTF-8 mode Stinner P 541 Package Index Name Retention Langa S 542 Dot Notation Assignment In Function Header Meskanen S 543 A Unified TLS API for Python Benfield, Heimes

SF 628 Add math.tau Coghlan

SR 666 Reject Foolish Indentation Creighton

SR 754 IEEE 754 Floating Point Special Values Warnes

PF 3000 Python 3000 GvR PW 3001 Procedure for reviewing and improving standard … Brandl PF 3002 Procedure for Backwards-Incompatible Changes Bethard PF 3003 Python Language Moratorium Cannon, Noller, GvR

PF 3099 Things that will Not Change in Python 3000 Brandl PF 3100 Miscellaneous Python 3.0 Plans Cannon SF 3101 Advanced String Formatting Talin SF 3102 Keyword-Only Arguments Talin SR 3103 A Switch/Case Statement GvR SF 3104 Access to Names in Outer Scopes Yee SF 3105 Make print a function Brandl SF 3106 Revamping dict.keys(), .values() and .items() GvR SF 3107 Function Annotations Winter, Lownds SF 3108 Standard Library Reorganization Cannon SF 3109 Raising Exceptions in Python 3000 Winter SF 3110 Catching Exceptions in Python 3000 Winter SF 3111 Simple input built-in in Python 3000 Roberge SF 3112 Bytes literals in Python 3000 Orendorff SF 3113 Removal of Tuple Parameter Unpacking Cannon SF 3114 Renaming iterator.next() to iterator.__next__() Yee SF 3115 Metaclasses in Python 3000 Talin SF 3116 New I/O Stutzbach, GvR, Verdone SR 3117 Postfix type declarations Brandl SF 3118 Revising the buffer protocol Oliphant, Banks SF 3119 Introducing Abstract Base Classes GvR, Talin SF 3120 Using UTF-8 as the default source encoding von Löwis SA 3121 Extension Module Initialization and Finalization von Löwis SR 3122 Delineation of the main module Cannon SF 3123 Making PyObject_HEAD conform to standard C von Löwis SD 3124 Overloading, Generic Functions, Interfaces, and … Eby SR 3125 Remove Backslash Continuation Jewett SR 3126 Remove Implicit String Concatenation Jewett, Hettinger SF 3127 Integer Literal Support and Syntax Maupin SR 3128 BList: A Faster List-like Type Stutzbach SF 3129 Class Decorators Winter SR 3130 Access to Current Module/Class/Function Jewett SF 3131 Supporting Non-ASCII Identifiers von Löwis SF 3132 Extended Iterable Unpacking Brandl SR 3133 Introducing Roles Winter SF 3134 Exception Chaining and Embedded Tracebacks Yee SF 3135 New Super Spealman, Delaney, Ryan SR 3136 Labeled break and continue Chisholm SF 3137 Immutable Bytes and Mutable Buffer GvR SF 3138 String representation in Python 3000 Ishimoto SR 3139 Cleaning out sys and the “interpreter” module Peterson SR 3140 str(container) should call str(item), not repr(item) Broytman, Jewett SF 3141 A Type Hierarchy for Numbers Yasskin SR 3142 Add a “while” clause to generator expressions Britton SD 3143 Standard daemon process library Finney SF 3144 IP Address Manipulation Library for the Python … Moody SW 3145 Asynchronous I/O For subprocess.Popen Pruitt, McCreary, Carlson SW 3146 Merging Unladen Swallow into CPython Winter, Yasskin, Kleckner SF 3147 PYC Repository Directories Warsaw SF 3148 futures - execute computations asynchronously Quinlan SF 3149 ABI version tagged .so files Warsaw SD 3150 Statement local namespaces (aka “given” clause) Coghlan SF 3151 Reworking the OS and IO exception hierarchy Pitrou SR 3152 Cofunctions Ewing SS 3153 Asynchronous IO support Houtven SF 3154 Pickle protocol version 4 Pitrou SF 3155 Qualified name for classes and functions Pitrou SF 3156 Asynchronous IO Support Rebooted: the “asyncio” Module GvR

IF 3333 Python Web Server Gateway Interface v1.0.1 Eby

Reserved PEP Numbers

     num  title                                                   owner
     —  —–                                                   —–
     801  RESERVED                                                Warsaw

Key

    S - Standards Track PEP
    I - Informational PEP
    P - Process PEP

A - Accepted proposal
R - Rejected proposal
W - Withdrawn proposal
D - Deferred proposal
F - Final proposal
A - Active proposal
D - Draft proposal
S - Superseded proposal

Owners

    name                         email address
    —-                         ————-
     Aahz                         aahz at pythoncraft.com
     Ahlstrom, James C.           jim at interet.com
     Althoff, Jim                 james_althoff at i2.com
     Altis, Kevin                 altis at semi-retired.com
     Angelico, Chris              rosuav at gmail.com
     Angerer, Philipp             phil.angerer at gmail.com
     Ascher, David                davida at activestate.com
     Astrand, Peter               astrand at lysator.liu.se
     Banks, Carl                  pythondev at aerojockey.com
     Barker, Christopher          chris.barker at noaa.gov
     Barrett, Paul                barrett at stsci.edu
     Batista, Facundo             facundo at taniquetil.com.ar
     Baxter, Anthony              anthony at interlink.com.au
     Behnel, Stefan               stefan_ml at behnel.de
     Bellman, Thomas              bellman+pep-divmod@lysator.liu.se
     Belopolsky, Alexander        alexander.belopolsky at gmail.com
     Bendersky, Eli               eliben at gmail.com
     Benfield, Cory               cory at lukasa.co.uk
     Bethard, Steven              steven.bethard at gmail.com
     Borini, Stefano
Brandl, Georg georg at python.org Bray, Erik M.
Britton, Gerald gerald.britton at gmail.com Broytman, Oleg phd at phdru.name Bryon, Benoit benoit at marmelune.net Cannon, Brett brett at python.org Cappos, Justin jcappos at nyu.edu Carlson, Josiah jcarlson at uci.edu Carroll, W Isaac icarroll at pobox.com Chisholm, Matt matt-python at theory.org Coghlan, Nick ncoghlan at gmail.com Cole, Dave djc at object-craft.com.au Collins, Robert rbtcollins at hp.com Colomiets, Paul paul at colomiets.name Craig, Christopher A. python-pep at ccraig.org Creighton, Laura lac at strakt.com D’Aprano, Steven steve at pearwood.info Deily, Ned nad at python.org Delaney, Tim timothy.c.delaney at gmail.com Diaz, Vladimir vladimir.diaz at nyu.edu Diederich, Jack jackdied at gmail.com Dörwald, Walter walter at livinglogic.de Dower, Steve steve.dower at python.org Drake, Fred L., Jr. fdrake at acm.org Dubner, Michael P. dubnerm at mindless.com Dubois, Paul F. paul at pfdubois.com Eby, P.J. pje at telecommunity.com Eby, Phillip J. pje at telecommunity.com Elliott, Micah mde at tracos.org Epler, Jeff jepler at unpythonic.net Eppstein, David eppstein at ics.uci.edu Evans, Clark C. cce at clarkevans.com Ewing, Gregory greg.ewing at canterbury.ac.nz Ewing, Greg greg.ewing at canterbury.ac.nz Faassen, Martijn faassen at infrae.com Finney, Ben ben+python@benfinney.id.au Foord, Michael michael at python.org Furman, Ethan ethan at stoneleaf.us Gaynor, Alex alex.gaynor at gmail.com Giacometti, Frédéric B. fred at arakne.com Gilbert, Scott xscottg at yahoo.com Gonzalez, Ryan rymg19 at gmail.com Goodger, David goodger at python.org Griffin, Grant g2 at iowegian.com Haase, Mark E. mehaase at gmail.com Hammond, Mark mhammond at skippinet.com.au Harris, Peter scav at blueyonder.co.uk Hastings, Larry larry at hastings.org Heimes, Christian christian at python.org Heller, Thomas theller at python.net Hetland, Magnus Lie magnus at hetland.org Hettinger, Raymond python at rcn.com Hodgson, Neil neilh at scintilla.org Holth, Daniel dholth at gmail.com House, Philip phouse512 at gmail.com Houtven, Laurens Van _ at lvh.cc Hoyt, Ben benhoyt at gmail.com Hudson, Michael mwh at python.net Hylton, Jeremy jeremy at alum.mit.edu Ishimoto, Atsuo ishimoto–at–gembook.org Jansen, Jack jack at cwi.nl Jewett, Jim J. jimjjewett at gmail.com Jewett, Jim jimjjewett at gmail.com Jones, Richard richard at python.org Kleckner, Reid rnk at mit.edu Kluyver, Thomas thomas at kluyver.me.uk Koltsov, Stepan yozh at mx1.ru Krah, Stefan skrah at bytereef.org Kreft, Sebastian skreft at deezer.com Krekel, Holger holger at merlinux.eu Kuchling, A.M. amk at amk.ca Kuppusamy, Trishank Karthik trishank at nyu.edu Kuska, Robert rkuska at redhat.com Landau, Joshua joshua at landau.ws Langa, Łukasz lukasz at langa.pl Lehtosalo, Jukka jukka.lehtosalo at iki.fi Lemburg, Marc-André mal at lemburg.com Levkivskyi, Ivan levkivskyi at gmail.com Lielens, Gregory gregory.lielens at fft.be Lindqvist, Björn bjourne at gmail.com v. Löwis, Martin martin at v.loewis.de von Löwis, Martin martin at v.loewis.de Lownds, Tony tony at lownds.com Martelli, Alex aleaxit at gmail.com Martinot-Lagarde, Joseph
Mastrodomenico, Lino l.mastrodomenico at gmail.com Maupin, Patrick pmaupin at gmail.com McClelland, Andrew eternalsquire at comcast.net McCreary, Charles R.
McDonough, Chris chrism at plope.com McGibbon, Robert T. rmcgibbo at gmail.com McMillan, Gordon gmcm at hypernet.com McNamara, Andrew andrewm at object-craft.com.au Meskanen, Markus markusmeskanen at gmail.com Meyer, Carl carl at oddbird.net Meyer, Mike mwm at mired.org Mick, Trent trentm at activestate.com Miller, Mike G.
Montanaro, Skip skip at pobox.com Moody, Peter pmoody at google.com Moore, Paul p.f.moore at gmail.com Natali, Charles-François cf.natali at gmail.com Noller, Jesse jnoller at gmail.com North, Ben ben at redfrontdoor.org Norwitz, Neal nnorwitz at gmail.com Ochtman, Dirkjan dirkjan at ochtman.nl Oliphant, Travis oliphant at ee.byu.edu Orendorff, Jason jason.orendorff at gmail.com Orsava, Tomáš tomas.n at orsava.cz Oudkerk, Richard r.m.oudkerk at googlemail.com Oussoren, Ronald ronaldoussoren at mac.com Pedroni, Samuele pedronis at python.org Pelletier, Michel michel at users.sourceforge.net Peters, Tim tim.peters at gmail.com Peterson, Benjamin benjamin at python.org Petrone, Jason jp at demonseed.net Pitrou, Antoine solipsis at pitrou.net Polley, James jp at jamezpolley.com Prescod, Paul paul at prescod.net Pruitt, (James) Eric
Quinlan, Brian brian at sweetapp.com Reedy, Terry tjreedy at udel.edu Regebro, Lennart regebro at gmail.com Reifschneider, Sean jafo-pep at tummy.com Reis, Christian R. kiko at async.com.br Riehl, Jonathan jriehl at spaceship.com Roach, Lisa lisaroach14 at gmail.com Roberge, Andre andre.roberge at gmail.com Ronacher, Armin armin.ronacher at active-4.com van Rossum, Just (JvR) just at letterror.com van Rossum, Guido (GvR) guido at python.org Rovito, Todd rovitotv at gmail.com Ryan, Lie lie.1296 at gmail.com Sajip, Vinay vinay_sajip at red-dove.com Schemenauer, Neil nas at arctrix.com Schneider-Kamp, Peter nowonder at nowonder.de Schofield, Ed ed at pythoncharmers.com Selivanov, Yury yury at magic.io Seo, Jiwon seojiwon at gmail.com Shannon, Mark mark at hotpy.org Simpson, Cameron cs at zip.com.au Slodkowicz, Greg jergosh at gmail.com Smith, Nathaniel njs at pobox.com Smith, Eric V. eric at trueblade.com Smith, Kevin D. kevin.smith at themorgue.org Smith, Nathaniel J. njs at pobox.com Snow, Eric ericsnowcurrently at gmail.com Spealman, Calvin ironfroggy at gmail.com Staley, Kerrick mail at kerrickstaley.com Stein, Greg gstein at lyra.org Stinner, Victor victor.stinner at gmail.com Storchaka, Serhiy
Stufft, Donald donald at stufft.io Stutzbach, Daniel daniel at stutzbachenterprises.com Suzi, Roman rnd at onego.ru Talin viridia at gmail.com Taschuk, Steven staschuk at telusplanet.net Teichmann, Martin lkb.teichmann at gmail.com Tirosh, Oren oren at hishome.net Turnbull, Stephen J. stephen at xemacs.org Urban, Daniel urban.dani+py@gmail.com Vassalotti, Alexandre alexandre at peadrop.com Verdone, Mike mike.verdone at gmail.com Viehland, Dino dinov at microsoft.com Viktorin, Petr encukou at gmail.com Warnes, Gregory R. gregory_r_warnes at groton.pfizer.com Warsaw, Barry barry at python.org Way, Terence terry at wayforward.net Wells, Cliff logiplexsoftware at earthlink.net Whitley, Jervis jervisau at gmail.com Wilson, Greg gvwilson at ddj.com Winter, Collin collinwinter at google.com Wouters, Thomas thomas at python.org Yamamoto, Masayuki
Yasskin, Jeffrey jyasskin at google.com Yee, Ka-Ping ping at zesty.ca Zadka, Moshe moshez at zadka.site.co.il Zevenhoven, Koos k7hoven at gmail.com Zhu, Huaiyu hzhu at users.sourceforge.net Ziadé, Tarek tarek at ziade.org

References

    [1] PEP 1: PEP Purpose and Guidelines
    [2] View PEP history online
        https://hg.python.org/peps/