After years of community requests, Python is finally getting frozendict. The Steering Council accepted PEP 814 in February, bringing an immutable, hashable dictionary as a built-in type in Python 3.15. It’s one of those additions that feels overdue, and the frozenset-to-set analogy makes it immediately intuitive. This is just one piece of a busy month of Python news.
Beyond that, February brought security patches, AI SDK updates, and some satisfying infrastructure improvements under Python’s hood. Time to dive into the biggest Python news from the past month!
Join Now: Click here to join the Real Python Newsletter and you’ll never miss another Python tutorial, course, or news update.
Python Releases and PEP Highlights
The Steering Council was active in February, with several PEP decisions landing. On the release side, both the 3.14 and 3.13 branches got maintenance updates.
Python 3.15.0 Alpha 6: Comprehension Unpacking and More
Python 3.15.0a6 shipped on February 11, continuing the alpha series toward the May 5 beta freeze. This release includes several accepted PEPs that are now testable:
- PEP 798: Unpacking in comprehensions using
*and** - PEP 799: A high-frequency, low-overhead statistical sampling profiler
- PEP 686: UTF-8 as the default text encoding
- PEP 728:
TypedDictwith typed extra items
PEP 798 is the kind of quality-of-life improvement that makes you smile. It lets you flatten or merge collections directly in a comprehension:
>>> lists = [[1, 2], [3, 4], [5]]
>>> [*it for it in lists]
[1, 2, 3, 4, 5]
>>> dicts = [{"a": 1}, {"b": 2}]
>>> {**d for d in dicts}
{'a': 1, 'b': 2}
No more writing explicit loops just to concatenate a list of lists.
The JIT compiler continues to show gains: 3-4% on x86-64 Linux over the standard interpreter and 7-8% on AArch64 macOS over the tail-calling interpreter, matching the numbers from alpha 5.
Note: Alpha 7 is scheduled for March 10, 2026, with the beta phase starting May 5. If you maintain packages, now is a great time to test against early builds.
Python 3.14.3 and 3.13.12: Maintenance Releases
On February 3, the team shipped Python 3.14.3 with around 300 bug fixes and Python 3.13.12 with about 240 fixes. No new features here, but if you’re running either version in production, it’s worth grabbing these patches to stay current.
PEP 814 Accepted: frozendict Joins the Built-Ins
This one has been on many Python developers’ wishlists for over a decade. PEP 814, authored by Victor Stinner and Donghee Na, adds frozendict as a built-in immutable dictionary type in Python 3.15.
The concept is straightforward. Just as frozenset gives you an immutable version of set, frozendict gives you an immutable version of dict:
>>> config = frozendict(host="localhost", port=8080)
>>> config["host"]
'localhost'
>>> config["host"] = "0.0.0.0"
Traceback (most recent call last):
...
TypeError: 'frozendict' object does not support item assignment


