Robuta

Sponsor of the Day: Jerkmate
https://peps.python.org/pep-0818/ PEP 818 – Adding the Core of the Pyodide Foreign Function Interface to Python | peps.python.org Pyodide is a distribution of Python for JavaScript runtimes, including browsers. Browsers are a universal computing platform. As with C for Unix family... foreign function interfacepython peps818addingcore https://peps.python.org/pep-2026/ PEP 2026 – Calendar versioning for Python | peps.python.org This PEP proposes updating the versioning scheme for Python to include the calendar year. calendar versioningpython peps2026 https://peps.python.org/pep-0543/ PEP 543 – A Unified TLS API for Python | peps.python.org This PEP would define a standard TLS interface in the form of a collection of abstract base classes. This interface would allow Python implementations and... python peps543unifiedtlsapi https://peps.python.org/pep-0020/ PEP 20 – The Zen of Python | peps.python.org Long time Pythoneer Tim Peters succinctly channels the BDFL’s guiding principles for Python’s design into 20 aphorisms, only 19 of which have been written down. python peps20zen https://peps.python.org/pep-0411/ PEP 411 – Provisional packages in the Python standard library | peps.python.org The process of including a new package into the Python standard library is hindered by the API lock-in and promise of backward compatibility implied by a... python standard librarypep411provisionalpackages https://peps.python.org/pep-0249/ PEP 249 – Python Database API Specification v2.0 | peps.python.org This API has been defined to encourage similarity between the Python modules that are used to access databases. By doing this, we hope to achieve a consistency... specification v2 0python databasepep249api https://peps.python.org/pep-0607/ PEP 607 – Reducing CPython’s Feature Delivery Latency | peps.python.org PEP 602 and PEP 605 describe two alternative approaches to delivering smaller collections of features to Python’s users more frequently (as compared to the... feature deliverypeps python607reducinglatency https://peps.python.org/pep-0810/ PEP 810 – Explicit lazy imports | peps.python.org This PEP introduces syntax for lazy imports as an explicit language feature: lazy importspeps python810explicit https://peps.python.org/pep-0609/ PEP 609 – Python Packaging Authority (PyPA) Governance | peps.python.org This document describes a governance model for the Python Packaging Authority (PyPA). The model is closely based on existing informal practices, with the... python packagingpep609authoritypypa https://peps.python.org/pep-0800/ PEP 800 – Disjoint bases in the type system | peps.python.org To analyze Python programs precisely, type checkers need to know when two classes can and cannot have a common child class. However, the information necessary... type systempeps python800disjointbases https://peps.python.org/pep-0709/ PEP 709 – Inlined comprehensions | peps.python.org Comprehensions are currently compiled as nested functions, which provides isolation of the comprehension’s iteration variable, but is inefficient at runtime.... peps python709inlinedcomprehensions https://peps.python.org/pep-0513/ PEP 513 – A Platform Tag for Portable Linux Built Distributions | peps.python.org This PEP proposes the creation of a new platform tag for Python package built distributions, such as wheels, called manylinux1_{x86_64,i686} with external... distributions peps pythonplatform tagportable linux513built https://peps.python.org/pep-0349/ PEP 349 – Allow str() to return unicode strings | peps.python.org This PEP proposes to change the str() built-in function so that it can return unicode strings. This change would make it easier to write code that works with... peps python349allowstrreturn https://peps.python.org/pep-0262/ PEP 262 – A Database of Installed Python Packages | peps.python.org This PEP describes a format for a database of the Python software installed on a system. python packagespep262databaseinstalled https://peps.python.org/pep-3111/ PEP 3111 – Simple input built-in in Python 3000 | peps.python.org Input and output are core features of computer programs. Currently, Python provides a simple means of output through the print keyword and two simple means of... python 3000 peps3111simpleinputbuilt https://peps.python.org/pep-3131/ PEP 3131 – Supporting Non-ASCII Identifiers | peps.python.org This PEP suggests to support non-ASCII letters (such as accented characters, Cyrillic, Greek, Kanji, etc.) in Python identifiers. supporting nonpeps python3131asciiidentifiers https://peps.python.org/pep-0484/ PEP 484 – Type Hints | peps.python.org PEP 3107 introduced syntax for function annotations, but the semantics were deliberately left undefined. There has now been enough 3rd party usage for static... type hints peps484python https://peps.python.org/pep-0723/ PEP 723 – Inline script metadata | peps.python.org This PEP specifies a metadata format that can be embedded in single-file Python scripts to assist launchers, IDEs and other external tools which may need to... script metadatapeps python723inline https://peps.python.org/pep-0612/ PEP 612 – Parameter Specification Variables | peps.python.org There currently are two ways to specify the type of a callable, the Callable[[int, str], bool] syntax defined in PEP 484, and callback protocols from PEP 544.... peps python612parameterspecificationvariables https://peps.python.org/pep-3129/ PEP 3129 – Class Decorators | peps.python.org This PEP proposes class decorators, an extension to the function and method decorators introduced in PEP 318. peps python3129classdecorators https://peps.pythondiscord.com/pep-0477/ PEP 477 – Backport ensurepip (PEP 453) to Python 2.7 | peps.pythondiscord.com Python Enhancement Proposals (PEPs) python 2 7peps pythondiscord477backport453 https://peps.python.org/pep-0589/ PEP 589 – TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys | peps.python.org PEP 484 defines the type Dict[K, V] for uniform dictionaries, where each value has the same type, and arbitrary key values are supported. It doesn’t properly... type hintspeps python589typeddictdictionaries https://peps.python.org/pep-0414/ PEP 414 – Explicit Unicode Literal for Python 3.3 | peps.python.org This document proposes the reintegration of an explicit unicode literal from Python 2.x to the Python 3.x language specification, in order to reduce the volume... python 3pep414explicitunicode https://peps.pythondiscord.com/pep-3138/ PEP 3138 – String representation in Python 3000 | peps.pythondiscord.com Python Enhancement Proposals (PEPs) python 3000 peps3138stringrepresentationpythondiscord https://discuss.python.org/t/pep-779-criteria-for-supported-status-for-free-threaded-python/84319/123 PEP 779: Criteria for supported status for free-threaded Python - #123 by corona10 - PEPs -... As you may remember, PEP 703 (Making the Global Interpreter Lock Optional in CPython) was accepted for Python 3.13, as an explicitly experimental feature. The... supported statusfree threadedpep779criteria https://peps.python.org/pep-0807/ PEP 807 – Index support for Trusted Publishing | peps.python.org This PEP proposes a standard mechanism through which arbitrary Python package indices can support “Trusted Publishing,” a misuse-resistant credential exchange... index supporttrusted publishingpeps python807 https://peps.python.org/pep-0482/ PEP 482 – Literature Overview for Type Hints | peps.python.org This PEP is one of three related to type hinting. This PEP gives a literature overview of related work. The main spec is PEP 484. type hints peps482literatureoverviewpython https://peps.python.org/pep-0311/ PEP 311 – Simplified Global Interpreter Lock Acquisition for Extensions | peps.python.org This PEP proposes a simplified API for access to the Global Interpreter Lock (GIL) for Python extension modules. Specifically, it provides a solution for... global interpreter lockpeps python311simplifiedacquisition https://peps.python.org/pep-0649/ PEP 649 – Deferred Evaluation Of Annotations Using Descriptors | peps.python.org Annotations are a Python technology that allows expressing type information and other metadata about Python functions, classes, and modules. But Python’s... peps python649deferredevaluationannotations https://peps.python.org/pep-0453/ PEP 453 – Explicit bootstrapping of pip in Python installations | peps.python.org This PEP proposes that the Installing Python Modules guide in Python 2.7, 3.3 and 3.4 be updated to officially recommend the use of pip as the default... pep453explicitbootstrappingpip https://peps.python.org/pep-0403/ PEP 403 – General purpose decorator clause (aka “@in” clause) | peps.python.org This PEP proposes the addition of a new @in decorator clause that makes it possible to override the name binding step of a function or class definition. general purposepeps python403decoratorclause https://peps.python.org/pep-0706/ PEP 706 – Filter for tarfile.extractall | peps.python.org The extraction methods in tarfile gain a filter argument, which allows rejecting files or modifying metadata as the archive is extracted. Three built-in named... peps python706filter https://peps.python.org/pep-0360/ PEP 360 – Externally Maintained Packages | peps.python.org There are many great pieces of Python software developed outside of the Python standard library (a.k.a., the “stdlib”). Sometimes it makes sense to incorporate... packages peps360externallymaintainedpython https://peps.python.org/pep-0647/ PEP 647 – User-Defined Type Guards | peps.python.org This PEP specifies a way for programs to influence conditional type narrowing employed by a type checker based on runtime checks. user definedpeps python647typeguards https://peps.python.org/pep-0257/ PEP 257 – Docstring Conventions | peps.python.org This PEP documents the semantics and conventions associated with Python docstrings. peps python257docstringconventions https://peps.python.org/pep-0660/ PEP 660 – Editable installs for pyproject.toml based builds (wheel based) | peps.python.org This document describes a PEP 517 style method for the installation of packages in editable mode. pyproject tomlpeps python660editableinstalls https://peps.python.org/pep-0780/ PEP 780 – ABI features as environment markers | peps.python.org This PEP defines using ABI features as environment markers for project dependencies, through a new sys_abi_features environment marker. PEP 508 (later moved to... peps python780abifeaturesenvironment https://peps.python.org/pep-0394/ PEP 394 – The “python” Command on Unix-Like Systems | peps.python.org This PEP outlines the behavior of Python scripts when the python command is invoked. Depending on a distribution or system configuration, python may or may not... unix likepeps python394commandsystems https://peps.python.org/pep-0425/ PEP 425 – Compatibility Tags for Built Distributions | peps.python.org This PEP specifies a tagging system to indicate with which versions of Python a built or binary distribution is compatible. A set of three tags indicate which... distributions peps python425compatibilitytagsbuilt https://peps.python.org/pep-3107/ PEP 3107 – Function Annotations | peps.python.org This PEP introduces a syntax for adding arbitrary metadata annotations to Python functions 1. annotations peps python3107function https://peps.python.org/pep-0813/ PEP 813 – The Pretty Print Protocol | peps.python.org This PEP describes the “pretty print protocol”, a collection of changes proposed to make pretty printing more customizable and convenient. pretty printprotocol peps813python https://peps.pythondiscord.com/ PEP 0 – Index of Python Enhancement Proposals (PEPs) | peps.pythondiscord.com Python Enhancement Proposals (PEPs) enhancement proposalspeps pythondiscord0index https://peps.python.org/pep-3101/ PEP 3101 – Advanced String Formatting | peps.python.org This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing ‘%’ string formatting operator. string formattingpeps python3101advanced https://peps.python.org/pep-0325/ PEP 325 – Resource-Release Support for Generators | peps.python.org Generators allow for natural coding and abstraction of traversal over data. Currently if external resources needing proper timely release are involved,... peps python325resourcereleasesupport https://peps.python.org/pep-0492/ PEP 492 – Coroutines with async and await syntax | peps.python.org The growth of Internet and general connectivity has triggered the proportionate need for responsive and scalable code. This proposal aims to answer that need... peps python492coroutinesasyncawait https://peps.python.org/pep-3143/ PEP 3143 – Standard daemon process library | peps.python.org Writing a program to become a well-behaved Unix daemon is somewhat complex and tricky to get right, yet the steps are largely similar for any daemon regardless... library peps python3143standarddaemonprocess https://peps.python.org/pep-0580/ PEP 580 – The C call protocol | peps.python.org A new “C call” protocol is proposed. It is meant for classes representing functions or methods which need to implement fast calling. The goal is to generalize... protocol peps580callpython https://peps.python.org/pep-0553/ PEP 553 – Built-in breakpoint() | peps.python.org This PEP proposes adding a new built-in function called breakpoint() which enters a Python debugger at the point of the call. Additionally, two new names are... peps python553builtbreakpoint https://peps.python.org/pep-0302/ PEP 302 – New Import Hooks | peps.python.org This PEP proposes to add a new set of import hooks that offer better customization of the Python import mechanism. Contrary to the current __import__ hook, a... new importpeps python302hooks https://peps.python.org/pep-0658/ PEP 658 – Serve Distribution Metadata in the Simple Repository API | peps.python.org This PEP proposes adding an anchor tag to expose the METADATA file from distributions in the PEP 503 “simple” repository API. A data-dist-info-metadata... repository apipeps python658servedistribution https://peps.python.org/pep-0554/ PEP 554 – Multiple Interpreters in the Stdlib | peps.python.org CPython has supported multiple interpreters in the same process (AKA “subinterpreters”) since version 1.5 (1997). The feature has been available via the C-API.... peps python554multipleinterpretersstdlib https://peps.python.org/pep-0804/ PEP 804 – An external dependency registry and name mapping mechanism | peps.python.org This PEP specifies a name mapping mechanism that allows packaging tools to map external dependency identifiers (as introduced in PEP 725) to their counterparts... peps python804externaldependencyregistry https://peps.python.org/pep-0585/ PEP 585 – Type Hinting Generics In Standard Collections | peps.python.org Static typing as defined by PEPs 484, 526, 544, 560, and 563 was built incrementally on top of the existing Python runtime and constrained by existing syntax... collections peps585typehintinggenerics https://peps.python.org/pep-0011/ PEP 11 – CPython platform support | peps.python.org This PEP documents how an operating system (platform) becomes supported in CPython, what platforms are currently supported, and documents past support. platform supportpeps python11cpython https://peps.python.org/pep-0207/ PEP 207 – Rich Comparisons | peps.python.org This PEP proposes several new features for comparisons: peps python207richcomparisons https://peps.python.org/pep-0735/ PEP 735 – Dependency Groups in pyproject.toml | peps.python.org This PEP specifies a mechanism for storing package requirements in pyproject.toml files such that they are not included in any built distribution of the... dependency groupspyproject tomlpeps python735 https://peps.python.org/pep-0742/ PEP 742 – Narrowing types with TypeIs | peps.python.org This PEP proposes a new special form, TypeIs, to allow annotating functions that can be used to narrow the type of a value, similar to the builtin... peps python742narrowingtypes https://peps.python.org/pep-0703/ PEP 703 – Making the Global Interpreter Lock Optional in CPython | peps.python.org CPython’s global interpreter lock (“GIL”) prevents multiple threads from executing Python code at the same time. The GIL is an obstacle to using multi-core... global interpreter lockcpython peps703makingoptional https://peps.python.org/pep-0241/ PEP 241 – Metadata for Python Software Packages | peps.python.org This PEP describes a mechanism for adding metadata to Python packages. It includes specifics of the field names, and their semantics and usage. python software packagespep241metadata https://peps.pythondiscord.com/pep-0330/ PEP 330 – Python Bytecode Verification | peps.pythondiscord.com Python Enhancement Proposals (PEPs) python bytecodepeps pythondiscord330verification https://peps.python.org/pep-0264/ PEP 264 – Future statements in simulated shells | peps.python.org As noted in PEP 236, there is no clear way for “simulated interactive shells” to simulate the behaviour of __future__ statements in “real” interactive shells,... peps python264futurestatementssimulated https://peps.python.org/pep-0659/ PEP 659 – Specializing Adaptive Interpreter | peps.python.org In order to perform well, virtual machines for dynamic languages must specialize the code that they execute to the types and values in the program being run.... peps python659specializingadaptiveinterpreter https://peps.python.org/pep-0571/ PEP 571 – The manylinux2010 Platform Tag | peps.python.org This PEP proposes the creation of a manylinux2010 platform tag to succeed the manylinux1 tag introduced by PEP 513. It also proposes that PyPI and pip both be... platform tagpeps python571 https://peps.python.org/pep-0383/ PEP 383 – Non-decodable Bytes in System Character Interfaces | peps.python.org File names, environment variables, and command line arguments are defined as being character data in POSIX; the C APIs however allow passing arbitrary bytes -... peps python383nondecodablebytes https://peps.python.org/pep-0448/ PEP 448 – Additional Unpacking Generalizations | peps.python.org This PEP proposes extended usages of the * iterable unpacking operator and ** dictionary unpacking operators to allow unpacking in more positions, an arbitrary... peps python448additionalunpacking https://peps.python.org/pep-0225/ PEP 225 – Elementwise/Objectwise Operators | peps.python.org This PEP describes a proposal to add new operators to Python which are useful for distinguishing elementwise and objectwise operations, and summarizes... peps python225elementwiseoperators https://peps.python.org/pep-0755/ PEP 755 – Implicit namespace policy for PyPI | peps.python.org This PEP codifies an implementation of PEP 752 for PyPI 1. peps python755implicitnamespacepolicy https://peps.python.org/pep-0215/ PEP 215 – String Interpolation | peps.python.org This document proposes a string interpolation feature for Python to allow easier string formatting. The suggested syntax change is the introduction of a ‘$’... peps python215stringinterpolation https://peps.python.org/pep-3109/ PEP 3109 – Raising Exceptions in Python 3000 | peps.python.org This PEP introduces changes to Python’s mechanisms for raising exceptions intended to reduce both line noise and the size of the language. python 3000 peps3109raisingexceptions https://peps.python.org/pep-0318/ PEP 318 – Decorators for Functions and Methods | peps.python.org The current method for transforming functions and methods (for instance, declaring them as a class or static method) is awkward and can lead to code that is... peps python318decoratorsfunctionsmethods https://peps.python.org/pep-0756/ PEP 756 – Add PyUnicode_Export() and PyUnicode_Import() C functions | peps.python.org Add functions to the limited C API version 3.14: peps python756addexportimport https://peps.python.org/pep-0347/ PEP 347 – Migrating the Python CVS to Subversion | peps.python.org The Python source code is currently managed in a CVS repository on sourceforge.net. This PEP proposes to move it to a Subversion repository on svn.python.org. pep347migratingpythoncvs https://peps.python.org/pep-8015/ PEP 8015 – Organization of the Python community | peps.python.org This PEP formalizes the current organization of the Python community and proposes 3 main changes: python communitypep8015organization https://peps.python.org/pep-0667/ PEP 667 – Consistent views of namespaces | peps.python.org In early versions of Python all namespaces, whether in functions, classes or modules, were all implemented the same way: as a dictionary. peps python667consistentviewsnamespaces https://peps.python.org/pep-0556/ PEP 556 – Threaded garbage collection | peps.python.org This PEP proposes a new optional mode of operation for CPython’s cyclic garbage collector (GC) where implicit (i.e. opportunistic) collections happen in a... garbage collectionpeps python556threaded https://peps.python.org/pep-0787/ PEP 787 – Safer subprocess usage using t-strings | peps.python.org PEP 750 introduced template strings (t-strings) as a generalization of f-strings, providing a way to safely handle string interpolation in various contexts.... usage usingpeps python787safersubprocess https://peps.python.org/pep-0573/ PEP 573 – Module State Access from C Extension Methods | peps.python.org This PEP proposes to add a way for CPython extension methods to access context, such as the state of the modules they are defined in. c extensionpeps python573modulestate https://peps.python.org/pep-0655/ PEP 655 – Marking individual TypedDict items as required or potentially-missing | peps.python.org PEP 589 defines notation for declaring a TypedDict with all required keys and notation for defining a TypedDict with all potentially-missing keys, however it... peps python655markingindividualtypeddict https://peps.pythondiscord.com/pep-0508/ PEP 508 – Dependency specification for Python Software Packages | peps.pythondiscord.com Python Enhancement Proposals (PEPs) python software packagesdependency specificationpeps pythondiscord508 https://peps.pythondiscord.com/pep-0426/ PEP 426 – Metadata for Python Software Packages 2.0 | peps.pythondiscord.com Python Enhancement Proposals (PEPs) python software packages2 0peps pythondiscord426metadata https://peps.python.org/pep-0000/ PEP 0 – Index of Python Enhancement Proposals (PEPs) | peps.python.org 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... enhancement proposalspep0indexpython https://peps.python.org/pep-0227/ PEP 227 – Statically Nested Scopes | peps.python.org This PEP describes the addition of statically nested scoping (lexical scoping) for Python 2.2, and as a source level option for python 2.1. In addition, Python... peps python227staticallynestedscopes https://peps.python.org/pep-0594/ PEP 594 – Removing dead batteries from the standard library | peps.python.org This PEP proposed a list of standard library modules to be removed from the standard library. The modules are mostly historic data formats (e.g. Commodore and... standard library peps594removingdeadbatteries https://peps.python.org/pep-0293/ PEP 293 – Codec Error Handling Callbacks | peps.python.org This PEP aims at extending Python’s fixed codec error handling schemes with a more flexible callback based approach. error handlingpeps python293codeccallbacks https://peps.python.org/pep-0814/ PEP 814 – Add frozendict built-in type | peps.python.org A new public immutable type frozendict is added to the builtins module. type peps814addfrozendictbuilt https://peps.python.org/pep-0526/ PEP 526 – Syntax for Variable Annotations | peps.python.org PEP 484 introduced type hints, a.k.a. type annotations. While its main focus was function annotations, it also introduced the notion of type comments to... annotations peps python526syntaxvariable https://peps.pythondiscord.com/pep-0537/ PEP 537 – Python 3.7 Release Schedule | peps.pythondiscord.com Python Enhancement Proposals (PEPs) python 3 7release schedule peps537pythondiscord https://peps.python.org/pep-0643/ PEP 643 – Metadata for Package Source Distributions | peps.python.org Python package metadata is stored in the distribution file in a standard format, defined in the Core Metadata Specification. However, for source distributions,... distributions peps python643metadatapackagesource https://peps.python.org/pep-0747/ PEP 747 – Annotating Type Forms | peps.python.org Type expressions provide a standardized way to specify types in the Python type system. When a type expression is evaluated at runtime, the resulting type form... peps python747annotatingtypeforms https://peps.python.org/pep-0272/ PEP 272 – API for Block Encryption Algorithms v1.0 | peps.python.org This document specifies a standard API for secret-key block encryption algorithms such as DES or Rijndael, making it easier to switch between different... v1 0 pepsencryption algorithms272apiblock https://peps.python.org/pep-0248/ PEP 248 – Python Database API Specification v1.0 | peps.python.org This API has been defined to encourage similarity between the Python modules that are used to access databases. By doing this, we hope to achieve a consistency... specification v1 0python databasepep248api https://peps.python.org/pep-0719/ PEP 719 – Python 3.13 Release Schedule | peps.python.org This document describes the development and release schedule for Python 3.13. python 3 13release schedule peps719 https://peps.python.org/pep-0581/ PEP 581 – Using GitHub Issues for CPython | peps.python.org This PEP outlines the rationale for migration from Python’s issue tracker on Roundup to GitHub issues. See PEP 588 for the detailed migration plan. using githubcpython peps581issues https://peps.pythondiscord.com/pep-0283/ PEP 283 – Python 2.3 Release Schedule | peps.pythondiscord.com Python Enhancement Proposals (PEPs) python 2 3release schedule peps283pythondiscord https://peps.python.org/topic/typing/ Typing PEPs | peps.python.org peps pythontyping https://peps.python.org/pep-8013/ PEP 8013 – The External Council Governance Model | peps.python.org This PEP proposes a new model of Python governance based on a Council of Auditors (CoA) tasked with making final decisions for the language. It differs from... council governancepeps python8013externalmodel https://peps.python.org/pep-0615/ PEP 615 – Support for the IANA Time Zone Database in the Standard Library | peps.python.org This proposes adding a module, zoneinfo, to provide a concrete time zone implementation supporting the IANA time zone database. By default, zoneinfo will use... iana time zonestandard library peps615supportdatabase https://peps.python.org/pep-0008/ PEP 8 – Style Guide for Python Code | peps.python.org This document gives coding conventions for the Python code comprising the standard library in the main Python distribution. Please see the companion... style guidepython codepep8