2025 — Python News Today Release 3.13 November

>>> my_list = [1, 2, 3] >>> my_list[5] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range >>> explain Suggestion: You tried to access index 5 of a 3-element list. Valid indices are 0, 1, 2. Did you mean my_list[2]?

The Steering Council chose sub-interpreters over a GIL-less build (still available as --disable-gil for the brave) because sub-interpreters maintain full C-extension compatibility – a critical requirement for the scientific and data science ecosystems (NumPy, Pandas, TensorFlow all work unchanged). Takeaway: For CPU-bound workloads, rewrite your multiprocessing code to use interpreters.Pool . For I/O-bound tasks, asyncio remains king. 2. JIT Compilation Graduates from Experimental (PEP 744) PEP 744 , the Copy-and-Patch JIT compiler introduced as an experiment in Python 3.13 beta, is now enabled by default on x86-64 and ARM64 builds. python news today release 3.13 november 2025

Nearly two years in the making, Python 3.13 builds upon the revolutionary foundations of 3.11 ("Faster CPython"), 3.12 ("More typing and better errors"), and the experimental 3.13 prereleases. With over 400 new commits, three major PEPs (Python Enhancement Proposals), and a host of stability improvements, this release marks the moment where "Python performance" stops being an oxymoron. "Python 3.13 is what happens when a community decides that slow is a choice, not a destiny." – RealPython Editorial Team, November 2025 Let’s dive into the headline features, the subtle breaking changes, and why you should upgrade your production environment before the end of the quarter. The single most anticipated feature of Python 3.13 is the production-ready stabilization of sub-interpreters , as defined by PEP 734 (a refinement of the earlier PEP 554). &gt;&gt;&gt; my_list = [1, 2, 3] &gt;&gt;&gt; my_list[5]

from typing import TypedDict, ReadOnly class Point(TypedDict): x: ReadOnly[int] y: int The Steering Council chose sub-interpreters over a GIL-less

Why? Because hundreds of C extensions (including numpy , cryptography , lxml ) are not yet thread-safe without the GIL. However, the Python team expects GIL-free builds to become fully supported by .

When an uncaught exception occurs in the REPL or a Jupyter notebook, you can now type explain to get an AI-generated (local, privacy-safe) explanation of the error, possible causes, and a fix snippet.

If you want to experiment: