The Real Python Podcast

The Real Python Podcast

https://realpython.com/podcasts/rpp/feed
670 Followers 287 Episodes Claim Ownership
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.

Episode List

Overcoming Testing Obstacles With Python's Mock Object Library

Feb 27th, 2026 12:00 PM

Do you have complex logic and unpredictable dependencies that make it hard to write reliable tests? How can you use Python’s mock object library to improve your tests? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects. Christopher shares details about his recent Real Python video course, “Improving Your Tests With the Python Mock Object Library.” He describes how mocking in Python with unittest.mock allows you to simulate complex logic or unpredictable dependencies, such as responses from external services. He covers how the Mock class can imitate real objects, and the patch() function lets you temporarily substitute mocks for real objects in your tests. We also share other articles and projects from the Python community, including a collection of recent releases, using open source AI at Wagtail, updates from the inaugural PyPI Support Specialist, a lightweight OS for microcontrollers in MicroPythonOS, why match-case is not necessarily switch-case for Python, thinking about time in programming, a TUI-based presentation tool for the terminal, and a tool to check Django projects for dead code. This episode is sponsored by AgentField. Course Spotlight: Improving Your Tests With the Python Mock Object Library Master Python testing with unittest.mock. Create mock objects to tame complex logic and unpredictable dependencies. Topics: 00:00:00 – Introduction 00:02:53 – Python 3.14.3 and 3.13.12 Released 00:03:15 – Django Security Releases Issued: 6.0.2, 5.2.11, and 4.2.28 00:03:36 – Open Source AI We Use to Work on Wagtail 00:07:27 – Dispatch From the Inaugural PyPI Support Specialist 00:09:01 – MicroPythonOS Graphical Operating System 00:11:27 – Sponsor: AgentField 00:12:21 – Improving Your Tests With the Python Mock Object Library 00:17:30 – Need Switch-Case in Python? It’s Not Match-Case! 00:26:03 – Video Course Spotlight 00:27:38 – How to Think About Time in Programming 00:31:58 – Prezo: A TUI-based Presentation Tool for the Terminal 00:34:52 – django-deadcode: Tracks URLs, Templates, and Django Views 00:38:09 – Thanks and goodbye News: Python 3.14.3 and 3.13.12 Released Python 3.15.0 Alpha 6 Released Django Security Releases Issued: 6.0.2, 5.2.11, and 4.2.28 Show Links: Open Source AI We Use to Work on Wagtail – One of the core maintainers at Wagtail CMS shares what open source models have been working best for the project so far. Dispatch From the Inaugural PyPI Support Specialist – Maria Ashna (Thespi-Brain on GitHub) is the inaugural PyPI Support Specialist and she’s written up how the first year went. MicroPythonOS Graphical Operating System – MicroPythonOS lightweight OS for microcontrollers targets applications with graphical user interfaces with a look similar to Android/iOS. Improving Your Tests With the Python Mock Object Library – Master Python testing with unittest.mock. Create mock objects to tame complex logic and unpredictable dependencies. Need Switch-Case in Python? It’s Not Match-Case! – Python’s match-case is not a switch-case statement. If you need switch-case, you can often use a dictionary instead. How to Think About Time in Programming – Time is a complex thing to code. This article is a very deep dive, covering absolute measurement, civil time, modern time keeping, the mess that are timezones, and much more. Projects: Prezo: A TUI-based Presentation Tool for the Terminal django-deadcode: Tracks URLs, Templates, and Django Views Additional Links: AI in the CMS: steering the ecosystem - Wagtail CMS Episode #258: Supporting the Python Package Index MicroPythonOS: A complete operating system for microcontrollers like the ESP32, inspired by Android and iOS. MicroPythonOS - The Ultimate MicroPython Operating System LVGL — Light and Versatile Embedded Graphics Library Structural Pattern Matching in Python – Real Python Textual Level up your Python skills with our expert-led courses: Improving Your Tests With the Python Mock Object Library Testing Your Code With pytest Using Python's assert to Debug and Test Your Code Support the podcast & join our community of Pythonistas

Exploring MCP Apps & Adding Interactive UIs to Clients

Feb 20th, 2026 12:00 PM

