On modern Python development
In this post, I want to share my current project setup for writing modern Python with static typing and good tooling. The setup is basically: uv for the project and dependency management. mise to install tools (notably uv), auto-activate the virtual environment, and define common tasks. ruff to do formatting and linting. pyrefly to do type checking. Proper setup in a CI pipeline. I’ve spent a lot of time writing Python code during my career. I think the first time I wrote Python may have been around 2007, so almost 20 years now. I always liked it, but with the modern setup, I find I like it even more. The static type checking is something I particularly like, and I think its value has only increased in the modern era of coding agents. ...