Simon Willison

Soft-deprecating re.match()

Python’s upcoming 3.15 release introduces a soft deprecation for the re.match() function, encouraging developers to avoid using it in new code. The function is now available under the clearer name re.prefixmatch(), which reflects its behavior of anchoring at the start of a string but not at the end. In most cases, re.search() or re.fullmatch() are recommended instead.

Simon Willison
Oct 12

Hello Python 3.15, goodbye 3.10, and now I can use 3.11

Python 3.15 introduces several new features, notably explicit lazy imports from PEP 810 that delay module loading until first use, and unpacking syntax in comprehensions (PEP 798) that simplifies flattening lists, sets, and dictionaries. The release also updates the profiling tools, renaming the tracing profiler to profiling.tracing and adding a new sampling profiler, profiling.sampling. These changes aim to improve performance and developer ergonomics in Python code.

Simon Willison
Aug 24

llm-anthropic 0.27

The release of llm‑anthropic 0.27 updates the Anthropic plugin for LLM to be compatible with the newly released anthropic v1.0.0 Python library, which has switched from httpx to httpx2. This mirrors a similar change made by OpenAI in their v3.0.0 release two weeks prior. The update includes a migration guide and a pull request that ensures tests pass after upgrading to anthropic>=1.

Simon Willison
Oct 10

Python 3.15.0 added to actions/python-versions

Python 3.15.0 has been added to the actions/python-versions repository. The author had been monitoring the repository for the release and used ChatGPT to automate the check. With the new version available, users can now include "3.15" in their GitHub Actions testing matrix to run tests against the latest Python release.

Simon Willison
Aug 25

EVE Online: The Move to Python 3 Begins!

EVE Online is beginning its transition to Python 3, a move that will involve using the futurize script on 2.4 million lines of code and a manual review of about 20,000 differences between Python 2 and Python 3. The company has historically run on Stackless Python since 2003, with the last major upgrade in 2010 to Stackless Python 2.7. While the announcement does not detail how Stackless will be replaced, the team previously showcased a shift away from Stackless in their Carbon engine for EVE Frontier, leveraging the open‑source carbonengine/scheduler library.

Simon Willison
Sep 18

Quoting Thariq Shihipar

The article announces that Claude Code will now support AGENTS.md files starting with version 2.1.277. If a CLAUDE.md file is absent in a folder, Claude will automatically look for and use AGENTS.md, leveraging Claude Code mods to customize the harness. The built‑in mod is available for use, and users can also create their own custom project instructions.

Simon Willison
Oct 7

Anti-Patterns in Software Blogging

The article "Anti-Patterns in Software Blogging" highlights common pitfalls in technical writing, such as meandering introductions, overestimating readers’ prior knowledge, and overusing links to avoid explanations. It emphasizes the importance of a clear, conversational voice and warns against the blandness that can arise when developers rely too heavily on AI-generated content. The piece urges bloggers to write in a natural, engaging style to better connect with their audience.

Simon Willison
Sep 11

Quoting Boris Cherny

The article discusses how production code generated by Claude, Anthropic’s AI, should meet higher standards than human-written code. Anthropic enforces this through numerous guardrails such as lint rules, extensive testing, Claude-driven end‑to‑end tests, daily fuzzers, automated code and security reviews, and automated refactoring. These measures aim to prevent the code from becoming difficult to maintain.

Simon Willison
Oct 13

web-edit 0.1a1

The article announces the release of web-edit version 0.1a1. It highlights performance optimizations that were written by Claude Opus 5.5, which were generated after feeding it a Python 3.15 profiling report created by GPT‑6 Astra. The release is tagged with "profiling" and "projects".

Simon Willison
Oct 16

Quoting Addy Osmani, Morgan Westlee Lunt, and Qing Wang

The article discusses a shift in code review practices, moving from a final gate to continuous review that functions like spellcheck during coding. It highlights how the Claude Code team uses the Claude AI to catch routine mistakes before human reviewers intervene, allowing developers to focus on higher-level issues. The piece references insights from Addy Osmani, Morgan Westlee Lunt, and Qing Wang on this evolving approach.

Simon Willison
Sep 1

Python 3.15.0 candidate 2 is here!

Python 3.15.0 candidate 2 has been released, marking the final release candidate for the upcoming 3.15 release scheduled for October. Hugo van Kemenade, the release manager, notes that only clear bug‑fix changes are allowed between this candidate and the final release, and urges third‑party maintainers to prepare wheels on PyPI and test their projects during this phase. The new RC is not yet available for GitHub Actions, but users can add it to their testing matrix using the allow‑prereleases and check‑latest flags to automatically test against the latest RC and then the stable release.