How can you move your MCP tools beyond plain text? How do you add interactive UI components directly inside chat conversations? This week on the show, Den Delimarsky from Anthropic joins us to discuss MCP Apps and interactive UIs in MCP. Den is a member of the MCP Steering Committee and a Core Maintainer focusing on auth and security. He explains how MCP acts as a universal bridge, providing AI models with the real-time context they need. He shares insights on working with MCP Apps and moving beyond simple text to render web-based user interfaces directly in your chat window. Den previously worked on GitHub Spec Kit, and we discuss taking advantage of spec-driven development and how to use “Skills” to remove the toil from your workflow. We also talk briefly about his podcast and his conversations about navigating careers in technology. This episode is sponsored by AgentField. Course Spotlight: Getting Started With Google Gemini CLI Learn how to use Gemini CLI to bring Google’s AI-powered coding assistance into your terminal for faster code analysis, debugging, and fixes. Topics: 00:00:00 – Introduction 00:02:17 – Den’s Background 00:02:53 – The Work Item Podcast 00:06:55 – Career Move to Anthropic 00:10:24 – What is Model Context Protocol (MCP)? 00:11:39 – MCP UI and MCP Apps 00:16:17 – Sponsor: AgentField 00:17:13 – Structuring MCP Tools 00:24:52 – Cloudflared & tunneling 00:29:59 – Reverse engineering with Ghidra MCP 00:35:43 – Connecting MCP tools 00:43:10 – Video Course Spotlight 00:44:23 – Spec-Driven Development & Context Management 00:57:23 – Leveraging Skills for Model Guidance 01:02:51 – What are you excited about in the world of Python? 01:03:42 – What do you want to learn next? 01:07:14 – How can people follow your work online? 01:07:48 – Thanks and goodbye Show Links: The Work Item Podcast Den Delimarsky - Principal Product Engineer, Tinkerer, Nerd, Trail Explorer Hello, Anthropic · Den Delimarsky What is the Model Context Protocol (MCP)? - Model Context Protocol MCP Apps And Interactive UIs In MCP Clients - Den Delimarsky ext-apps: Official repo for spec & SDK of MCP Apps protocol MCP Will Never Be The Same - Render UI With MCP Apps - YouTube playwright-mcp: Playwright MCP server NationalSecurityAgency/ghidra: Software reverse engineering (SRE) framework GhidraMCP: MCP Server for Ghidra Ralph Loop – Claude Plugin - Anthropic Spec Kit - AI-Powered Specification-Driven Development Toolkit Introducing Agent Skills - Claude Welcome to FastMCP 2.0! - FastMCP uv - Astral Den Delimarsky (@den.dev) — Bluesky Den Delimarsky (@localden@mastodon.social) - Mastodon Level up your Python skills with our expert-led courses: Getting Started With Claude Code Getting Started With Google Gemini CLI Write Python Docstrings Effectively Support the podcast & join our community of Pythonistas

Running Local LLMs With Ollama and Connecting With Python

Feb 13th, 2026 12:00 PM

Would you like to learn how to work with LLMs locally on your own computer? How do you integrate your Python projects with a local model? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects. We cover a recent Real Python step-by-step tutorial on installing local LLMs with Ollama and connecting them to Python. It begins by outlining the advantages this strategy offers, including reducing costs, improving privacy, and enabling offline-capable AI-powered apps. We talk through the steps of setting things up, generating text and code, and calling tools. We also share other articles and projects from the Python community, including the 2026 Python Developers Survey, creating callable instances with Python’s .__call__(), creating maps and projections with GeoPandas, ending 15 years of subprocess polling, discussing backseat software, a retry library that classifies errors, and a peer-to-peer encrypted CLI chat project. This episode is sponsored by Honeybadger. Course Spotlight: Tips for Using the AI Coding Editor Cursor Learn Cursor fast: Use AI-powered coding with agents, project-aware chat, and inline edits to supercharge your VS Code workflow. Topics: 00:00:00 – Introduction 00:02:37 – Take the Python Developers Survey 2026 00:03:07 – How to Integrate Local LLMs With Ollama and Python 00:08:15 – Sponsor: Honeybadger 00:09:01 – Create Callable Instances With Python’s .__call__() 00:12:13 – GeoPandas Basics: Maps, Projections, and Spatial Joins 00:16:03 – Ending 15 Years of subprocess Polling 00:18:57 – Video Course Spotlight 00:20:23 – Backseat Software – Mike Swanson 00:39:06 – cmd-chat: Peer-to-Peer Encrypted CLI Chat 00:41:58 – redress: A Retry Library That Classifies Errors 00:43:56 – Thanks and goodbye News: Take the Python Developers Survey 2026 The State of Python 2025: Trends and Survey Insights - The PyCharm Blog Topics: How to Integrate Local LLMs With Ollama and Python – Learn how to integrate your Python projects with local models (LLMs) using Ollama for enhanced privacy and cost efficiency. Create Callable Instances With Python’s .__call__() – Learn about Python callables, including what “callable” means, how to use dunder call, and how to build callable objects with step-by-step examples. GeoPandas Basics: Maps, Projections, and Spatial Joins – Dive into GeoPandas with this tutorial covering data loading, mapping, CRS concepts, projections, and spatial joins for intuitive analysis. Ending 15 Years of subprocess Polling – Python’s standard library subprocess module relies on busy-loop polling to determine whether a process has completed yet. Modern operating systems have callback mechanisms to do this, and Python 3.15 will now take advantage of these. Discussion: Backseat Software – Mike Swanson’s Blog Backseat Software – Hacker News Projects: cmd-chat: Peer-to-Peer Encrypted CLI Chat redress: A Retry Library That Classifies Errors Additional Links: Ollama Python’s .call() Method: Creating Callable Instances – Real Python Quiz: GeoPandas Basics: Maps, Projections, and Spatial Joins Level up your Python skills with our expert-led courses: Customize VS Code Settings Getting Started With Google Gemini CLI Tips for Using the AI Coding Editor Cursor Support the podcast & join our community of Pythonistas

