pydevtools.com blog

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

Why Doesn't the Authoritative Python Packaging Guide Mention the Best Thing that's Happened to Python Packaging?

Despite uv’s meteoric rise and widespread adoption in the Python community over the last year, the excellent and official Python Packaging User Guide (PPUG) at packaging.python.org makes no mention of it. Understanding why this is requires some background knowledge and unveils understanding of the modern Python developer tooling ecosystem. uv’s Rise Since its introduction in early 2024, uv has rapidly gained traction as a high-performance alternative to existing Python tooling. uv delivers 10-100x faster package operations than traditional tools while consolidating functionality previously spread across multiple utilities (pip, pip-tools, virtualenv, pyenv, and more). Its performance advantages, cross-platform support, and unified approach have made it increasingly popular among Python developers.

Read more →

February 27, 2025

Production Experiences with uv

Yesterday on Reddit, batman-iphone asked: Anyone used uv package manager in production Is it reliable to use it in production as it is comparatively new in the market. Also, are there any disadvantages that I should be aware of before pitching it to my manager? Given that the tool was introduced just over a year ago, its rate of adoption has been wild. Here is my summary of the discussion: uv Pros Real Performance Gains Multiple developers reported dramatic performance improvements, e.g.,

Read more →

February 26, 2025

Poetry's Move Toward Python Standards

This is an excerpt from the forthcoming Python Developer’s Tool Handbook. The handbook provides comprehensive guidance on Python tooling and best practices for modern Python development. While modern Python build tools like uv, Hatch, PDM, and Flit embraced PEP 621’s standardized project metadata from their inception, Poetry - one of the most widely used packaging tools - maintained its own configuration format in tool.poetry until version 2.0. This delay reflected both Poetry’s established user base and its richer feature set beyond standard packaging needs.

Read more →

February 21, 2025

Why Use uv Projects Instead of requirements.txt?

This is an excerpt from the forthcoming Python Developer’s Tool Handbook. The handbook provides comprehensive guidance on Python tooling and best practices for modern Python development. The Python ecosystem offers two main approaches to managing project dependencies: the traditional requirements.txt file and the newer pyproject.toml standard. Understanding the strengths and limitations of each helps inform better choices for Python development.

Read more →

February 19, 2025

bitecode.dev's "A year of uv"

uv hit its one-year mark, and bitecode.dev published a thorough retrospective on how it’s held up. The highlights: Solves Python bootstrapping by installing without Python and working the same across platforms Fast - tasks that took minutes now take seconds More reliable dependency resolution than alternatives Works with existing tools without friction Error messages tell you what went wrong and what to do The article lists five situations where uv might not fit, but these feel overly cautious. Speed, reliability, and simpler workflows make uv worth adopting for any team that can.

Read more →

February 18, 2025

Flexible Python Version Management with uv and tox

When working with Python projects that use tox for testing, you may encounter version mismatch errors like: lint-format: skipped because could not find python interpreter with spec(s): python3.8 This happens when tox expects a specific Python version that isn’t available in your environment. Traditionally, this would require:

Read more →

February 12, 2025

It's happening! A Python Type Checker from Astral

After months of speculation, Astral (creators of Ruff and uv) has officially announced their work on a new static type checker for Python. Built from the ground up in Rust, this tool aims to bring Astral’s signature focus on performance to Python’s static typing ecosystem. Charlie Marsh, Astral founder, says that beyond performance, the project seeks to minimize “false positives, especially on untyped code, to make it easier for projects to adopt a type checker and expand coverage gradually over time, without being swamped in bogus type errors from the start.”

Read more →

January 29, 2025