Python 313 Release Notes Verified Jun 2026

Typing sees less dramatic changes in 3.13 compared to 3.12, but there are key refinements:

Python 3.13 follows PEP 602's two-year full support policy, with active support until October 2026 and security-only support until October 2029. The first maintenance release (3.13.1) contained over 300 bugfixes, build improvements, and documentation corrections, with subsequent patch releases continuing at roughly two-month intervals.

For the first time, developers can run CPython with the .

For most developers, upgrading to Python 3.13 is safe verifying that your dependencies don’t rely on removed modules. The performance improvements in asyncio and json alone make it worthwhile.

Continuing the work of the "Faster CPython" initiative, 3.13 introduces a . python 313 release notes verified

python -q # Quiet mode, then try: >>> def foo(): ... print("Hello") # note syntax highlighting ... >>> [key for key in range(5)] # multiline editing works

The garbage collector has been enhanced to work more efficiently in the free-threaded build, though further improvements are expected in future releases.

Python 3.13 takes code debugging further by offering natively. If a token is misspelled, or an assignment falls out of local visibility scopes, the tracebacks actively guide developers toward matching variables or valid functions directly inside the terminal UI. Local Scoping Semantics (PEP 667)

Traditionally, the GIL prevented multiple threads from executing Python bytecodes at once. Typing sees less dramatic changes in 3

Type parameters for generic classes, functions, and type aliases can now have default values. This eliminates duplicate code blocks for common use cases.

if sys.version_info >= (3, 13): # Python 3.13+ specific code pass else: # Fallback for older versions pass

introduces default values for type parameters. TypeVar , ParamSpec , and TypeVarTuple now accept a default argument, simplifying generic class definitions. This aligns the typing system with function parameters, where defaults have long been standard.

Verified: Use locale.getlocale()[1] or sys.getfilesystemencoding() instead. Cleanup of legacy encoding assumptions. For most developers, upgrading to Python 3

A modified version of Microsoft's mimalloc allocator is now included and automatically enabled when building with free-threading support, addressing the concurrency-related memory management challenges that arise when the GIL is removed.

Traceback (most recent call last): File "script.py", line 4, in process_data(vlaue=10) ^^^^^ TypeError: process_data() got an unexpected keyword argument 'vlaue'. Did you mean: 'value'?

The community has been actively testing and verifying these claims. Projects like "gil-vs-no-gil" on GitHub provide reproducible frameworks for developers to benchmark Python 3.13 (with GIL) against Python 3.13t (without GIL), demonstrating the clear performance benefits for multi-threaded, CPU-intensive code when the GIL is removed.

Continuing the trend from recent releases, Python 3.13 improves compiler diagnostics to save developer debugging time. Key Enhancements