A weekly Python podcast hosted by Christopher Bailey with interviews, coding tips, and conversation with guests from the Python community. The show covers a wide range of topics including Python programming best practices, career tips, and related software development topics. Join us every Friday morning to hear what's new in the world of Python programming and become a more effective Pythonista.

Charlie Marsh: Accelerating Python Tooling With Ruff and uv

February 07, 2025 1:30:37 16.86 MB ( 71.13 MB less) Downloads: 0

Are you looking for fast tools to lint your code and manage your projects? How is the Rust programming language being used to speed up Python tools? This week on the show, we speak with Charlie Marsh about his company, Astral, and their tools, uv and Ruff.

Charlie started working on Ruff as a proof of concept, stating that Python tooling could be much faster. He had seen similar gains in JavaScript tools written in Rust. The project started as a speedy linter with a small ruleset. It’s grown to include code formatting and over 800 built-in linting rules.

Last year, the team at Astral started working on a Python package and project manager written in Rust. As a single tool, uv can replace pip, pip-tools, pipx, poetry, pyenv, and more. We discuss how uv can install and manage versions of Python and run scripts without thinking about virtual environments or dependencies.

Charlie talks about growing the team at Astral over the past couple of years. We also discuss the funding model Astral has adopted and sustaining open-source software.

This episode is sponsored by Postman.

Course Spotlight: Python Basics: Installing Packages With pip

Python’s standard library includes a whole buffet of useful packages, but sometimes you need to reach for a third-party library. That’s where pip comes in handy. In this video course, you’ll learn how to pip install packages.

Topics:

  • 00:00:00 – Introduction
  • 00:03:37 – How did you get involved in open source?
  • 00:07:01 – Fostering a community around a project
  • 00:11:32 – Python tooling could be much, much faster
  • 00:15:45 – Changing the ergonomics of tooling
  • 00:19:59 – What is ruff and what jobs can it do?
  • 00:22:23 – How do you configure ruff?
  • 00:26:02 – Where do the linting rules come from?
  • 00:29:29 – Can you build your own rules?
  • 00:31:28 – Performance difference for ruff
  • 00:36:25 – Installing ruff
  • 00:37:34 – The rustification of Python
  • 00:40:52 – The initial features and release of uv
  • 00:45:07 – Installing Python
  • 00:47:50 – Taking over the python-build-standalone project
  • 00:53:02 – Installation methods and suggestions
  • 00:55:37 – Video Course Spotlight
  • 00:57:07 – The project API
  • 01:01:57 – Inline script metadata and PEP 723
  • 01:06:49 – Installing tools with uvx
  • 01:09:37 – Project management
  • 01:11:20 – Astral as company and VC funding
  • 01:19:23 – New static type checker
  • 01:26:15 – What are you excited about in the world of Python?
  • 01:27:12 – What do you want to learn next?
  • 01:28:52 – How can people follow your work online?
  • 01:29:34 – Thanks and goodbye

Show Links:

Level up your Python skills with our expert-led courses:

Support the podcast & join our community of Pythonistas