GuideBeginner

Modern Python Tooling Guide

A Python project's toolchain — which interpreter runs it, where dependencies live, who checks style and types, who builds and publishes the package — gets decided once and paid for every day after. This guide takes you through operating that toolchain with the tools the industry settled on in 2026: `uv` for interpreters, environments, and reproducible-lockfile dependency management; Ruff as the single linter and formatter that replaces flake8, isort, pyupgrade, and black; a type checker (mypy, pyright, or ty) wired into `pyproject.toml`; automation with pre-commit hooks and GitHub Actions; and packaging and publishing to PyPI with trusted publishing. The differentiator isn't the list of commands — it's the judgment: every tool is presented with its strongest argument for and its most serious objection, including when NOT to adopt it and how to evaluate an open-source project's governance health before betting your stack on it. The whole path builds a single project — `pkgpeek`, a CLI that queries PyPI — that ends up published from CI with nine verifiable deliverables and a decisions document defending every choice.

48
lessons
6
modules
English · Spanish
available in
Yes
certificate
Free
access
NIEVA

Outcomes

What you'll be able to do

  • Install and pin any Python version with `uv python install`, without pyenv or conda, and create a project with a `pyproject.toml` that's reproducible on another machine
  • Manage the full dependency cycle with `uv`: add and remove packages, group dev/prod, resolve conflicts, and reproduce an identical environment with `uv sync --frozen` or `--locked`
  • Configure Ruff as a single linter and formatter, justify the chosen rule set, and migrate a black + flake8 + isort repository without changing the code's behavior
  • Annotate code with modern syntax (`list[str]`, `str | None`, `Protocol`, `TypedDict`) and bring a real module to strict mode with mypy, pyright, or ty
  • Distinguish precisely between static verification and runtime validation, and know why a service receiving external data needs both
  • Automate the toolchain with fast pre-commit hooks and a GitHub Actions workflow that runs lint, types, and tests across several Python versions
  • Update dependencies under a defined policy, audit the supply chain, and build reproducible Docker images from the lockfile
  • Build and publish a package to PyPI with `uv build` and `uv publish`, semantic versioning, and CI-automated publishing via OIDC (no long-lived tokens)
  • Distribute a command-line tool installable with `uvx`, using entry points in `[project.scripts]`
  • Read a tool's governance health before adopting it (license, bus factor, release cadence) and defend, with your own judgment, when NOT to use this stack

Before you start

What you need to bring

It's for you if...

  • Intermediate-level Python developers who already write their own functions, classes, and modules, and want to move from "I use pip because someone told me to" to defending every tool in their stack
  • Teams inheriting projects with `requirements.txt`, `setup.py`, poetry, or conda who need a clear framework for deciding whether to migrate to `uv` and Ruff
  • Devs tired of arguing about code style in every pull request who want to automate that layer so review time goes to what matters
  • People preparing technical interviews where they're asked about environment reproducibility, gradual typing, or how to evaluate a dependency's health
  • Anyone who's never published their own package to PyPI and wants to do it end to end, with CI, versioning, and secure publishing

Requirements and materials

  • Intermediate-level Python: writing your own functions, classes, and modules, understanding imports, and having installed packages with pip at some point
  • Basic command-line skills (navigating, running commands, environment variables) and git (cloning, committing, opening a pull request)
  • A GitHub account
  • No prior experience with poetry, conda, pyenv, Docker, or publishing a package is required: everything is explained from scratch

Content

The syllabus, module by module

Open any of them to see its lessons.

Common questions

What people usually ask

Start whenever you like

Reviews

What students say

These reviews are from enrolled students who completed at least 50% of the course. We moderate reviews only on content grounds (spam, offensive language, personal data), never for being critical or negative.

No approved reviews yet.

Be the first to share your experience!