Improving Your GitHub Developer Experience

Feb 6th, 2026 12:00 PM

What are ways to improve how you’re using GitHub? How can you collaborate more effectively and improve your technical writing? This week on the show, Adam Johnson is back to talk about his new book, “Boost Your GitHub DX: Tame the Octocat and Elevate Your Productivity”. Adam has written a series of books about improving developer experience (DX). In this episode, we dig into his newest book, which focuses on GitHub and how to get the most out of its features—from settings and keyboard shortcuts to hidden tools, CLI commands, and the command palette. Adam also shares insights on the best ways to communicate on the platform. We discuss the nuances of GitHub-Flavored Markdown (GFM), best practices for effective communication in open source, the importance of maintaining civility in issue reports, and why he included a glossary of acronyms to help developers decode common shorthand like LGTM and FTFY. This episode is sponsored by Honeybadger. Course Spotlight: Introduction to Git and GitHub for Python Developers What is Git, what is GitHub, and what’s the difference? Learn the basics of Git and GitHub from the perspective of a Pythonista in this step-by-step video course. Topics: 00:00:00 – Introduction 00:02:20 – Why the focus on developer experience? 00:03:41 – Process of writing the book 00:06:26 – Filling in the gaps of knowledge 00:11:52 – GitHub-Flavored Markdown 00:16:00 – Sponsor: Honeybadger 00:16:47 – Acronym glossary 00:25:18 – GitHub command palette 00:28:35 – What questions did you want to answer? 00:29:42 – Whether to cover Copilot or not 00:36:14 – Video Course Spotlight 00:37:50 – Advice on working with coding agents 00:40:46 – Defining the scope 00:48:07 – GitHub pages and codespaces 00:50:46 – Finding the hidden features 00:51:53 – Data-oriented Django series 00:53:59 – How to find the book 00:54:51 – What are you excited about in the world of Python? 00:57:27 – What do you want to learn next? 00:58:00 – How can people follow your work online? 00:58:22 – Thanks and goodbye Show Links: Adam Johnson’s Website Boost Your GitHub DX Boost Your Git DX GitHub-Flavored Markdown (GFM) Spec GitHub CLI (gh) GitHub Command Palette - GitHub Docs Keyboard shortcuts - GitHub Docs GitHub’s Guide on Writing Great Issues GitHub Pull Request Templates GitHub Pages GitHub Codespaces Data-Oriented Django - DjangoCon 2022 - YouTube Data-Oriented Django Deux - DjangoCon Europe 2024 - YouTube Data-Oriented Django Drei - DjangoCon Europe 2025 - YouTube Tachyon — Statistical profiler — Python 3.15.0a5 documentation Adam Johnson (@adamj.eu) — Bluesky Adam Johnson (@adamchainz@fosstodon.org) - Fosstodon Level up your Python skills with our expert-led courses: Python Continuous Integration and Deployment Using GitHub Actions Introduction to Git and GitHub for Python How to Set Up a Django Project Support the podcast & join our community of Pythonistas

Testing Python Code for Scalability & What's New in pandas 3.0

Jan 30th, 2026 12:00 PM

