Modern Python tooling: uv, Ruff, type hints and packaging

Set up Python projects the way experienced teams do in 2026, with fast environments, linting, type checking and publishable packages

7 ratings 1,641 students Sample

Created by Arjun Mehta

  • Updated September 2026
  • English
  • Intermediate

What you will learn

  • Manage Python versions, environments and locked dependencies with uv
  • Configure a project entirely through pyproject.toml
  • Lint and format code automatically with Ruff
  • Write useful type hints and check them with mypy or Pyright
  • Structure a project with a src layout and a test suite
  • Build and publish a package to PyPI with trusted publishing from CI

Course content

5 sections, 24 lessons, 3h 58m total

A modern Python project from the ground up 5 lessons · 48 min
  • Video: Why Python tooling changed Preview 8 min
  • Article: Python versions and environments with uv Preview 12 min
  • Article: pyproject.toml, explained line by line 11 min
  • Article: Linting and formatting with Ruff 12 min
  • Quiz: Check your understanding 5 min
Type hints that help 5 lessons · 56 min
  • Video: The basics of type hints 12 min
  • Video: Checking types with mypy and Pyright 13 min
  • Video: Dataclasses, TypedDict and Protocols 12 min
  • Article: Generics and the type statement 10 min
  • Video: Adopting types in an existing codebase 9 min
Project structure and tests 4 lessons · 40 min
  • Article: The src layout and why it matters 9 min
  • Video: Testing with pytest 13 min
  • Video: Testing the command line interface 10 min
  • Article: Coverage without obsession 8 min
Automation and team workflow 4 lessons · 40 min
  • Video: Pre-commit hooks 10 min
  • Video: A GitHub Actions workflow 13 min
  • Video: Keeping dependencies up to date 9 min
  • Article: Task runners and scripts 8 min
Building and publishing 6 lessons · 54 min
  • Video: Building wheels and source distributions 10 min
  • Article: Versioning and changelogs 8 min
  • Video: Publishing to TestPyPI and PyPI 11 min
  • Video: Documentation with a README and docs site 10 min
  • Video: Trusted publishing from CI 10 min
  • Quiz: Final check 5 min

Requirements

  • Comfortable with Python functions, classes and modules
  • Basic use of the terminal and Git

Description

Python's tooling changed a lot in the last few years. Projects that used to need pip, virtualenv, pip-tools, flake8, isort, black and a pile of configuration files can now be managed with two fast tools and one pyproject.toml. If your projects still feel fragile to set up, or you are not sure which advice online is current, this course brings you up to date.

What we cover

  • uv for Python versions, virtual environments, dependencies and lock files
  • pyproject.toml as the single place for project metadata and tool settings
  • Ruff for linting and formatting
  • Type hints that actually help, and checking them with mypy or Pyright
  • Project layout with a src folder and tests
  • Building a package and publishing it to PyPI with trusted publishing
  • Pre-commit hooks and a CI workflow that runs everything on each push

How it is taught

We take a small, untidy command line project and modernise it step by step. Every lesson explains not just the command, but the problem it solves, so you can judge when a tool is worth adding to your own work. Where the community has more than one good option, I show both and explain my choice.

You should be comfortable writing Python functions, classes and modules. No packaging experience is needed.

Who this course is for

  • Python developers whose project setup feels fragile or outdated
  • Data scientists moving code from notebooks into packages
  • Developers preparing to publish an open source library

Instructor

Arjun Mehta

Python developer teaching clean, practical Python for beginners and working engineers

  • 4.5 instructor rating
  • 23 reviews
  • 10,251 students
  • 3 courses
  • Sample

I write Python every day: automation scripts, small web services and internal tools for teams who need to stop copying data between spreadsheets by hand. I started as a self taught programmer, so I remember exactly which concepts felt confusing at first.

In my courses I explain the idea, show a short example, then give you a task that uses it in a realistic way. I care about readable code, sensible project structure and modern tooling such as uv and Ruff, without making beginners learn everything at once.

I also volunteer as a mentor in beginner coding groups.

View profile

Student reviews

4.4 7 ratings
5 star 57%
4 star 29%
3 star 14%
2 star 0%
1 star 0%
Andreas K. Sep 19, 2026
Sample

Exactly the update I needed

My Python setup was stuck around 2019. This course replaced five tools and three config files in our team repo.

Jamal T. Sep 4, 2026
Sample

Ruff rule advice was practical

Adding rule families gradually saved us from a wall of warnings on our legacy project.

Bianca F. Aug 21, 2026
Sample

pyproject.toml finally makes sense

The line by line walkthrough of pyproject.toml cleared up years of copy pasting configuration.

Wei Z. Jul 24, 2026
Sample

Fair to other tools

I liked that Poetry and Hatch were respected rather than dismissed. The uv content is thorough and current.

Lerato M. Jun 23, 2026
Sample

Trusted publishing lesson is gold

Published my first library to PyPI from a git tag. No tokens stored anywhere.

Sebastian O. May 27, 2026
Sample

Typing section was the highlight

Protocols and the new generic syntax were well explained. I would like a deeper dive into mypy plugins.

Nadia B. Apr 24, 2026
Sample

Some lessons feel quick

The CI lesson moves fast if you have never used GitHub Actions. Otherwise very useful.

$39.99 Enroll now
SampleSample catalog: the instructors, courses, reviews and stats on this site are demo content.