PEP 848: Generational Incremental Garbage Collection
tldr: Replaces the current generational-only cycle GC with a generational-incremental GC with lower overhead. Much faster: 3-5% speedup on pyperformance Shorter pause times: How much shorter depends...
View ArticlePEP 849: More Expressive Type Expressions
I’m excited to present PEP 849, which adds some new background capabilities to the way type annotations are processed in order to let us use arbitrary expressions while maintaining runtime...
View ArticlePEP 824: None-coalescing operators
Building on the ideas from PEP 505 and after many discussions over the years, I’m happy to present PEP 824: None-coalescing operators. Please be sure to also check out the discussion for the companion...
View ArticlePEP 823: None-aware access operators
Building on the ideas from PEP 505 and after many discussions over the years, I’m happy to present PEP 823: None-aware access operators. Please be sure to also check out the discussion for the...
View ArticlePEP 846: Docstrings for Type Aliases
I am pleased to present PEP 846, a well-received idea to recognize docstrings of type aliases in Python. What I like the most about it is that it looks like an easy win for the language. It’s focused,...
View ArticlePEP 845: Leading-Dot Value Patterns
For your consideration: PEP 845, with the following abstract: This PEP enables the use of non-attribute names as value patterns in match statements. A name prefixed with a dot is looked up using the...
View ArticlePEP 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 Article