Skip to content

Python Tooling Blog

ty: Astral's New Python Type Checker Released

Astral releases ty, a Rust-based Python type checker that's 20x faster than mypy with advanced type narrowing and incremental checking.

Read more →

December 16, 2025

Teaching LLMs Python Best Practices

LLMs default to outdated Python patterns. The handbook provides llms.txt and structured context to teach AI assistants modern tooling.

Read more →

November 21, 2025

Claude Code Hooks for uv Projects

Configure Claude Code hooks to prevent pip and python commands and enforce uv usage in your Python projects.

Read more →

November 11, 2025

Sync with uv: Eliminate Pre-commit Version Drift

sync-with-uv automatically synchronizes tool versions between uv.lock and .pre-commit-config.yaml to prevent version drift.

Read more →

September 26, 2025

Analysis of the New Wave of Python Type Checkers

Rob Hand compares three Rust-based Python type checkers: ty (Astral), pyrefly (Meta), and zuban, covering performance and tradeoffs.

Read more →

September 17, 2025

prek: pre-commit, but fast

prek is a Rust-based drop-in replacement for pre-commit that runs 10x faster while using half the disk space.

Read more →

September 16, 2025

uv format: Code Formatting Comes to uv (experimentally!)

uv 0.8.13 adds experimental uv format command that runs Ruff's formatter, similar to how cargo fmt wraps rustfmt.

Read more →

August 21, 2025

Google Sunsets Pytype: The End of an Era for Python Type Checking

Google ends Pytype support after Python 3.12. The bytecode-based type checker couldn't keep up with modern typing and IDE requirements.

Read more →

August 21, 2025

ty's Breakthrough: Why Incremental Analysis Matters for Python

Charlie Marsh explains ty's incremental analysis system that recomputes only affected code when files change, from file-level to function-level.

Read more →

August 11, 2025

How Python's RFC Process Paved the Way for uv, Ruff, and Ty

How PEP standards enabled Astral to build ruff, uv, and ty that work seamlessly within the Python ecosystem without being part of core.

Read more →

August 1, 2025