How do you create automated tests to check your code for degraded performance as data sizes increase? What are the new features in pandas 3.0? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects. Christopher digs into an article about building tests to make sure your software is fast, or at least doesn’t get slower as it scales. The piece focuses on testing Big-O scaling and its implications for algorithms. We also discuss another article covering the top features in pandas 3.0, including the new dedicated string dtype, a cleaner way to perform column-based operations, and more predictable default copying behavior with Copy-on-Write. We share several other articles and projects from the Python community, including a collection of recent releases and PEPs, a profiler for targeting individual functions, a quiz to test your Django knowledge, when to use each of the eight versions of UUID, the hard-to-swallow truths about being a software engineer, an offline reverse geocoding library, and a library for auto-generating CLIs from any Python object. Our live Python cohorts start February 2, and we’re down to the last few seats. There are two tracks: Python for Beginners or Intermediate Deep Dive. Eight weeks of live instruction, small groups, and real accountability. Grab your seat at realpython.com/live. This episode is sponsored by Honeybadger. Course Spotlight: Intro to Object-Oriented Programming (OOP) in Python Learn Python OOP fundamentals fast: master classes, objects, and constructors with hands-on lessons in this beginner-friendly video course. Topics: 00:00:00 – Introduction 00:03:28 – Python 3.15.0 Alpha 4 Released 00:03:50 – Django Bugfix Release: 5.2.10, 6.0.1 00:04:22 – PEP 819: JSON Package Metadata 00:04:41 – PEP 820: PySlot: Unified Slot System for the C API 00:04:59 – PEP 822: Dedented Multiline String (d-String) 00:06:04 – What’s New in pandas 3.0 00:13:11 – pandas 3.0.0 documentation 00:13:44 – Sponsor: Honeybadger 00:14:30 – Unit Testing Your Code’s Performance 00:17:51 – Introducing tprof, a Targeting Profiler 00:23:03 – Video Course Spotlight 00:24:31 – Django Quiz 2025 00:24:56 – 8 Versions of UUID and When to Use Them 00:29:17 – 10 hard-to-swallow truths they won’t tell you about software engineer job 00:44:02 – gazetteer: Offline Reverse Geocoding Library 00:46:13 – python-fire: A library for automatically generating command-line interfaces 00:47:40 – Thanks and goodbye News: Python 3.15.0 Alpha 4 Released Python 3.15.0a5 Alpha 5 Released Django Bugfix Release: 5.2.10, 6.0.1 PEP 819: JSON Package Metadata (Draft) PEP 820: PySlot: Unified Slot System for the C API (Draft) PEP 822: Dedented Multiline String (d-String) (Draft) Show Links: What’s New in pandas 3.0 – Learn what’s new in pandas 3.0: pd.col expressions for cleaner code, Copy-on-Write for predictable behavior, and PyArrow-backed strings for 5-10x faster operations. What’s new in 3.0.0 (January 21, 2026) — pandas 3.0.0 documentation Unit Testing Your Code’s Performance – Testing your code is important, not just for correctness but also for performance. One approach is to check performance degradation as data sizes go up, also known as Big-O scaling. Introducing tprof, a Targeting Profiler – Adam has written tprof, a targeting profiler for Python 3.12+. This article introduces you to the tool and why he wrote it. Django Quiz 2025 – Last month, Adam held another quiz at the December edition of Django London. This is an annual tradition at the meetup, and now you can take it yourself or just skim the answers. 8 Versions of UUID and When to Use Them – RFC 9562 outlines the structure of Universally Unique Identifiers (UUIDs) and includes eight different versions. In this post, Nicole gives a quick intro to each kind so you don’t have to read the docs, and explains why you might choose each. uuid — UUID objects according to RFC 9562 — Python 3.14.2 documentation Discussion: 10 hard-to-swallow truths they won’t tell you about software engineer job Projects: gazetteer: Offline Reverse Geocoding Library python-fire: Python Fire is a library for automatically generating command-line interfaces (CLIs) from absolutely any Python object Additional Links: Gary Gnu Sings “No Gnews Is Good Gnews Song” - The Great Space Coaster - YouTube plasma-umass/bigO: Measures empirical computational complexity (in both time and space) of functions Episode #172: Measuring Multiple Facets of Python Performance With Scalene Level up your Python skills with our expert-led courses: Testing Your Code With pytest Investigating Quasar Data With Polars and Interactive marimo Notebooks Intro to Object-Oriented Programming (OOP) in Python Support the podcast & join our community of Pythonistas

Get this podcast on your phone, Free

Create Your Podcast In Minutes

  • Full-featured podcast site
  • Unlimited storage and bandwidth
  • Comprehensive podcast stats
  • Distribute to Apple Podcasts, Spotify, and more
  • Make money with your podcast
Get Started
It is Free