[KongchangAI]
ProductPython 3.15

Python 3.15

A future version of the Python programming language whose interpreter behavior changes may affect the distribution of code performance hotspots.

Timeline (last 90 days)

Oct 14

Python 3.15 is officially released, and this update includes new features such as lazy imports, the Sentinel type, unpacking operators in comprehensions, and frozen dictionaries.

Unverified50%
Oct 14

Python 3.15 includes performance improvements from an experimental JIT compiler, error message optimizations, a statistical sampling profiler, and support for additional entry types in typed dictionaries.

Unverified50%
Oct 14

A frozen dictionary (frozendict) is an immutable dictionary; once created, it does not support assignment operations, and any attempt to modify it will throw an exception.

Unverified50%
Oct 14

Python 3.15 introduces the Sentinel type, allowing developers to define sentinel values with explicit names, such as MISSING = Sentinel("MISSING") and EMPTY = Sentinel("EMPTY").

Unverified50%
Oct 14

Lazy imports do not change import semantics, only the timing at which imports occur; behavior differences may arise in code that depends on import side effects or in situations where module attributes are accessed early in type checking or reflection scenarios.

Unverified50%
Oct 13

Python has long lacked an official built-in, low-overhead, and easily visualized performance analysis method, and developers often rely on third-party tools such as py-spy; 3.15 brings sampling profiling capability into the standard library, lowering the barrier to performance tuning.

Unverified50%
Oct 13

Recommended workflow: use the 3.15 sampling profiler to collect data, generate a flame graph to locate macroscopic bottlenecks, then use a source heatmap to pinpoint code lines precisely.

Unverified50%
Oct 12

Developers only need to add "3.15" to python-version in their GitHub Actions test matrix to use Python 3.15 in CI.

Unverified50%
Oct 12

Python 3.15's sampling profiler supports a mode that attaches to an already running process, which requires the target process's PID as an entry parameter.

Unverified50%
Oct 12

Simon Willison says the purpose of datasette-ports displaying PIDs is to make it more convenient for users to attach the new profiler introduced in Python 3.15 to running Datasette processes.

Unverified50%

23 more timeline events

All Facts (20)

Unverified

Hugo van Kemenade serves as the release manager for both Python 3.14 and 3.15.

60%
Unverified

Python 3.15 plans to unify the default encoding to UTF-8 via PEP 686.

60%
Unverified

Python 3.15 includes performance improvements from an experimental JIT compiler, error message optimizations, a statistical sampling profiler, and support for additional entry types in typed dictionaries.

50%
Unverified

Lazy imports do not change import semantics, only the timing at which imports occur; behavior differences may arise in code that depends on import side effects or in situations where module attributes are accessed early in type checking or reflection scenarios.

50%
Unverified

Python 3.15 introduces the Sentinel type, allowing developers to define sentinel values with explicit names, such as MISSING = Sentinel("MISSING") and EMPTY = Sentinel("EMPTY").

50%
Unverified

A frozen dictionary (frozendict) is an immutable dictionary; once created, it does not support assignment operations, and any attempt to modify it will throw an exception.

50%
Unverified

Python has long lacked an official built-in, low-overhead, and easily visualized performance analysis method, and developers often rely on third-party tools such as py-spy; 3.15 brings sampling profiling capability into the standard library, lowering the barrier to performance tuning.

50%
Unverified

Recommended workflow: use the 3.15 sampling profiler to collect data, generate a flame graph to locate macroscopic bottlenecks, then use a source heatmap to pinpoint code lines precisely.

50%
Unverified

Developers only need to add "3.15" to python-version in their GitHub Actions test matrix to use Python 3.15 in CI.

50%
Unverified

Python 3.15's sampling profiler supports a mode that attaches to an already running process, which requires the target process's PID as an entry parameter.

50%
Unverified

Simon Willison says the purpose of datasette-ports displaying PIDs is to make it more convenient for users to attach the new profiler introduced in Python 3.15 to running Datasette processes.

50%
Unverified

Python 3.15 introduces a sampling-based profiler that captures call stack snapshots at a fixed frequency, has little impact on program performance, and is suitable for analyzing long-running services.

50%
Unverified

In Python 3.15, the What's New guide was curated by Hugo van Kemenade, release manager for 3.14 and 3.15.

50%
Unverified

According to developer Miguel Grinberg's tests on 3.15.0rc3, Python 3.15's overall performance is basically on par with 3.14, with the experimental JIT the only exception.

50%
Unverified

The process of upgrading to Python 3.15 with uv includes: uv self update, uv python install 3.15, uv python pin --global 3.15.

50%
Unverified

Python 3.15 includes the explicit lazy imports feature from PEP 810, which allows module imports to be deferred using the lazy import syntax.

50%
Unverified

Once the RC stage begins, only reviewed code changes that are clearly bug fixes are permitted to be merged into the main branch, and no new features are added.

50%
Unverified

Any binary wheel compiled against a Python 3.15.0 RC release will be compatible with all future Python 3.15.x versions.

50%
Unverified

Python 3.15 is officially released, and this update includes new features such as lazy imports, the Sentinel type, unpacking operators in comprehensions, and frozen dictionaries.

50%
Unverified

Python 3.15 adds the sampling profiler Tachyon (profiling.sampling) to the standard library and renames the existing tracing profiler cProfile to profiling.tracing.

50%

Source Articles