pydevtools.com blog
Analysis of the New Wave of Python Type Checkers
Rob Hand’s comparison of emerging type checkers is the first comprehensive look at three new Rust-based tools: ty (Astral), pyrefly (Meta), and zuban (David Halter). Key Findings Performance drives the rewrite. All three abandon Python implementations for Rust, targeting the bottlenecks that slow existing checkers on large codebases. Conformance scores don’t predict usefulness. ty passes only 15% of the typing conformance suite’s tests but works well for everyday Python. The suite apparently focuses on edge cases most developers never hit.
September 17, 2025
prek: pre-commit, but fast
pre-commit is an essential tool in my development workflow for running ruff and [other tools. However, nobody wants to wait for their commits to be saved, and pre-commit isn’t always the fastest. prek is a Rust-based drop-in replacement that runs 10x faster while using half the disk space. Replacing pre-commit with prek is painless: Install with uv tool install prek Run pre-commit uninstall && prek install That’s it. No configuration changes, no compatibility issues.
September 16, 2025
uv format: Code Formatting Comes to uv (experimentally!)
The latest uv release (0.8.13) quietly introduced an experimental new command that Python developers have been waiting for: uv format. This addition brings code formatting directly into uv’s toolkit, eliminating the need to juggle multiple tools for basic Python development workflows. What is uv format? The uv format command provides Python code formatting through uv’s interface. Under the hood, it calls Ruff’s formatter to automatically style your code according to consistent standards.
August 21, 2025
Google Sunsets Pytype: The End of an Era for Python Type Checking
Google announced that Pytype, their Python static type checker, will end support with Python 3.12. After 13 years of development, Google is shifting resources toward “new typing approaches” rather than continuing to maintain their bytecode-based analyzer. Pytype’s fundamental architecture became its limitation. Built on bytecode analysis, the tool struggled with Python’s evolving type system. As Google noted, “bytecode’s inherent instability and propensity to change” made implementing new typing PEPs increasingly difficult.
August 21, 2025
ty's Breakthrough: Why Incremental Analysis Matters for Python
In a recent PyBytes podcast interview, Astral’s Charlie Marsh shared insights into what makes their new type checker ty unique and how it aims to address longstanding challenges in Python type checking. What is ty? ty serves dual purposes: it functions as a standalone command-line type checker (similar to mypy) and as a language server that powers IDE features like go-to-definition, code completion, and real-time diagnostics. “We wanted to build a great type checker and a great language server, and they have things that are in common but they also have very different requirements,” Marsh explained. “If you don’t think about both of those from the start, you end up in a little bit of trouble.”
August 11, 2025
How Python's RFC Process Paved the Way for uv, Ruff, and Ty
Astral, an independent startup, has taken the Python world by storm over the last few years with three fast, robust Python developer tools: ruff (linter and formatter) uv (packaging and project management) ty (static type checker, still under development) These tools came from the mind of Charlie Marsh, who is neither a Python core developer nor directed by the Python Steering Council. While being independently developed, these tools work seamlessly within the established Python ecosystem. This success is in part due to Astral’s attention to the guidelines extablished by the Python Enhancement Proposal (PEP) process over the last twenty-five years
August 1, 2025
Interview with the Pybites podcast
Bob Belderbos invited me on the Pybites podcast where I talked about the handbook, uv, and more. I hope you enjoy it.
July 30, 2025
Use Interceptors to teach Claude Code to use uv
AI coding agents like Claude Code, Cursor, or GitHub Copilot often default to using system Python interpreters instead of using uv. Armin Ronacher, creator of Flask and Jinja, shared an elegant solution to this problem: creating dummy Python interpreter that actively redirect AI agents toward better tooling choices. Tip
July 28, 2025
uvhow: Get uv upgrade instructions for your uv install
I’ve released uvhow, a simple command-line tool that detects how uv was installed on your system and provides the correct upgrade instructions. uv can be installed through multiple methods. When it’s time to upgrade, users often struggle to remember which installation method they used, leading to confusion about the correct upgrade command. uvhow automatically detects your uv installation method and tells you exactly how to upgrade: uvx uvhow The tool works across Windows, macOS, and Linux and supports all major installation methods including:
July 22, 2025
uv 0.8 Release: Automatic Python Installation to PATH
Tip Check out our guide to upgrading uv uv 0.8 stabilizes one of the most significant workflow improvements in Python tooling: automatic installation of Python executables to your PATH. This means you can finally install Python versions with uv python install and use them system-wide without wrestling with environment activation.
July 19, 2025