Serverless deployment guides and a type checker comparison
The handbook added seven serverless deployment guides this month, covering every major platform where a uv-managed Python service can run.
New on the handbook
- Running Python on Serverless is a decision guide for choosing between Lambda, Cloud Run, Vercel, Modal, Azure Container Apps, Fargate, and Hugging Face Spaces. It covers which platforms support GPUs, how
UV_COMPILE_BYTECODEcuts cold-start time, and when serverless is the wrong call. Platform-specific how-tos for Vercel, Google Cloud Run, and Modal live alongside it, along with Fargate, Fly.io, Azure Container Apps, and Hugging Face Spaces.
- ty vs Pyrefly: which Python type checker should you pick? The handbook recommends Pyrefly for most projects: it reached 1.0 in May, has built-in Pydantic and Django support, passes over 90% of the typing conformance suite, and ships migration tooling for mypy users.
- How to use marimo with uv. Three modes covered: sandboxed (
uvx marimo edit --sandbox notebook.pystores dependencies in PEP 723 inline metadata so the notebook is self-contained), ad-hocuvxsessions that run without any install, and project environments that share an existinguv.lock.
- How to configure Claude Code to run your pytest suite. A Stop hook that runs
uv run pytest -q --tb=shortafter every turn keeps Claude Code working until the suite passes. A/testslash command scopes runs to a file or marker.
- What is a Dependency Cooldown? explains the
exclude-newerpattern in uv: tell the resolver to ignore packages published in the last N days so malicious uploads have time to be caught and yanked before they reach your environment.
From the blog
- uv Solved the Packaging UX, Not Packaging. uv replaced pip, pip-tools, pyenv, pipx, and virtualenv. The unsolved problems (GPU wheels, external dependencies, lockfile standards) live in layers below the UX that uv consumes but doesn't control.
- uv Wants to Secure Your CLI Tools. A preview feature in 0.11.25 writes a
uv.lockfor each globally installed CLI tool, laying the groundwork for a futureuv tool audit. Project dependencies get lockfiles; globally installed Ruff and pre-commit will too.
- Pixi Can Now Build Packages From Source. pixi-build applies the PEP 517 backend model to conda packages: Python projects use
pyproject.tomland call uv internally; Rust projects readCargo.toml. SciPy, Xarray, and Dask are early adopters.
In the ecosystem
- Ruff 0.15.17 began rolling out human-readable rule names:
E501appears asline-too-longin suppression comments, CLI output, and rule selectors. A--add-ignorepreview flag (0.15.21) inserts them from the command line without manual comment editing. Release notes.
- ty 0.0.60 (July 16) adds Pydantic library support, including
populate_by_nameconfig and custom initializers, plus unified generic call inference and own-linety: ignoresuppression comments. Sixteen releases shipped in 30 days. Release notes.
- Python 3.15.0b3 (June 23) locks the feature set:
frozendictin the standard library, an updated JIT showing 8-9% geometric mean improvement on x86-64 Linux, and 195 bugfixes. RC1 is scheduled August 4, final release October 1. Release notes.
One thing worth trying
Add a 7-day cooldown to any project with a uv.lock. In pyproject.toml:
[tool.uv]
exclude-newer = "7 days"
Run uv lock. The resolver skips packages published in the last 7 days, which is enough window for PyPI's malware scanners to catch most supply-chain attacks. The cooldown converts to a concrete timestamp in uv.lock and stays frozen on later uv sync runs; it only moves on a fresh resolution.
Python Developer Tooling Handbook
This handbook is free, independent, and ad-free. If it saves you time, sponsor it on GitHub.
You can reply to this email. I read every response.
Don't miss what's next. Subscribe to Python Developer Tooling Handbook:
Share this email: