modern-python

Configure Python projects with uv, ruff, ty, and pytest tooling.

1|Updated Mar 19, 2026
One-click install
npx skills add https://github.com/tottenjordan/me-skittles --skill modern-python-tottenjordan
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: modern-python
Source: https://github.com/tottenjordan/me-skittles/tree/main/claude/modern-python
Command: npx skills add https://github.com/tottenjordan/me-skittles --skill modern-python-tottenjordan

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Python projects often accumulate legacy tooling like requirements.txt, setup.py, flake8, black, and mypy, leading to slow workflows and fragmented configuration. This Skill standardizes project setup and migration around the modern Astral toolchain (uv, ruff, ty) with correct pyproject.toml structure. ## Core Features & Use Cases - Project Scaffolding: Create new packages with uv init, src/ layout, dependency groups (PEP 735), and preconfigured linting, formatting, type checking, and testing. - Legacy Migration: Migrate projects from requirements.txt, setup.py, Poetry, flake8/black/isort, and mypy/pyright to uv, ruff, and ty with a step-by-step checklist. - Standalone Scripts: Write single-file scripts with PEP 723 inline metadata so uv run resolves dependencies automatically. - Use Case: A team inherits a project using pip, requirements.txt, and mypy. Use this Skill to convert it to uv with dependency groups, replace the linter stack with ruff, switch type checking to ty, and add security hooks like pip-audit and Dependabot. ## Quick Start Set up a new Python package in this directory using uv, ruff, and ty with pytest configured and an 80 percent coverage minimum.

Frequently Asked Questions about modern-python

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up a new Python project with uv?▼

Run uv init --package myproject to create a distributable package with src/ layout, then add dependencies with uv add and dev tools with uv add --group dev. Use uv sync --all-groups to install and uv run to execute commands without activating a virtualenv.

How do I migrate from requirements.txt to uv?▼

Run uv init --bare in the existing project, then add each dependency with uv add rather than editing pyproject.toml manually. Delete requirements.txt, old virtual environments, and commit uv.lock for applications.

Should I use ruff or black and flake8 for Python linting?▼

Use ruff, which replaces flake8, black, isort, pyupgrade, and pydocstyle in a single fast Rust tool. Configure it in pyproject.toml with select = ["ALL"] and explicit ignores, then run uv run ruff check and uv run ruff format.

What is the difference between dependency-groups and optional-dependencies?▼

Dependency groups (PEP 735) hold development tools like pytest and ruff that end users never install. Optional dependencies are for optional runtime features users install with extras like myproject[postgres].

When should I use PEP 723 inline script metadata?▼

Use PEP 723 for single-file scripts with external dependencies, embedding requires-python and dependencies in a TOML comment block so uv run script.py resolves them automatically. Multi-file projects and libraries should use a full pyproject.toml instead.

When should I not use this modern Python tooling approach?▼

Avoid it when the user explicitly wants to keep legacy tooling, when the project requires Python below 3.11, or when Python is not the primary language in a mixed codebase.