Hello Python 3.15, goodbye 3.10, and now I can use 3.11
- ID
- 34595
- Status
- summarized
- Published
- 13 Oct 2026, 2:15 AM
- Fetched
- 13 Oct 2026, 2:42 AM
- Provider
- Simon Willison
- Category
- developer-ai
- Original URL
- https://simonwillison.net/2026/Oct/12/python-3-15/
- Source URL
- https://simonwillison.net/atom/everything/
Summary
- Score
- 8.0
- Created
- 13 Oct 2026, 2:42 AM
- Tags
- Audience
- developersai_ml_learnersai_agent_users
What happened
Simon Willison summarizes Python 3.15: explicit lazy imports via PEP 810 let code write `lazy import json` and `lazy from pathlib import Path`, unpacking in comprehensions via PEP 798 adds `[*L for L in lists]`-style flattening, and the standard library gains a sampling profiler, `profiling.sampling` / Tachyon, while the old tracing profiler is renamed `profiling.tracing`. He notes that as someone supporting every Python version, he can now say goodbye to 3.10 and start using 3.11 features.
Why it matters
If you maintain a Python CLI with plugins, lazy imports directly target a costly issue he names: installing plugins that pull in heavy dependencies like `sentence_transformers` could add multiple seconds to every `llm` command invocation. The new sampling profiler also means you can try attaching to a running Python 3.15 process with `sudo uv run --python 3.15 python -m profiling.sampling attach 1234` instead of reaching for py-spy first. There is no Malaysia-specific policy, funding, or infra detail in this text; the practical impact is Python toolchain upgrade and plugin import hygiene.
Discussion angle
Which Python 3.15 feature would change your stack first: lazy imports to cut plugin-heavy CLI startup, or the stdlib sampling profiler replacing tools like py-spy? And what is your trigger for dropping Python 3.10/3.11 support in your own projects?