
Python 3.15 reached Beta 1 in June 2026, locking in its feature set for the final release. The biggest addition is a new sentinel built-in that standardizes a pattern Python developers have been building by hand for decades.
The Sentinel Built-in
Until now, developers created sentinel values using classes, enums, or singleton objects to represent “no value provided” or “default not set” states. The new sentinel built-in replaces all of those with a single, standardized approach. It creates lightweight, identity-based singleton values that compare by reference rather than equality, which is exactly how most hand-rolled sentinels already worked.
This is the kind of change that doesn’t make headlines but cleans up thousands of codebases. Library authors who previously defined custom sentinel classes can now use the built-in version, reducing boilerplate and eliminating subtle bugs where two different sentinel implementations might accidentally compare equal.
PEP 829: Tail Call Optimization
The Steering Council cleared a backlog of proposals before the feature freeze. PEP 829, which enables tail call optimization in the CPython interpreter, graduated from draft to accepted status. This change allows Python to optimize certain recursive function calls into loops internally, preventing stack overflow errors on deeply recursive code without requiring developers to rewrite their algorithms.
Astral’s ty: Type Checking at Rust Speed
Outside of CPython itself, the most significant Python tooling development is ty, Astral’s new type checker. Now in beta, ty delivers results 10 to 100 times faster than mypy and Pyright on uncached runs.
Astral, the company behind the Ruff linter and uv package manager, built ty in Rust. The type checker supports intersection types, advanced type narrowing, and reachability analysis that catches bugs other checkers miss. Its diagnostic messages draw inspiration from the Rust compiler’s error reporting, pulling context from multiple files to explain not just what’s wrong but why.
ty also functions as a language server, providing IDE features like auto-completion, hover documentation, and go-to-definition. This dual role as both type checker and LSP means developers get one tool instead of two.
Other Python Ecosystem Updates
Pyrefly, Meta’s Python type checker, reached version 1.0 in June. Pydantic forked the httpx HTTP client library, sparking one of the more discussed governance conversations in the Python community this year. Django 6.1 entered alpha, and Pydantic AI v2 launched alongside PyTorch 2.12.
On the AI tooling front, researchers used AI to hunt for bugs in CPython’s C extensions and in Firefox, producing hundreds of bug fixes in both projects. The general pattern among professional developers now combines AI-powered editors for daily work with Claude Code in the terminal for complex refactoring.
Frequently Asked Questions
What is the new sentinel built-in in Python 3.15?
The sentinel built-in creates lightweight, identity-based singleton values for representing “no value” or “default not set” states. It replaces custom sentinel classes and enums that developers previously hand-rolled.
What is ty and how fast is it?
ty is Astral’s new Python type checker and language server, now in beta. It runs 10 to 100 times faster than mypy and Pyright on uncached runs while supporting intersection types, advanced narrowing, and multi-file diagnostics.
When will Python 3.15 be released?
Python 3.15 entered Beta 1 in June 2026 with its feature set frozen. The final release is expected later this year, with the bugfix period following the beta phase.
What is PEP 829?
PEP 829 enables tail call optimization in CPython, allowing certain recursive function calls to be internally converted to loops. This prevents stack overflow errors on deeply recursive code without requiring manual rewriting.
How does Pyrefly differ from ty?
Pyrefly is Meta’s Python type checker that reached version 1.0 in June 2026. ty is Astral’s type checker built in Rust, focusing on extreme speed (10-100x faster than mypy). Both are alternatives to mypy and Pyright but with different design goals.
