Python Developer Tooling Handbook logo

Python Developer Tooling Handbook

Archives
Subscribe
July 17, 2026

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_BYTECODE cuts 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.py stores dependencies in PEP 723 inline metadata so the notebook is self-contained), ad-hoc uvx sessions that run without any install, and project environments that share an existing uv.lock.
  • How to configure Claude Code to run your pytest suite. A Stop hook that runs uv run pytest -q --tb=short after every turn keeps Claude Code working until the suite passes. A /test slash command scopes runs to a file or marker.
  • What is a Dependency Cooldown? explains the exclude-newer pattern 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.lock for each globally installed CLI tool, laying the groundwork for a future uv 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.toml and call uv internally; Rust projects read Cargo.toml. SciPy, Xarray, and Dask are early adopters.

In the ecosystem

  • Ruff 0.15.17 began rolling out human-readable rule names: E501 appears as line-too-long in suppression comments, CLI output, and rule selectors. A --add-ignore preview 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_name config and custom initializers, plus unified generic call inference and own-line ty: ignore suppression comments. Sixteen releases shipped in 30 days. Release notes.
  • Python 3.15.0b3 (June 23) locks the feature set: frozendict in 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:
← Newer Ruff 0.16.0 enables 413 rules by default, plus Docker and ty tutorials Older → uv 0.11.18 previews uv check, mypy 2.0 adds parallelism, plus a complete-stack tutorial
Share this email:
Share on Twitter Share on LinkedIn
book
Twitter
LinkedIn
tdhopper.com
Powered by Buttondown, the easiest way to start and grow your newsletter.