PEP 843: Export Statement for DRY Re-exports
PEP 843 is ready for discussion. It adds a small statement, from x export y [as z], that does what from x import y [as z] does and also appends the name to __all__ in the same statement. #...
View ArticlePEP 805: Safe Parallel Python
After a year of on and off development, I am pleased to present PEP 805. Abstract This PEP proposes internal changes to CPython and a new API to support safe, parallel execution of Python. With this...
View ArticlePEP 844: `public` and `private` builtins
The second proposal of the Public API Trilogy has been publish, albeit out of order. You’ll have to go back and read the second novel when it comes out. Here then is PEP 844 proposing to add public...
View ArticlePEP 842: Module Exports (new revision)
I’ve created a new revision of PEP 842 based on the feedback from the first discussion thread. In short, the PEP now proposes an export (soft) keyword, while still using the __export__ list as the...
View ArticlePEP 842: Module Exports
Hi, I’ve written PEP 842, which specifies an __export__ variable that controls variable visibility in modules. The full text is available here: Python Enhancement Proposals (PEPs) PEP 842 – Module...
View ArticlePEP 838: Adding python-version to pyvenv.cfg
Hi, I’d like to propose adding a python-version field to pyvenv.cfg. Unlike version and version_info, it records only the major and minor version and is resilient to patch version updates. Python...
View ArticlePEP 841: Adding Frozen Syntax to Make Immutable Types Optimizable
Hi all, @sobolevn and I would like to propose PEP 841, which adds frozen display syntax: f{1, 2, 3} creates a frozenset and f{'a': 1} creates a frozendict. Why we think Python needs this: frozenset...
View ArticlePEP 840: Name Resolution in Class Namespaces
Guido and I were looking at an old bug this week. It’s about an inconsistency in how variables are resolved in class namespaces. There are several possible solutions, including closing the bug as...
View ArticlePEP 836: JIT Go Brrr: The Path to a Supported JIT Compiler for CPython
Hello! @savannahostrowski @brandtbucher and I have drafted a PEP for the roadmap to an officially supported JIT in CPython, including the holistic criteria that the JIT should meet, in response to the...
View ArticlePEP 835: Shorthand syntax for Annotated type metadata
Following up on our initial feedback thread, PEP 835 is now officially live. I am proposing T @ Metadata as a built-in shorthand for typing.Annotated[T, Metadata]. # Before class Person: age:...
View ArticleUnderstanding PEP discussions
Please take a look at Kirigami, an open-source PEP discussion reader designed to improve the understanding and flow of a PEP thread. Motivation Long PEP discussions are time-consuming and difficult to...
View ArticlePEP 806: Mixed sync/async context managers with precise async marking
Hi all - after some earlier discussion, I’m pleased to present PEP 806 for discussion. It’s in most ways a very small proposal, which would make a surprisingly large difference for my code! Feedback,...
View ArticleIsort and ruff now support sorting PEP 810 (lazy) imports
Opening a new thread as PEP 810: Explicit lazy imports was closed. Moderators please move this to wherever is most appropriate, I couldn’t make up my mind… Thanks to some hard work by the community...
View ArticlePEP 832: virtual environment discovery
Python Enhancement Proposals (PEPs) PEP 832 – Virtual environment discovery | peps.python.org This PEP sets out to help make the discovery of a project’s virtual environment easier for tools by...
View ArticlePEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for...
Hi everyone! We are happy to announce PEP 831 – “Frame Pointers Everywhere” This PEP proposes building CPython with -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer by default starting in Python...
View ArticlePEP 830: Add timestamps to exceptions and tracebacks
This PEP adds an optional timestamp to all exceptions that records when the exception was instantiated with no observable overhead. When enabled via environment variable or command-line flag,...
View ArticlePEP 786: Precision and modulo-precision flag format specifiers for integer...
PEP 786 in a nutshell proposes to implement the format specifiers precision (.) and modulo-precision flag (z) for integer data fields in new-style PEP 3101 formatting. Precision (.) shall work in the...
View ArticlePEP 829: Structured Startup Configuration Files
Are you as tired of .pth file as I am[1]? Here’s my proposal for a more structured replacement. Thanks to @brettcannon and @emmatyping for their early feedback. Python Enhancement Proposals (PEPs) PEP...
View ArticlePEP 828: Supporting 'yield from' in asynchronous generators
Hello, I’ve written a PEP proposing support for yield from in async generators, as well as an async yield from statement. This is currently targeted towards 3.15, but with the beta freeze coming up...
View ArticlePEP 827: Type Manipulation
This is a discussion thread on PEP 827 – Type Manipulation. The motivation for this PEP comes from a gap between Python and TypeScript: Python has an incredibly dynamic and powerful runtime, while...
View Article