Python 3.15 makes UTF-8 the default encoding and adds explicit lazy imports
Python 3.15.0 came out on October 9, 2026. Files opened without an explicit encoding are now read and written as UTF-8 on every system, and a new lazy import statement defers loading a module until it is used. The release also adds frozendict and a sampling profiler.
The Python Software Foundation released Python 3.15.0 on October 9, 2026. Two changes matter most for existing code. UTF-8 is now the default text encoding regardless of the operating system's settings, and a new lazy import statement lets a program put off loading a module until it first uses it, which can shorten startup time.
The change that can affect existing code
Under PEP 686, a call such as open("notes.txt") without an encoding argument now uses UTF-8 instead of whatever the system environment says. The Python documentation recommends always passing an explicit encoding. Projects that need the old behavior can turn UTF-8 mode off with PYTHONUTF8=0 or -X utf8=0.
This suggests the change is most visible on Windows, where the system encoding has often not been UTF-8: code that read or wrote files in the local encoding may now handle the same files differently.
Lazy imports and other additions
PEP 810 adds the lazy keyword. With lazy import json, Python does not load the module until the name is first accessed. The keyword works only at module level, and -X lazy_imports=all or PYTHON_LAZY_IMPORTS=all makes every import lazy.
The release adds two built-in types: frozendict, an immutable dictionary that is hashable when its contents are, and sentinel, for unique marker values. Comprehensions now support unpacking, and a new profiling package includes Tachyon, a high-frequency sampling profiler. The old profile module is deprecated and scheduled for removal in Python 3.17.
According to the release page, the experimental JIT compiler is 7 to 8% faster than the standard interpreter on x86-64 Linux and 11 to 12% faster than the tail-calling interpreter on AArch64 macOS, measured as a geometric mean. The official macOS installers now include free-threading support by default, and PEP 803 gives free-threaded builds a stable ABI.
Before upgrading
The release page warns that IDLE and other tkinter applications may hang when opening dialogs on macOS 27.0, and it suggests waiting with that macOS upgrade until a workaround is available. Python 3.15 gets bug-fix releases about every two months for two years and security fixes until about October 2031.
Sources
Related

Deno's team joins Cloudflare, and the Deno runtime gets one more year of updates
Ryan Dahl announced on October 9, 2026 that the whole Deno team is moving to Cloudflare. The Deno runtime will get monthly fixes for one more year before development ends, and Deno Deploy will shut down after six months. JSR keeps running.
Denoverified

Anthropic's OSS Scanner sends open-source maintainers free vulnerability reports that no human has reviewed
Anthropic launched OSS Scanner on October 8, 2026, an opt-in service that scans eligible open-source projects with its strongest models, including Claude Mythos, at no cost. Each report includes a reproducer, an explanation, and a candidate patch when one exists, but no person checks it before it is sent. Anthropic says it expects more than 90% of findings to be real.
Anthropicverified
Google opens the SynthID detector to everyone, and it now reads OpenAI, NVIDIA, and Kakao watermarks too
On October 7, 2026, Google DeepMind made its SynthID Detector available to anyone, worldwide and in English, at synthid.com. The tool reports whether an image, video, or audio file carries a SynthID watermark from Google or from its partners OpenAI, NVIDIA, and Kakao, with Apple listed as coming soon. According to Ars Technica, you sign in with a Google, ChatGPT, or Apple account and get roughly 10 checks a day. A negative result does not mean the file is authentic.
Google DeepMindverified
