Python 3.15.0 alpha 7

This is an early developer preview of Python 3.15

Major new features of the 3.15 series, compared to 3.14

Python 3.15 is still in development. This release, 3.15.0a7, is the seventh of eight planned alpha releases.

Alpha releases are intended to make it easier to test the current state of new features and bug fixes and to test the release process.

During the alpha phase, features may be added up until the start of the beta phase (2026-05-05) and, if necessary, may be modified or deleted up until the release candidate phase (2026-07-28). Please keep in mind that this is a preview release and its use is not recommended for production environments.

Many new features for Python 3.15 are still being planned and written. Among the new major new features and changes so far:

  • PEP 810: Explicit lazy imports
  • PEP 814: frozendict built-in type
  • PEP 799: A new high-frequency, low-overhead, statistical sampling profiler and dedicated profiling package
  • PEP 798: Unpacking in comprehensions with * and **
  • PEP 686: Python now uses UTF-8 as the default encoding
  • PEP 728: TypedDict with typed extra items
  • PEP 747: Annotating type forms with TypeForm
  • PEP 782: A new PyBytesWriter C API to create a Python bytes object
  • The JIT compiler has been significantly upgraded, with 3-4% geometric mean performance improvement on x86-64 Linux over the standard interpreter, and 7-8% speedup on AArch64 macOS over the tail-calling interpreter
  • Improved error messages
  • (Hey, fellow core team member, if a feature you find important is missing from this list, let Hugo know.)

The next pre-release of Python 3.15 will be 3.15.0a8, currently scheduled for 2026-04-07.

More resources

And now for something completely different

And thus, while the one ship went cheerily before the breeze, the other
stubbornly fought against it; and so the two vessels parted; the crew
of the Pequod looking with grave, lingering glances towards the
receding Bachelor; but the Bachelor’s men never heeding their gaze for
the lively revelry they were in. And as Ahab, leaning over the
taffrail, eyed the homeward-bound craft, he took from his pocket a
small vial of sand, and then looking from the ship to the vial, seemed
thereby bringing two remote associations together, for that vial was
filled with Nantucket soundings.

Enjoy the new release

Thanks to all of the many volunteers who help make Python development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the Python Software Foundation.

Regards from Helsinki as spring melts the snow,

Your release team,
Hugo van Kemenade @hugovk
Ned Deily @nad
Steve Dower @steve.dower
Łukasz Langa @ambv

14 Likes

I have a question: for many releases every changelog was ordered in something which seemed quite a logical order for me: Security, Core, Library, Docs, Tests, Mac, Windows (or roughly in that style); from the most important to the least. From sometime in the last year (?) the order turned around. Is there some reason for it? It doesn’t make much sense to me. We, at openSUSE are proud to have large changelogs, so I usually copy and re-edit whole thing to our package changelog, and I am now seriously contemplating writing a script which would turn the order of those subsections around. Can somebody explain me what’s going on, please?

Thank you

2 Likes

Thanks for the report, that’s a bug in our news tool, blurb. I’ve opened a fix at python/blurb#75.

5 Likes
3 Likes

CI Images auto-updated.

3 Likes

Yeah, yeah, you don’t need to brag about how you don’t have to lift a finger while I still have artisanal releases done by me clicking buttons. :wink:

13 Likes

Wait til I get GitLab to auto-post that it auto updated! :grin:

7 Likes

I didn’t even know this release was going on - ask me about my automation :laughing:

6 Likes

I don’t need to because hopefully my automation will be Savannah. :grin:

2 Likes