pydevtools.com blog

The uv build backend is now stable

uv build backend is now stable and really, really fast

Read more →

July 3, 2025

Managing Python Versions In Your uv Projects

One of the many ways the package manager uv has changed Python is by making it painless to install and run different versions of the Python interpreter. That said, I’ve occasionally gotten tripped up configuring this correctly in my development environments. I’ve written a few articles to try to clarify things: What is a .python-version file? Not unique to uv, a .python-version file specifies which Python version should be used for a particular project or directory. .python-version vs requires-python in pyproject.toml. The former is for development environments, while the latter is for package metadata. How to change the python version of a uv project. If uv run isn’t using the version of Python you expected or wanted, here is what you can do. The goal of the handbook is to help you understand the ecosystem of tools used to make Python development easier and more productive. What are some missing topics you’d like to see included?

Read more →

June 25, 2025

Comparison of the Two New Typecheckers

At PyCon 2025’s Typing Summit, participants saw the first demonstrations of Meta’s Pyrefly and Astral’s ty, two new Python type checkers with significant speed and analysis improvements. Edward Li helpfully took notes and provided a right-up. Here are some takeaways: Both tools show substantial speed gains Pyrefly claims up to 1.8 million lines/sec (35× faster than Pyre, 14× faster than MyPy/Pyright), while ty benchmarks show it running 2–3× faster than Pyrefly on real-world codebases. The tools differ in their approach to type inference

Read more →

May 28, 2025

Pyrefly: Meta's New Type Checker for Python

Meta has announced Pyrefly, a new static type checker built in Rust to deliver fast performance and scalability for large Python codebases. While inspired by Meta’s earlier tool Pyre, Pyrefly is not a rewrite: it’s a clean-slate implementation with a new type inference engine, a custom incremental computation model, and cross-platform support. Despite the maturity of tools like Mypy, Pyright, and Pyre, Meta found that scaling static analysis across massive codebases required a faster, more flexible foundation. Pyrefly is designed to deliver instant IDE feedback with strong type inference.

Read more →

April 30, 2025

Why uv makes Make less essential for Python projects

For years, I’ve been a strong advocate for using Makefiles in Python projects. They’ve provided a consistent interface for common tasks like environment setup (make venv), testing (make test), and code formatting (make format). But with the advent of uv, I’m reconsidering this approach. Make might be becoming less essential in the modern Python ecosystem. The Speed Factor One of Make’s traditional strengths is avoiding unnecessary work. A properly configured Makefile only rebuilds targets when dependencies change. This was valuable when setting up Python environments, for example:

Read more →

April 4, 2025

Early Explorations of Astral's Red Knot Type Checker

Update (May 5, 2025): Red Knot has been renamed ty. A recent blog post by Michael Jurasovic explores Astral’s upcoming static type checker, Red Knot. The tool is under active development with an alpha release targeted for PyCon 2025.

Read more →

April 3, 2025

The Python Tooling Revolution

Python development is experiencing a tooling revolution thanks to Astral’s ruff and uv. Lewis Gaul’s blog examines how these tools are transforming Python workflows with exceptional speed and intelligent design. When trying ruff check the benefits were immediately obvious: performance is incredible, provides a superset of the pylint rules, reporting of errors is very clear, configuration is straightforward, documentation is excellent…and above all else the –fix flag is a huge win to automatically fix certain rule violations.

Read more →

April 2, 2025

Simple, Modern Python

Joshua Levy recently shared his enthusiasm for uv, Astral’s Python package manager, along with a practical template for new projects using this tool. His thread on X highlights both technical advantages and philosophical approaches to modern Python development. Key Points from Levy’s UV Template Levy has created a simple-modern-uv, Copier template that combines minimal but essential tools for Python projects: Uses uv for package management Incorporates ruff for linting and formatting (replacing Black and isort) Includes mypy, codespell, and pytest Provides GitHub Actions configuration Uses Copier for template management Why uv Matters Beyond Speed While uv’s performance is impressive, Levy emphasizes that its real value lies in dependency management fundamentals:

Read more →

April 1, 2025

Setuptools 78.0.1 breaking package installation

Update: Setuptools released version 78.0.2 postponing this breaking change. A recent update to setuptools (version 78.0.1) is breaking installations of many packages, particularly older or unmaintained ones that use dash-separated keys instead of the now-required underscore format.

Read more →

March 24, 2025

Dependabot Now Supports uv

As of March 13, 2025, Dependabot officially supports uv. Dependabot monitors repositories for outdated or insecure dependencies and creates pull requests to update them. GitHub’s tool supports npm, pip, Maven, Docker, and now uv.

Read more →

March 14, 2025