Filtrar por gênero
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.
- 300 - EuroPython 2026: Celebrating 25 Years
What’s happening at EuroPython 2026? The conference celebrates its 25th anniversary this year in Kraków, Poland. This week on the show, organizers Mia Bajić and Daria Linhart Grudzien join me to discuss this year’s conference.
Mia serves as the Vice Chair of the EuroPython Society, and Daria leads the EuroPython communications team. We dig into the details of the conference, including the wide variety of tracks, the reasoning for selecting the location, and the additional activities surrounding the event.
We talk about volunteering, organizing, and continuing support for conferences. Mia and Daria also share the talks they’re excited to check out and how they use Python currently.
Course Spotlight: Building Command Line Interfaces With argparse
In this step-by-step Python video course, you’ll learn how to take your command line Python scripts to the next level by adding a convenient command line interface that you can write with argparse.
Topics:
00:00:00 – Introduction 00:02:27 – EuroPython 2026 details 00:05:02 – Daria and Mia’s roles with the conference 00:09:08 – Practices to continue growing a conference 00:13:16 – What makes EuroPython different? 00:18:40 – Video Course Spotlight 00:20:17 – Wide variety of tracks, talks, and topics 00:28:54 – How are you using Python currently? 00:32:38 – What are you excited about in the world of Python? 00:35:12 – What do you want to learn next? 00:37:30 – How can people follow the work you do online? 00:39:06 – Thanks and goodbyeShow Links:
EuroPython 2026 - July 13-19, 2026 - Kraków, Poland 🎂 25th Anniversary of EuroPython: Social Media Challenge 🎂 Schedule for 2026 ICE Kraków Congress Centre EuroPython: Overview - LinkedIn EuroPython Conference - YouTube EuroPython - Fosstodon EuroPython Conference (@europython) - Instagram EuroPython (@europython) - TikTok EuroPython 2026, Kraków (@europython.eu) - Bluesky EuroPython (@europython) - XMia Links:
Mia Bajić - LinkedIn Mia Bajić (@clytaemnestra_) - Instagram Mia Bajić (@clytaemnestra.bsky.social) - Bluesky Behind the Commit - YouTube mia@europython.euDaria Links:
Daria Linhart Grudzien - LinkedIn daria@europython.euLevel up your Python skills with our expert-led courses:
Structuring Your Python Script Accessing Multiple AI Models With the OpenRouter API Building Command Line Interfaces With argparseSupport the podcast & join our community of Pythonistas
Fri, 12 Jun 2026 - 299 - Reducing the Size of Python Docker Containers
How can you easily reduce the size of a Python Docker container? What are the exceptions you should catch in your code? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
We cover a tutorial by Khuyen Tran at CodeCut about shrinking the size of a Python Docker container. The piece explores SlimToolKit, which analyzes a container at runtime, identifies what files are used, and then builds a minimal image with only those dependencies.
We dig into a recent piece by Trey Hunner about Python exceptions. When trying to determine a strategy to handle potential errors, which exceptions should you catch and which should you leave unhandled?
We also share other articles and projects from the Python community, including recent releases, two PEPs that have been deferred to 3.16, a critical vulnerability in an open-source ASGI framework, resolving a lazy import manually, a project to anonymize sensitive PII data, and a tool for loading Django settings from a TOML file.
This episode is sponsored by AURI by Endor Labs.
Course Spotlight: Raising and Handling Python Exceptions
In this course, you’ll learn what an exception is and how it differs from a syntax error. You’ll learn about raising exceptions, making assertions, and catching exceptions to change the control flow of your program using the try, except, else, and finally keywords.
Topics:
00:00:00 – Introduction 00:02:32 – Django 6.1 Alpha 1 Released 00:03:07 – Nuitka Python Compiler Release 4.1 00:04:00 – PEP 813: The Pretty Print Protocol (Deferred to 3.16) 00:04:28 – PEP 830: Add Timestamps to Exceptions and Tracebacks 00:04:50 – Millions of AI agents imperiled by critical vulnerability in open source package 00:07:27 – What Types of Exceptions Should You Catch? 00:13:28 – Sponsor: AURI from Endor Labs 00:14:18 – PyCon US 2026 Packaging Summit Recap 00:18:39 – Slim Down Python Docker Containers 00:24:17 – Video Course Spotlight 00:25:45 – Resolve a Lazy Import Manually 00:28:04 – presidio: Detect, Redact, & Anonymize Sensitive Data (PII) 00:32:37 – dj-toml-settings: Load Django settings from a TOML file 00:37:14 – Thanks and goodbyeNews:
Django 6.1 Alpha 1 Released Nuitka Python Compiler Release 4.1 PEP 813: The Pretty Print Protocol (Deferred to 3.16) PEP 830: Add Timestamps to Exceptions and Tracebacks (Deferred to 3.16) Millions of AI agents imperiled by critical vulnerability in open source package - Ars Technica Missing Host header validation poisons request.url.path, bypassing path-based security checks · Advisory · Kludex/starletteShow Links:
What Types of Exceptions Should You Catch? – The trickiest programming bugs are often caused by catching exceptions that you didn’t mean to catch or handling exceptions in ways that obfuscate the actual error that’s occurring. Which exceptions should you catch and which should you leave unhandled? PyCon US 2026 Packaging Summit Recap – Per-talk notes from the PyCon US 2026 Packaging Summit, including: Emma Smith on Wheel 2.0 and Zstandard compression, Mike Fiedler on PyPI abuse vectors, Mahe Iram Khan on ecosystems, lightning talks on PEP 772, mobile wheels, AI accelerator variants, and the roundtable discussions. Slim Down Python Docker Containers – Learn how SlimToolKit can reduce a Python Docker image by analyzing what your app actually uses at runtime. This tutorial walks through slimming a Chainlit LLM chatbot image, shows where container bloat comes from, and explains how to avoid breaking lazily loaded Python frameworks. Resolve a Lazy Import Manually – Learn how to work around the Python 3.15 machinery to resolve an explicit lazy import manually. TIL #141 – Inspect a lazy import - mathsppProjects:
presidio: Detect, Redact, & Anonymize Sensitive Data (PII) dj-toml-settings: Load Django settings from a TOML fileAdditional Links:
Using raise for Effective Exceptions - Real Python Video Course Working With Python’s Built-in Exceptions – Real Python Video Course Episode #177: Welcoming PyPI’s Safety & Security Engineer Mike Fiedler Chainlit - Build AI applications AURI for Developers - AI-Native AppSec Platform - Endor LabsLevel up your Python skills with our expert-led courses:
Raising and Handling Python Exceptions Advanced Python import Techniques Working With Python's Built-in ExceptionsSupport the podcast & join our community of Pythonistas
Fri, 05 Jun 2026 - 298 - Improving Python Through PEPs and Protocols
Have you ever been confused by the naming of modules you’re importing from a package? Is there a standard way to organize and name your Python virtual environments? This week on the show, Brett Cannon returns to discuss the Python Enhancement Proposals (PEPs) he’s been working on recently.
We start with PEP 794, which extends the metadata fields for Python packages to specify the import names a project provides. The metadata will help developers identify the correct project to install when they know the import name or the importable module names a project provides once installed.
We dive back into WebAssembly to discuss PEP 816, which specifies the WASI support in CPython releases. We also wade into the controversy around PEP 832, which proposes standards around naming and the discovery of virtual environments.
Brett shares his motivation for being a prolific author and supporter of PEPs. We discuss his promotion of standards and protocols to simplify the Python ecosystem for current and future developers.
Course Spotlight: Tapping Into the Zen of Python
Explore the Zen of Python and its 19 guiding principles for writing readable, practical code. Learn its history, jokes, and meaning.
Topics:
00:00:00 – Introduction 00:02:01 – Prolific PEP creation 00:03:37 – Improving the future of Python through standards 00:09:30 – PEP 794 - Import Name Metadata 00:30:12 – PEP 816 - WASI (WebAssembly System Interface) Support 00:40:55 – Why the interest in WASI? 00:45:23 – Video Course Spotlight 00:47:07 – PEP 832 - Virtual Environment Discovery 01:10:02 – Type Server Protocol 01:17:41 – How can people follow your work online? 01:19:12 – Thanks and goodbyeShow Links:
Tall, Snarky Canadian PEP 794 – Import Name Metadata Towards fixing Python project names and import modules - Goran et al. PEP 816 – WASI Support State of WASI support for CPython: March 2026 PEP 11 – CPython platform support PEP 816: How Python is getting serious about WASM - InfoWorld PEP 832 – Virtual environment discovery Discussions on Python.org - PEP 832: virtual environment discovery Type Server Protocol = Abstract out type information type-server-protocol.md - GitHub - microsoft/pylance-release Frequently Asked Questions - Open Source by Brett Cannon Brett Cannon - mastodon.socialLevel up your Python skills with our expert-led courses:
uv vs pip: Python Packaging and Dependency Management Tapping Into the Zen of Python Writing Beautiful Pythonic Code With PEP 8Support the podcast & join our community of Pythonistas
Fri, 29 May 2026 - 297 - Managing Polars Schema Issues & Profiling GitHub Users
How can you avoid schema problems in your Polars data pipeline when adding new columns? How can you quickly examine a GitHub user’s profile to decide how much to invest in their contributions? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
Christopher shares a recent article about handling schema issues in Python Polars. The piece covers ways that a schema change can break your data pipeline. It provides strategies to avoid and resolve issues.
We cover a recent project from previous guest Eric Matthes to investigate GitHub profiles of a potential contributor. With the rise of AI-slop pull requests, the tool can provide valuable background on the user.
We also share other articles and projects from the Python community, including recent releases, exploring four different “get” special methods, what’s new in Pip 26.1, inverse Sapir-Whorf and programming languages, and a Python scripting framework for CAD.
This episode is sponsored by Six Feet Up.
Course Spotlight: Working With Python Polars
Welcome to the world of Polars, a powerful DataFrame library for Python. In this video course, you’ll get a hands-on introduction to Polars’ core features and see why this library is catching so much buzz.
Topics:
00:00:00 – Introduction 00:02:51 – Python 3.14.5 is out! 00:03:16 – Python 3.15.0 beta 1 is here! 00:03:34 – PyPy v7.3.22 Released 00:03:45 – Django Security Releases: 6.0.5 and 5.2.14 00:04:04 – 2026 Django Developers Survey 00:04:24 – PEP 797: Shared Object Proxies (Deferred to 3.16) 00:04:40 – PEP 828: Supporting ‘Yield From’ in Asynchronous Generators 00:05:59 – Do You Get It Now? 00:11:54 – Sponsor: Six Feet Up 00:12:47 – Handling Schema Issues in Polars 00:17:10 – What’s New in Pip 26.1 00:24:27 – Video Course Spotlight 00:25:39 – Inverse Sapir-Whorf and Programming Languages 00:34:04 – cadquery: CAD Scripting Framework 00:38:16 – gh-profiler: Examine a GH user’s profile 00:40:46 – Thanks and goodbyeNews:
Python 3.14.5 is out! - Python Insider Python 3.15.0 beta 1 is here! - Python Insider PyPy v7.3.22 Released Django Security Releases: 6.0.5 and 5.2.14 2026 Django Developers Survey - Django PEP 797: Shared Object Proxies (Deferred to 3.16) PEP 828: Supporting ‘Yield From’ in Asynchronous Generators (Deferred to 3.16)Topics:
Do You Get It Now? – Learn about Python’s.__getitem__(),.__getattr__(),.__getattribute__(), and.__get__(): how they’re different and where to use them. Handling Schema Issues in Polars – You’ve got this great data pipeline going until one day it stops working. A schema error caused by a column upstream has stopped you in your tracks. This post talks about the four different causes of schema errors and what to do about them. What’s New in Pip 26.1 – pip 26.1 adds support for dependency cooldowns, experimental support for reading/installing from standard lockfiles (pylock.toml), fixes several long-standing limitations of the 2020 resolver, and drops support for Python 3.9. Inverse Sapir-Whorf and Programming Languages – The Sapir-Whorf hypothesis is the idea that the languages you speak influence the thoughts you can have. The inverse is the idea that your language limits what you can’t say. When applied to programming, this has subtle results determining core ideas like execution order.Projects:
cadquery: CAD Scripting Framework gh-profiler: Examine a GH user’s profile, to help quickly decide how much to invest in their contributions.Additional Links:
The Weird and Wonderful World of Descriptors in Python Episode #260: Harnessing the Power of Python Polars Episode #280: Considering Fast and Slow in Python Programming We should all be using dependency cooldowns - William Woodruff PEP 723: Inline script metadata What’s new in pip 26.0 - prerelease and upload-time filtering! - Richard Si The AI boom is based on a fundamental mistake - The Verge CadQuery Documentation FreeCAD: Your own 3D parametric modelerLevel up your Python skills with our expert-led courses:
Introduction to Git and GitHub for Python Working With Python Polars Working With Missing Data in PolarsSupport the podcast & join our community of Pythonistas
Fri, 22 May 2026 - 296 - Agentic Architecture: Why Files Aren't Always Enough
What are the limitations of using a file-based agent workflow? Why do massive context windows tend to collapse? This week on the show, Mikiko Bazeley from MongoDB joins us to discuss agentic architecture and context engineering.
Mikiko is an applied AI engineer. She helps developers and organizations build AI and ML applications using MongoDB. We dig into the debate of files versus a database. What are some of the limitations of building an agent with just a folder of files?
We explore the surprising limitations of massive context windows and strategies for fixing them. Mikiko also shares advice and resources to help you get up to speed on building your own agent skills. Our conversation touches on multiple topics in the current development landscape.
This episode is sponsored by SerpApi.
Video Course Spotlight: Building Type-Safe LLM Agents With Pydantic AI
Build type-safe LLM agents in Python with Pydantic AI using structured outputs, function calling, and dependency injection.
Topics:
00:00:00 – Introduction 00:02:31 – Catching up with MongoDB 00:07:02 – Are the files all you need? 00:15:14 – What is a workflow agent? 00:24:43 – Sponsor: SerpApi 00:25:45 – Model vs harness 00:29:57 – Context rot and tool loadouts 00:41:07 – Sharing state and coordination of agents 00:47:27 – Video Course Spotlight 00:49:16 – What do dataflows look like 01:00:38 – The human-in-the-loop & coding agents 01:10:30 – Resources to explore 01:17:49 – What are you excited about in the world of Python? 01:18:38 – What do you want to learn next? 01:22:54 – Thanks and goodbyeShow Links:
The “files are all you need” debate misses what’s actually happening in agent memory architecture - The New Stack MongoDB: The World’s Leading Modern Data Platform Karpathy shares ‘LLM Knowledge Base’ architecture that bypasses RAG with an evolving markdown library maintained by AI - VentureBeat Files Are All You Need: Context, Search, Skills Guide | LlamaIndex Converged Datastore For Agentic AI - MongoDB Why Developers Need Vector Search - The New Stack Why Multi-Agent Systems Need Memory Engineering – O’Reilly The New Skill in AI is Not Prompting, It’s Context Engineering - Phil Schmid How Long Contexts Fail - dbreunig.com How to Fix Your Context - dbreunig.com AI Agents Need Memory Control Over More Context - arxiv.org AINews - Is Harness Engineering real? - Latent.Space The Model vs. the Harness: Which Actually Matters More? Embeddings and Vector Databases With ChromaDB – Real Python 12-factor-agents: What are the principles we can use to build LLM-powered software that is actually good enough to put in the hands of production customers? The Twelve-Factor App MongoDB Courses and Trainings - MongoDB University mongodb-mcp-server: A Model Context Protocol server to connect to MongoDB databases and MongoDB Atlas Clusters. What is the MongoDB MCP Server? - MongoDB Docs mongo-python-driver: PyMongo - the Official MongoDB Python driver agent-skills: Use the official MongoDB Skills with your favorite coding agent to build faster. Reachy Mini - Open-Source Desktop Humanoid Robot 👩🏻💻 Mikiko B. - LinkedIn Building AI Products From Scratch - Mikiko Bazeley - SubstackLevel up your Python skills with our expert-led courses:
Getting Started With Claude Code Building Type-Safe LLM Agents With Pydantic AI Using Pydantic to Simplify Python Data ValidationSupport the podcast & join our community of Pythonistas
Fri, 15 May 2026 - 295 - Declarative Charts in Python & Discerning Iterators vs Iterables
What if you could build charts in Python by describing what your data means, instead of scripting every visual detail? 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 article about the data visualization library Altair. Most tools require you to write detailed boilerplate code to set up the axis and figure. Altair follows a declarative approach where you specify which columns go to which axis, the type of chart or plot, and what should be interactive.
We also share other articles and projects from the Python community, including recent releases, clarifying the differences between iterators and iterables, decoupling your business logic from the Django ORM, comparing an LLM-based tool for web scraping against Playwright, a neural network emulator for guitar amplifiers, and a CLI tool to generate ASCII art of the current moon phase.
This episode is sponsored by Build Your Own Coding Agent.
Video Course Spotlight: Use Codex CLI to Enhance Your Python Projects
Learn how to use Codex CLI to add features to Python projects directly from your terminal, without needing a browser or IDE plugins.
Topics:
00:00:00 – Introduction 00:02:38 – Read the Docs Now SupportsuvNatively 00:03:09 – Reverting the Incremental GC in Python 3.14 and 3.15 00:04:51 – Altair: Declarative Charts With Python 00:12:23 – Sponsor: Build Your Own Coding Agent 00:13:17 – Decoupling Your Business Logic From the Django ORM 00:19:51 –browser-usevs. Playwright: Which to Pick for Web Scraping? 00:26:58 – 2048: iterators and iterables - Ned Batchelder 00:31:31 – Video Course Spotlight 00:33:00 – Discussion: Jumping back into solo developer mode 00:46:59 – neural-amp-modeler: Neural network emulator for guitar amplifiers 00:51:48 – ascii-moon-phase-python: CLI for ASCII art of the current moon phase 00:53:11 – Thanks and goodbye 00:54:43 – Appendix: Neural Amp Modeler - DemoNews:
Read the Docs Now SupportsuvNatively – Popular open source documentation site Read the Docs has announced they now support nativeuvin.readthedocs.yamlfor Python dependency installation. Learn how to use it in your configurations Reverting the Incremental GC in Python 3.14 and 3.15 Fixing a Memory “Leak” From Python 3.14’s Incremental Garbage Collection – Adam encountered an out-of-memory error while migrating a client project to Python 3.14. The issue occurred when running Django’s database migration command on a limited-resource server, and seemed to be caused by the new incremental garbage collection algorithm in Python 3.14.Show Links:
Altair: Declarative Charts With Python – Build interactive Python charts the declarative way with Altair. Map data to visual properties and add linked selections. No JavaScript required. Decoupling Your Business Logic From the Django ORM – Where should I keep my business logic? This is a perennial topic in Django. This article proposes a continuum of cases, each with increasing complexity.browser-usevs. Playwright: Which to Pick for Web Scraping? – Follow along in this walk-through building a Hacker News synthesizer with browser-use, then see it fail on a harder Newegg scraping task. Includes a side-by-side comparison with Playwright and a breakdown of when each tool is the right call. 2048: iterators and iterables - Ned Batchelder – Making a terminal based version of the 2048 game, Ned waded into a classic iterator/iterable confusion. This article shows you how they’re different and how confusing them can cause you problems in your code.Projects:
neural-amp-modeler: Neural network emulator for guitar amplifiers ascii-moon-phase-python: Command line program that outputs ASCII art of the current moon phaseAdditional Links:
Vega-Altair: Declarative Visualization in Python — Vega-Altair 6.1.0dev documentation Iterators and Iterables in Python: Run Efficient Iterations – Real Python Neural Amp Modeler - Highly-accurate free and open-source amp modeling plugin TONE3000 Official · Neural Amp Modeler (NAM) Profiles and Impulse Responses (IR’s)Level up your Python skills with our expert-led courses:
Efficient Iterations With Python Iterators and Iterables Use Codex CLI to Enhance Your Python Projects Graph Your Data With Python and ggplotSupport the podcast & join our community of Pythonistas
Fri, 08 May 2026 - 294 - Agentic Data Science Pair Programming With marimo pair
How do you add agent skills to your data science workflow? How can a coding agent assist with data wrangling and research? This week on the show, Trevor Manz from marimo joins us to discuss marimo pair.
Trevor is a founding engineer at marimo, where he’s been working on integrating LLM tools with marimo. We discuss the balancing act of building a skill and determining how to give an agent access to all the variables in a notebook. He shares how they built a specialized reactive REPL that eliminates hidden state and allows the agent to continue constructing a reproducible Python program.
We dig into installing and getting started with marimo pair. Trevor also covers several of the tasks an agent can tackle in a data science workflow.
Video Course Spotlight: Getting Started With marimo Notebooks
Discover how marimo notebook simplifies coding with reactive updates, UI elements, and sandboxing for safe, sharable notebooks.
Topics:
00:00:00 – Introduction 00:02:26 – Trevor’s role at marimo 00:03:08 – Current AI tools in marimo 00:06:26 – Describing marimo notebooks 00:10:11 – What is marimo pair? 00:18:49 – Building an agent skill 00:27:34 – Setup & installation 00:31:16 – Video Course Spotlight 00:32:42 – Examples of EDA and data wrangling 00:45:46 – Experimenting inside of a notebook 00:50:40 – Managing context 00:53:25 – Accessing additional libraries 00:57:16 – Recent tools and updates from the marimo community 00:59:31 – What are you excited about in the world of Python? 01:01:10 – What do you want to learn next? 01:02:26 – How can people follow your work online? 01:03:13 – Thanks and goodbyeShow Links:
Introducing marimo pair - marimo marimo-pair: Drop agents inside running marimo notebook sessions Marimo pair – Reactive Python notebooks as environments for agents - Hacker News Episode #230: marimo: Reactive Notebooks and Deployable Web Apps in Python marimo Pair - YouTube We gave Claude Access to All Python Variables - YouTube Using the marimo editor’s AI features - marimo ty: An extremely fast Python type checker and language server, written in Rust. molab - marimo marimo: A Reactive, Reproducible Notebook – Real Python Investigating Quasar Data With Polars and Interactive marimo Notebooks – Real Python Blog - marimo Trevor Manz - LinkedIn trevor manz (@manzt.sh) — BlueskyLevel up your Python skills with our expert-led courses:
Investigating Quasar Data With Polars and Interactive marimo Notebooks Getting Started With Claude Code Getting Started With marimo NotebooksSupport the podcast & join our community of Pythonistas
Fri, 01 May 2026 - 293 - Becoming a Better Python Developer Through Learning Rust
How can learning Rust help make you a better Python Developer? How do techniques required by a compiled language translate to improving your Python code? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
We discuss a recent article by Bob Belderbos titled “Learning Rust Made Me a Better Python Developer.” Bob has been on a journey learning to program in Rust, which has made him rethink how he’s been writing Python. The compiler forced him to confront things he’d been ignoring.
We also share other articles and projects from the Python community, including recent releases, a boatload of PEPs, NumPy as a synth engine, firing and forgetting with Python’s asyncio, managing state with signals in Python, a documentation site generator for Python packages, and a tool to explain your Python environment.
This episode is sponsored by AgentField.
Video Course Spotlight: Using Loguru to Simplify Python Logging
Learn how to use Loguru for simpler Python logging, from zero-config setup and custom formats to file rotation, retention, and adding context.
Topics:
00:00:00 – Introduction 00:02:23 – Python 3.15.0a8, 3.14.4 and 3.13.13 Released 00:03:01 – Django Security Releases: 6.0.4, 5.2.13, and 4.2.30 00:03:38 – DjangoCon Europe 2027 Call for Organizers 00:04:04 – PEP 803:"abi3t": Stable ABI for Free-Threaded Builds 00:04:44 – PEP 829: Structured Startup Configuration via .site.toml File 00:05:18 – PEP 830 – Add timestamps to exceptions and tracebacks 00:05:44 – PEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for Python 00:06:59 – PEP 832 – Virtual environment discovery 00:10:13 – PyCoder’s Weekly - Submit a Link 00:11:15 – NumPy as Synth Engine 00:21:04 – Sponsor: AgentField 00:22:05 – Fire and Forget at Textual 00:25:39 – Learning Rust Made Me a Better Python Developer 00:34:06 – Video Course Spotlight 00:35:49 – Signals: State Management for Python Developers 00:40:34 – great-docs: Documentation Site Generator for Python Package 00:42:32 – pywho: Explain Your Python Environment and Detect Shadows 00:44:01 – Thanks and goodbyeNews:
Python 3.15.0a8, 3.14.4 and 3.13.13 Released Django Security Releases: 6.0.4, 5.2.13, and 4.2.30 DjangoCon Europe 2027 Call for Organizers PEP 803:"abi3t": Stable ABI for Free-Threaded Builds (Accepted) PEP 829: Structured Startup Configuration via .site.toml Files (Added) PEP 830 – Add timestamps to exceptions and tracebacks PEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for Python PEP 832 – Virtual environment discovery PyCoder’s Weekly - Submit a Link The Real Python PodcastShow Links:
NumPy as Synth Engine – Kenneth has “recorded” a song in a Python script. The catch? No sampling, no recording, no pre-recorded sound. Everything was done through generating wave functions in NumPy. Learn how to become a mathematical musician. Fire and Forget at Textual – In this follow up to a previous article (Fire and forget (or never) with Python’s asyncio, Michael discusses a similar article by Will McGugan as it relates to Textual. He found the problematic pattern in over 500K GitHub files. Learning Rust Made Me a Better Python Developer – Bob thinks that learning Rust made him a better Python developer. Not because Rust is better, but because it made him think differently about how he has been writing Python. The compiler forced him to confront things he’d been ignoring. Signals: State Management for Python Developers – If you’ve ever debugged why your cache didn’t invalidate or notifications stopped firing after a “simple” state change, this guide is for you. Signals are becoming a JavaScript standard, but Python developers can use the same patterns to eliminate “forgot to update that thing” bugs.Projects:
great-docs: Documentation Site Generator for Python Packages pywho: Explain Your Python Environment and Detect ShadowsAdditional Links:
Open Source Gave Me Everything Until I Had Nothing Left to Give - Kenneth Reitz Yeah… this was impressive to see. #tabla - Escalated Quickly - YouTube PyTheory Is Awesome - Kenneth Reitz PyTheory: Music Theory for Humans – PyTheory 0.42.1 documentation A Mini DAW in the Python REPL - Kenneth Reitz Episode #210: Creating a Guitar Synthesizer & Generating WAV Files With Python Angine de Poitrine - Vidéos Episode #195: Building a Healthy Developer Mindset While Learning Python Bite‑sized Rust learning, powered by Pybites Episode #214: Build Captivating Display Tables in Python With Great TablesLevel up your Python skills with our expert-led courses:
Thread Safety in Python: Locks and Other Techniques NumPy Techniques and Practical Examples Using Loguru to Simplify Python LoggingSupport the podcast & join our community of Pythonistas
Fri, 24 Apr 2026 - 292 - Reassessing the LLM Landscape & Summoning Ghosts
What are the current techniques being employed to improve the performance of LLM-based systems? How is the industry shifting from post-training towards context engineering and multi-agent orchestration? This week on the show, Jodie Burchell, data scientist and Python Advocacy Team Lead at JetBrains, returns to discuss the current AI coding landscape.
In our last conversation, Jodie covered how LLMs were approaching the limits of scaling laws. This time, we recap last year’s big focus on reasoning models and a post-training method called “reinforcement learning from verifiable rewards” (RLVR). We also cover test-time compute, where models spend more time reasoning through steps and considering multiple approaches to solve a problem.
We touch on Agent Context Protocol (ACP), agent orchestration layers, and context engineering. We also share some concerns about the hype cycle, maintaining all that code being generated, and running local models.
Course Spotlight: Vector Databases and Embeddings With ChromaDB
Learn how to use ChromaDB, an open-source vector database, to store embeddings and give context to large language models in Python.
Topics:
00:00:00 – Introduction 00:02:02 – Build a Language-Learning Agent course 00:02:55 – Update on the past six months of LLMs 00:05:32 – Reinforcement Learning From Verifiable Rewards 00:07:32 – Test Time Compute 00:08:36 – 2025 and the rise of agents 00:14:24 – Benchmarks shifting 00:15:23 – Andrew Karpathy and jagged intelligence 00:19:16 – Not evolving or growing animals but summoning ghosts 00:23:34 – Diminishing gains in newer models 00:24:23 – Context Engineering 00:35:01 – Multi-agent systems and diversity of models 00:36:56 – Video Course Spotlight 00:38:34 – Current generation of coding agents 00:44:00 – Fast vs deep reasoning 00:45:18 – Agent Context Protocol 00:50:19 – Working through the hype cycle 00:55:43 – Open-source contribution pollution 00:57:21 – Local models 00:58:36 – Rick Beato comparing how the music industry failed 01:08:41 – LLMs are an amazing development 01:11:33 – Keynote talk on AI summers and winters 01:12:45 – PyCon US and EuroPython 01:14:11 – Thanks and goodbyeShow Links:
AI Agent Course - Build a Language‑Learning Agent with OpenAI, LangGraph, Ollama & MCP - YouTube Episode #264: Large Language Models on the Edge of the Scaling Laws Reinforcement Learning with Verifiable Rewards Implicitly Incentivizes Correct Reasoning in Base LLMs Reinforcement learning with verifiable rewards (RLVR) What is test-time compute and how to scale it? Overfitting - Wikipedia 2025 LLM Year in Review - karpathy Animals vs Ghosts - karpathy Agent Context Protocols Enhance Collective Inference Open source AI we use to work on Wagtail - Wagtail CMS LLMs for Devs: Model Selection, Hallucinations, Agents, AGI – Jodie Burchell - The Marco Show Keynote - Can you trust your (large language) model? - Standard error The Human-in-the-Loop is Tired How AI Will Fail Like The Music Industry - YouTube “Yes, AI Is a Bubble. There Is No Question.” - The Ringer Keynote: AI is having its moment … again - Jodie Burchell - NDC Copenhagen 2025 PyCon US 2026 EuroPython 2026 - July 13th-19th 2026 - Kraków, Poland Jodie Burchell (@t-redactyl.bsky.social) — Bluesky Standard errorLevel up your Python skills with our expert-led courses:
Vector Databases and Embeddings With ChromaDB Getting Started With Claude Code Getting Started With Google Gemini CLISupport the podcast & join our community of Pythonistas
Fri, 17 Apr 2026 - 291 - Advice on Managing Projects & Making Python Classes Friendly
What goes into managing a major project? What techniques can you employ for a project that’s in crisis? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
We discuss an article by Ben Kuhn titled, “How I’ve Run Major Projects.” We dig into the skills required for project management, and provide advice for when projects fall into crisis. We cover how the field’s terminology has been updated. However, the time investment, sober communication, and planning still remain at the core of successful projects.
We also share other articles and projects from the Python community, including recent releases and announcements, exploring an IDE for data science development, using Python set comprehensions, making friendly classes, using
atexitfor cleanup, a high-performance caching library for Python written in Rust, and a curated list of awesome marimo things.This episode is sponsored by PropelAuth.
Video Course Spotlight: Using Data Classes in Python
When using data classes, you don’t have to write boilerplate code to get proper initialization, representation, and comparisons for your objects.
Topics:
00:00:00 – Introduction 00:02:15 – Starlette 1.0 Released 00:03:08 – PyOhio 2026 Call for Proposals Now Open! 00:03:42 – Spyder: Your IDE for Data Science Development in Python 00:11:04 – Python Set Comprehensions: How and When to Use Them 00:14:40 – Sponsor: PropelAuth 00:15:17 – Making Friendly Classes 00:23:51 – How to Useatexitfor Cleanup 00:25:49 – Video Course Spotlight 00:27:14 – How I’ve run major projects 00:47:47 – awesome-marimo: Curated List of Awesome Marimo Things 00:51:37 – moka-py: A high performance caching library for Python written in Rust 00:53:24 – Thanks and goodbyeNews:
Starlette 1.0 Released PyOhio 2026 Call for Proposals Now Open!Show Links:
Spyder: Your IDE for Data Science Development in Python – Learn how to use the Spyder IDE, a Python code editor built for scientists, engineers, and data analysts working with data-heavy workflows. Python Set Comprehensions: How and When to Use Them – In this tutorial, you’ll learn how to write set comprehensions in Python. You’ll also explore the most common use cases for set comprehensions and learn about some bad practices that you should avoid when using them in your code. Making Friendly Classes – What’s a friendly class? One that accepts sensible arguments, has a nice string representation, and supports equality checks. Read on to learn how to write them. How to Useatexitfor Cleanup – Divakar recently came across Python’satexitmodule and became curious about practical use cases in real-world applications. To explore it, he created a simple client-server app that uses a clean-up function.Discussion:
How I’ve run major projects: benkuhn.netProjects:
awesome-marimo: Curated List of Awesome Marimo Things moka-py: A high performance caching library for Python written in RustAdditional Links:
Positron Data Classes in Python (Guide) – Real Python Episode #230: marimo: Reactive Notebooks and Deployable Web Apps in Python Getting Started With marimo Notebooks – Real Python Investigating Quasar Data With Polars and Interactive marimo NotebooksLevel up your Python skills with our expert-led courses:
Using Data Classes in Python Investigating Quasar Data With Polars and Interactive marimo Notebooks Getting Started With marimo NotebooksSupport the podcast & join our community of Pythonistas
Fri, 10 Apr 2026 - 290 - Limitations in Human and Automated Code Review
With the mountains of Python code that it’s possible to generate now, how’s your code review going? What are the limitations of human review, and where does machine review excel? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
We discuss a recent piece from Glyph titled, “What Is Code Review For?” We dig into the limitations of human review and where software tools like linters and formatters can help you. We cover the challenges developers and open-source maintainers face with the rise of LLM-generated code and pull requests.
We also share other articles and projects from the Python community, including a collection of recent releases and announcements, creating publication-ready tables from DataFrames, choosing the right Python task queue, mastering context managers, statically checking Python dicts for completeness, an open-source inventory management system, and an ORM-based backend for Django tasks.
This episode is sponsored by SerpApi.
Spotlight: Intermediate Python Deep Dive: Write Better Python and Build Better Systems
Master advanced patterns, OOP, and Pythonic design in eight weeks–with live expert guidance.
Topics:
00:00:00 – Introduction 00:02:32 – DuckDB 1.5.0 Released 00:03:11 – PyPy v7.3.21 Released 00:03:30 – Sunsetting Jazzband 00:04:08 – Thoughts on OpenAI acquiring Astral and uv/ruff/ty 00:05:19 – Great Tables: Publication-Ready Tables From DataFrames 00:10:24 – Comparing PDF Table Extraction Tools 00:11:53 – Sponsor: SerpApi 00:12:55 – Choosing the Right Python Task Queue 00:16:57 – Mastering Python Context Managers 00:22:40 – Statically Checking Python Dicts for Completeness 00:25:00 – Spotlight: Intermediate Python Deep Dive 00:26:16 – What Is Code Review For? 00:43:48 – usdatasets: Installable Collection of Datasets on USA 00:45:22 – InvenTree: OSS Inventory Management System 00:48:01 – django-tasks-db: An ORM-based Backend for Django Tasks 00:49:41 – Thanks and goodbyeNews:
DuckDB 1.5.0 Released PyPy v7.3.21 Released Sunsetting Jazzband Thoughts on OpenAI acquiring Astral and uv/ruff/ty OpenAI Acquiring Astral: A 4th Option for Fun - Will VincentShow Links:
Great Tables: Publication-Ready Tables From DataFrames – Learn how to create publication-ready tables from Pandas and Polars DataFrames using Great Tables. Format currencies, add sparklines, apply conditional styling, and export to PNG. Comparing PDF Table Extraction Tools – This article explores three Python tools for PDF table extraction: Docling, Marker, and LlamaParse. Learn which handles merged cells and multi-level headers best. Choosing the Right Python Task Queue – Python has great options for task queues. Choosing between Celery and RQ isn’t an easy decision. Jump in and learn how each option compares! Mastering Python Context Managers – Go beyond just usingopen()and learn how Python context managers work and where they are useful. Statically Checking Python Dicts for Completeness – To keep code concerns separate, you might have two data structures (like an Enum and a dict) that are supposed to change in sequence: adding a value to the Enum requires you to add a similar value in the dict. This is common when separating business logic from UI code. This article shows you ways of making sure the corresponding changes happen together.Discussion:
What Is Code Review For? – This post explores just what you should and should not use code reviews for. Learn when to use linters to catch problems vs when human review is important. Your job is to deliver code you have proven to workProjects:
usdatasets: Installable Collection of Datasets on USA InvenTree: OSS Inventory Management System django-tasks-db: An ORM-based Backend for Django TasksAdditional Links:
Episode #214: Build Captivating Display Tables in Python With Great Tables Great Blogposts – great_tables Python’s with Statement: Manage External Resources Safely – Real Python Context Managers and Using Python’s with Statement – Real Python Episode #183: Exploring Code Reviews in Python and Automating the Process Episode #246: Learning Intermediate Python With a Deep Dive CourseLevel up your Python skills with our expert-led courses:
Modern Python Linting With Ruff Context Managers and Using Python's with Statement Creating Asynchronous Tasks With Celery and DjangoSupport the podcast & join our community of Pythonistas
Fri, 27 Mar 2026 - 289 - Automate Exploratory Data Analysis & Invent Python Comprehensions
How do you quickly get an understanding of what’s inside a new set of data? How can you share an exploratory data analysis with your team? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
We discuss a recent Real Python tutorial about YData Profiling. This library lets you quickly generate an exploratory data analysis (EDA) report with a few lines of code. The report provides column-level analysis, visualizations, and summary statistics that can be exported to HTML to share with others.
We cover an article by Trey Hunner about building your own Python comprehensions. Python includes list, dictionary, and set comprehensions. But what if you want to create ones for other collections, such as a tuple, frozenset, or a Counter?
We also share other articles and projects from the Python community, including a collection of recent releases and PEPs, using the Django ORM as a standalone module, a history of attempts to eliminate programmers, a discussion of bad managers, a modern Python project template, and a CLI to summarize code size by language.
This episode is sponsored by AgentField.
Course Spotlight: Understanding Python List Comprehensions
Python list comprehensions make it easy to create lists while performing sophisticated filtering, mapping, and conditional logic on their members. In this course, you’ll learn when to use list comprehensions in Python and how to create them effectively.
Topics:
00:00:00 – Introduction 00:02:46 – Python 3.12.13, 3.11.15, 3.10.20 and Python 3.15.0 alpha 7 Released 00:03:25 – Django Security Releases Issued: 6.0.3, 5.2.12, and 4.2.29 00:03:39 – PEP 825: Wheel Variants: Package Format 00:04:20 – PEP 827: Type Manipulation 00:05:11 – Automate Python Data Analysis With YData Profiling 00:11:31 – Django ORM Standalone: Querying an Existing Database 00:16:43 – Sponsor: AgentField 00:17:42 – Invent Your Own Comprehensions in Python 00:22:34 – A History of Attempts to Eliminate Programmers 00:28:51 – Video Course Spotlight 00:30:03 – Three Bad Managers 00:50:42 – python_template: Modern Python Project Template 00:53:38 – tallyman: CLI to Summarize Code Size by Language 00:55:06 – Thanks and goodbyeNews:
Python 3.12.13, 3.11.15 and 3.10.20 Released Python 3.15.0 alpha 7 - Python Insider Django Security Releases Issued: 6.0.3, 5.2.12, and 4.2.29 PEP 825: Wheel Variants: Package Format (Added) PEP 827: Type Manipulation (Added)Show Links:
Automate Python Data Analysis With YData Profiling – Automate exploratory data analysis by transforming DataFrames into interactive reports with one command from YData Profiling. Django ORM Standalone: Querying an Existing Database – A practical step-by-step guide to using Django ORM in standalone mode to connect to and query an existing database usinginspectdb. Invent Your Own Comprehensions in Python – Python doesn’t have tuple, frozenset, or Counter comprehensions, but you can invent your own by passing a generator expression to any iterable-accepting callable. A History of Attempts to Eliminate Programmers – From COBOL in the 1960s to AI in the 2020s, every generation promises to eliminate programmers. Explore the recurring cycles of software simplification hype.Discussion:
Three Bad Managers – Rands in ReposeProjects:
python_template: Modern Python Project Template tallyman: CLI to Summarize Code Size by LanguageAdditional Links:
When to Use a List Comprehension in Python – Real Python Understanding Python List Comprehensions – Real Python A Modern Python Stack for Data Projects copier CookiecutterLevel up your Python skills with our expert-led courses:
Understanding Python List Comprehensions How to Set Up a Django Project The pandas DataFrame: Working With Data EfficientlySupport the podcast & join our community of Pythonistas
Fri, 20 Mar 2026 - 288 - Crafting and Editing In-Depth Tutorials at Real Python
What goes into creating the tutorials you read at Real Python? What are the steps in the editorial process, and who are the people behind the scenes? This week on the show, Real Python team members Martin Breuss, Brenda Weleschuk, and Philipp Acsany join us to discuss topic curation, review stages, and quality assurance.
We start by sharing the multiple roles our panel of guests perform across the editorial process. They describe the phases a tutorial passes through, including layers of reviews, from technical accuracy to educational effectiveness. We also discuss our editorial independence, external authors, and the continuous feedback loop with our readers.
This episode is sponsored by AgentField.
Spotlight: Claude Code Course: Stop Copy-Pasting From ChatGPT
Most Python developers use AI as fancy autocomplete. This 2-day course teaches you to build entire projects with an AI agent inside your codebase.
Topics:
00:00:00 – Introduction 00:03:33 – Martin’s role at Real Python 00:04:35 – Philipp’s role at Real Python 00:05:27 – Brenda’s role at Real Python 00:06:49 – Internal core team and external contributors 00:13:46 – Selecting topics and subjects 00:21:43 – Outlining and review 00:28:26 – Sponsor: AgentField 00:29:27 – Writing drafts 00:34:03 – Changes to our style and format 00:37:32 – Technical review and using Git 00:43:53 – Didactic review 00:52:59 – Language edit 00:57:16 – Spotlight: Claude Code Live Course 00:59:00 – Final QA 01:01:00 – Scheduling 01:03:36 – Reader feedback and updating existing tutorials 01:06:04 – Using modern tools 01:13:59 – Shining the light on contributors 01:16:26 – Independence and editorial choices 01:19:10 – Thanks and goodbyeShow Links:
Editorial Guidelines – Real Python Meet Our Team About Martin Breuss About Philipp Acsany About Brenda Weleschuk Create Your Learning Plan Python Learning Paths Reference – Real Python Join the Real Python Team – Real Python Cohort-Based Live Python Courses – Real PythonLevel up your Python skills with our expert-led courses:
Getting Started With Claude Code Write Python Docstrings Effectively Python Basics: Code Your First Python ProgramSupport the podcast & join our community of Pythonistas
Fri, 13 Mar 2026 - 287 - Overcoming Testing Obstacles With Python's Mock Object Library
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.mockallows you to simulate complex logic or unpredictable dependencies, such as responses from external services. He covers how theMockclass can imitate real objects, and thepatch()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 goodbyeNews:
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.28Show 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 ViewsAdditional 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 TextualLevel 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 CodeSupport the podcast & join our community of Pythonistas
Fri, 27 Feb 2026 - 286 - Exploring MCP Apps & Adding Interactive UIs to Clients
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 goodbyeShow 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) - MastodonLevel up your Python skills with our expert-led courses:
Getting Started With Claude Code Getting Started With Google Gemini CLI Write Python Docstrings EffectivelySupport the podcast & join our community of Pythonistas
Fri, 20 Feb 2026 - 285 - Running Local LLMs With Ollama and Connecting With Python
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 ofsubprocesspolling, 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 ofsubprocessPolling 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 goodbyeNews:
Take the Python Developers Survey 2026 The State of Python 2025: Trends and Survey Insights - The PyCharm BlogTopics:
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 ofsubprocessPolling – Python’s standard librarysubprocessmodule 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 NewsProjects:
cmd-chat: Peer-to-Peer Encrypted CLI Chat redress: A Retry Library That Classifies ErrorsAdditional Links:
Ollama Python’s .call() Method: Creating Callable Instances – Real Python Quiz: GeoPandas Basics: Maps, Projections, and Spatial JoinsLevel 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 CursorSupport the podcast & join our community of Pythonistas
Fri, 13 Feb 2026 - 284 - Improving Your GitHub Developer Experience
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
LGTMandFTFY.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 goodbyeShow 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) - FosstodonLevel 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 ProjectSupport the podcast & join our community of Pythonistas
Fri, 06 Feb 2026 - 283 - Testing Python Code for Scalability & What's New in pandas 3.0
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 – Introducingtprof, 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 goodbyeNews:
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.colexpressions 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. Introducingtprof, a Targeting Profiler – Adam has writtentprof, 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 documentationDiscussion:
10 hard-to-swallow truths they won’t tell you about software engineer jobProjects:
gazetteer: Offline Reverse Geocoding Library python-fire: Python Fire is a library for automatically generating command-line interfaces (CLIs) from absolutely any Python objectAdditional 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 ScaleneLevel 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 PythonSupport the podcast & join our community of Pythonistas
Fri, 30 Jan 2026 - 282 - Continuing to Improve the Learning Experience at Real Python
If you haven’t visited the Real Python website lately, then it’s time to check out a great batch of updates on realpython.com! Dan Bader returns to the show this week to discuss improvements to the site and more ways to learn Python.
Dan details changes to the website, including our Python reference area. This tool provides a quick reference for both beginners and experienced developers looking for concise definitions and refreshers on Python’s features.
We discuss the expansion of our live courses to include a beginner course and an intermediate deep dive. Dan also shares how we’re growing the team and highlights the ongoing commitment to our editorial standards.
Spotlight: Python for Beginners: Code With Confidence
Learn the fundamentals of Python step-by-step in a friendly, interactive cohort. Build confidence writing code and understand the “why” behind Python’s core concepts.
Topics:
00:00:00 – Introduction 00:02:54 – Real Python Reference 00:08:31 – Integration with search 00:13:51 – Sponsor: Honeybadger 00:14:38 – Live courses 00:23:20 – Podcast visibility and interconnection 00:32:42 – Spotlight 00:33:35 – Editorial standards and goals for 2026 00:36:28 – Building the team 00:37:52 – Real Python for teams 00:40:56 – Feedback and listening to users 00:43:23 – Thanks and goodbyeShow Links:
Reference – Real Python Cohort-Based Live Python Courses – Real Python Episode #246: Learning Intermediate Python With a Deep Dive Course Episode #279: Coding Python With Confidence: Beginners Live Course Participants The Real Python Podcast – Real Python Python Learning Paths – Real Python Editorial Guidelines – Real Python Meet Our Team – Real Python Team Memberships – Real Python Feedback – Real PythonLevel up your Python skills with our expert-led courses:
Python Decorators 101 Python Basics: Code Your First Python Program Intro to Object-Oriented Programming (OOP) in PythonSupport the podcast & join our community of Pythonistas
Fri, 23 Jan 2026 - 281 - Considering Fast and Slow in Python Programming
How often have you heard about the speed of Python? What’s actually being measured, where are the bottlenecks—development time or run time—and which matters more for productivity? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares an article titled “The Uselessness of ‘Fast’ and ‘Slow’ in Programming.” It digs into how the different aspects of software performance span a wide range of orders of magnitude, and how developers can obsess over irrelevant performance details, often losing more time working in suboptimal environments than building what they need with tools they already know.
We also discuss an article about why
uvis fast, which explains how most of its speed comes from engineering decisions rather than just being written in Rust.We then share several other articles and projects from the Python community, including a roundup of 2025 year-end lists, an explanation of why Python’s
deepcopycan be so slow, serving a website with FastAPI using Jinja2, Python numbers every programmer should know, a discussion of spec-driven development and whether waterfall is back, a tool to detect whether a PDF has a bad redaction, and a CLI for measuring HTTP request phases.Course Spotlight: Jinja Templating
With Jinja, you can build rich templates that power the front end of your web applications. But you can also use Jinja without a web framework running in the background. Whenever you need to generate text files with dynamic content, Jinja provides a flexible and powerful solution.
Topics:
00:00:00 – Introduction 00:02:53 – Top Python Libraries of 2025 00:04:43 – 2025 Python Year in Review 00:04:58 – PyPI in 2025: A Year in Review 00:05:36 – Join in the PSF Year-End Fundraiser & Membership Drive! 00:06:10 – HowuvGot So Fast 00:12:29 – Why Python’sdeepcopyCan Be So Slow 00:17:03 – Serve a Website With FastAPI Using HTML and Jinja2 00:23:19 – The Uselessness of “Fast” and “Slow” in Programming 00:27:06 – Python Numbers Every Programmer Should Know 00:28:17 – Video Course Spotlight 00:29:43 – Spec-Driven Development: The Waterfall Strikes Back 00:49:21 – x-ray: A Tool to Detect Whether a PDF Has a Bad Redaction 00:52:20 – httptap: CLI Measuring HTTP Request Phases 00:54:19 – Thanks and goodbye2025 Top List Roundup
Top Python Libraries of 2025 – Explore Tryolabs’ 11th annual Top Python Libraries roundup, featuring two curated Top 10 lists: one for General Use and one for AI/ML/Data tools. 2025 Python Year in Review – Talk Python interviews Barry Warsaw, Brett Cannon, Gregory Kapfhammer, Jodie Burchell, Reuven Lerner, and Thomas Wouters, and the panel discusses what mattered for Python in 2025. PyPI in 2025: A Year in Review – Dustin summarizes all the happenings with the Python Packaging Index in 2025, including 130,000 new projects and over 2.5 trillion requests served. Join in the PSF Year-End Fundraiser & Membership Drive!Topics:
HowuvGot So Fast –uv’s speed comes from engineering decisions, not just Rust. Static metadata, dropping legacy formats, and standards that didn’t exist five years ago. Why Python’sdeepcopyCan Be So Slow – “Python’scopy.deepcopy()creates a fully independent clone of an object, traversing every nested element of the object graph.” That can be expensive. Learn what it’s doing and how you can sometimes avoid the cost. Serve a Website With FastAPI Using HTML and Jinja2 – Use FastAPI to render Jinja2 templates and serve dynamic sites with HTML, CSS, and JavaScript, then add a color picker that copies hex codes. The Uselessness of “Fast” and “Slow” in Programming – “One of the unique aspects of software is how it spans such a large number of orders of magnitude.” The huge difference makes the terms “fast” and “slow” arbitrary. Read on to discover how this affects our thinking as programmers and what mistakes it can cause. Python Numbers Every Programmer Should Know – Ever wonder how much memory an empty list takes? How about how long it takes to add two integers in Python? This post contains loads of performance data for common Python operations.Discussion:
Spec-Driven Development: The Waterfall Strikes Back Coding has never been the bottleneck - Rob BowleyProjects:
x-ray: A Tool to Detect Whether a PDF Has a Bad Redaction httptap: CLI Measuring HTTP Request PhasesAdditional Links:
Episode #238: Charlie Marsh: Accelerating Python Tooling With Ruff and uv – The Real Python Podcast Primer on Jinja Templating – Real Python Get Started With FastAPI – Real Python Teach Yourself Programming in Ten YearsLevel up your Python skills with our expert-led courses:
Python REST APIs With FastAPI Creating a Scalable Flask Web Application From Scratch Jinja TemplatingSupport the podcast & join our community of Pythonistas
Fri, 16 Jan 2026 - 280 - Coding Python With Confidence: Beginners Live Course Participants
Are you looking for that solid foundation to begin your Python journey? Would the accountability of scheduled group classes help you get through the basics and start building something? This week, two members of the Python for Beginners live course discuss their experiences.
We speak with course instructor Stephen Gruppetta about building a course where the participants start using their knowledge as soon as possible. He describes how he’s evolved his teaching techniques over years of working with beginners. We explore the advantages of having a curated collection of written tutorials, video courses, and a forum for asking those nagging questions.
We also speak with students Louis and Andrew about their experiences learning Python through the course. They discuss learning how to apply their new skills, employing them in their careers, and building confidence to continue their Python learning journey.
Spotlight: Python for Beginners: Code With Confidence
Learn the fundamentals of Python step-by-step in a friendly, interactive cohort. Build confidence writing code and understand the “why” behind Python’s core concepts.
Topics:
00:00:00 – Introduction 00:01:40 – Instructor Stephen Gruppetta 00:02:42 – Designing the course 00:09:01 – Introducing mini-projects early 00:13:22 – How have the questions changed for Python beginners? 00:20:23 – Taking advantage of Real Python resources 00:24:07 – More courses for 2026 00:25:40 – Spotlight: Python for Beginners 00:26:39 – Python for Beginners participants 00:27:50 – Louis’ background in programming 00:30:46 – Andrew’s background in programming 00:37:43 – Starting to use the knowledge with mini-projects 00:42:52 – What were challenges with the language? 00:54:15 – Working on the larger final project 00:59:45 – What advantages did the cohort-style course provide? 01:03:56 – Are you ready for that blank page? 01:12:00 – How do you see yourself using these new skills? 01:17:39 – Thanks and goodbyeShow Links:
Python for Beginners: Code With Confidence – Real Python Episode #246: Learning Intermediate Python With a Deep Dive Course Intermediate Python Deep Dive Course – Real Python Cohort-Based Live Python Courses – Real Python MI6 chief: We’ll be as fluent in Python as we are in Russian - The RegisterLevel up your Python skills with our expert-led courses:
Python Basics: Setting Up Python Python Basics: Code Your First Python Program Python Basics: Lists and TuplesSupport the podcast & join our community of Pythonistas
Fri, 09 Jan 2026 - 279 - PyCoder's Weekly 2025 Top Articles & Hidden Gems
PyCoder’s Weekly included over 1,500 links to articles, blog posts, tutorials, and projects in 2025. Christopher Trudeau is back on the show this week to help wrap up everything by sharing some highlights and uncovering a few hidden gems from the pile.
We share the top links explored by PyCoder’s readers. We also dig into trends across all the articles and stories this year. We highlight a few gems that we didn’t cover on the show and a couple that explore the overall themes of the year.
We hope you enjoy this review! We look forward to bringing you an upcoming year full of great Python news, articles, topics, and projects.
Course Spotlight: Using Functional Programming in Python
Boost your Python skills with a quick dive into functional programming: what it is, how Python supports it, and why it matters.
Topics:
00:00:00 – Introduction 00:01:52 – Django 6.0 released 00:02:58 – The Inner Workings of Python Dataclasses Explained 00:03:40 – Going Beyond requirements.txt With pylock.toml and PEP 751 00:04:58 – Django vs. FastAPI, An Honest Comparison 00:05:46 – How to Use Loguru for Simpler Python Logging 00:06:47 – Narwhals: Unified DataFrame Functions 00:08:32 – Observations and statistics for the year of articles 00:13:23 – Data Validation Libraries for Polars (2025 Edition) 00:18:53 – Video Course Spotlight 00:20:25 – Create Temporary Files and Directories in Unittest 00:22:27 – Capture Stdout and Stderr in Unittest 00:24:59 – I don’t like NumPy 00:26:34 – Python performance myths and fairy tales 00:31:05 – Congratulations on making through 2025!News:
Django 6.0 released - Django WeblogTop PyCoders Links 2025:
The Inner Workings of Python Dataclasses Explained – Discover how Python dataclasses work internally! Learn how to use__annotations__andexec()to make our own dataclass decorator! Episode #249: Going Beyond requirements.txt With pylock.toml and PEP 751 – What is the best way to record the Python dependencies for the reproducibility of your projects? What advantages will lock files provide for those projects? This week on the show, we welcome back Python Core Developer Brett Cannon to discuss his journey to bring PEP 751 and the pylock.toml file format to the community. Django vs. FastAPI, An Honest Comparison – David has worked with Django for a long time, but recently has done some deeper coding with FastAPI. As a result, he’s able to provide a good contrast between the libraries and why/when you might choose one over the other. How to Use Loguru for Simpler Python Logging – Real Python – In this tutorial, you’ll learn how to use Loguru to quickly implement better logging in your Python applications. You’ll spend less time wrestling with logging configuration and more time using logs effectively to debug issues. Narwhals: Unified DataFrame Functions for pandas, Polars, and PySpark – Narwhals is a lightweight compatibility layer between DataFrame libraries. You can use it as a common interface to write reproducible and maintainable data science code which supports pandas, Polars, DuckDB, PySpark, PyArrow, and more.Featured Links:
Data Validation Libraries for Polars (2025 Edition) – Pointblank - Given that Polars is so hot right now and that data validation is an important part of a data pipeline, this post explores five Python data validation libraries that support Polars DataFrames. Through contrasting and comparison, the post puts forward which of them are best for specific use cases. Python: Create Temporary Files and Directories in Unittest – Sometimes, tests need temporary files or directories. You can do this in Python’s unittest with the standard library tempfile module. This post looks at some recipes to do so within individual tests andsetUp(). Python: Capture Stdout and Stderr in Unittest – When testing code that outputs to the terminal through either standard out (stdout) or standard error (stderr), you might want to capture that output and make assertions on it. I don’t like NumPy – This opinion piece talks about why NumPy gets difficult fast. Two dimensions to your array? No problem, the calc is mostly self evident. Add a couple more dimensions and it gets messy fast. See also the associated HN discussion, which also includes possible solutions. Python performance myths and fairy tales – This post summarizes a talk by Antonio Cuni who is a long time contributor to PyPy, the alternate Python interpreter. The talk spoke about the challenges and limits of performance in Python and how the flexibility of dynamic languages comes at a cost. See also the associated HN discussion.Additional Links:
Episode #224: Narwhals: Expanding DataFrame Compatibility Between Libraries Episode #272: Michael Kennedy: Managing Your Own Python Infrastructure Episode #510 - 10 Polars Tools and Techniques To Level Up Your Data Science ty waelstow: Python unittest utilities. Includes output capture, test discovery, and directory relocation. PyPy spylang · GitHubLevel up your Python skills with our expert-led courses:
Filtering Iterables With Python Using Functional Programming in Python NumPy Techniques and Practical ExamplesSupport the podcast & join our community of Pythonistas
Fri, 02 Jan 2026 - 278 - Moving Towards Spec-Driven Development
What are the advantages of spec-driven development compared to vibe coding with an LLM? Are these recent trends a move toward declarative programming? This week on the show, Marc Brooker, VP and Distinguished Engineer at AWS, joins us to discuss specification-driven development and Kiro.
Marc describes the process of developing an application by writing specifications, which outline what a program should do and what needs it should meet. We dig into a bit of computer science history to explore the differences between declarative and imperative programming.
We also discuss Kiro, a new integrated development environment from Amazon, built around turning prompts into structured requirements. We examine the various types of documents used to specify tasks, requirements, design, and steering.
Real Python Resource Spotlight: Python Coding With AI - Learning Path
Explore tools and workflows for AI in Python: coding partners, prompt engineering, RAG, ChromaDB, FastAPI chatbots, and MCP integrations. Stay current and start today.
Topics:
00:00:00 – Introduction 00:02:41 – How did you get involved in open source? 00:07:23 – How would you describe spec-driven development? 00:10:49 – Balancing the desire to start coding with defining the project 00:13:06 – What does this documentation look like? 00:18:27 – Declarative vs imperative programming 00:24:13 – Infrastructure as part of the design 00:27:03 – Getting started with a small project 00:29:05 – Committing the spec files along with the code 00:31:08 – What is steering? 00:34:17 – How to get better at distilling specifications? 00:38:59 – What are anti-patterns in spec-driven development? 00:41:08 – Should you avoid third-party libraries? 00:43:16 – Real Python Resource Spotlight 00:44:39 – Getting started with Kiro 00:51:00 – Neuro-symbolic AI 00:55:41 – What are you excited about in the world of Python? 00:58:36 – What do you want to learn next? 01:00:18 – How can people follow your work online? 01:00:57 – Thanks and goodbyeShow Links:
Kiro and the future of AI spec-driven software development - Kiro Marc Brooker’s Blog - Marc’s Blog Kiro: The AI IDE for prototype to production Beyond Prompts: The Future of AI-Assisted Development | Marc Brooker - YouTube Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl Declarative programming - Wikipedia Behaviour-Driven Development - Cucumber Steering - Docs - Kiro Best practices - Docs - Kiro CLI - Kiro Does your code match your spec? - Kiro Amazon takes on AI’s biggest nightmare: Hallucinations - Fast Company Neuro-symbolic AI - Wikipedia Spec-Driven Development: The Waterfall Strikes Back G-code - Wikipedia Marc Brooker (@MarcJBrooker) / X Marc Brooker (@marcbrooker@fediscience.org) Marc Brooker - LinkedInLevel up your Python skills with our expert-led courses:
Getting Started With Claude Code First Steps With LangChain Building a Neural Network & Making Predictions With Python AISupport the podcast & join our community of Pythonistas
Fri, 19 Dec 2025 - 277 - Exploring Quantum Computing & Python Frameworks
What are the recent advances in the field of quantum computing and high-performance computing? And what Python tools can you use to develop programs that run on quantum computers? This week on the show, Real Python author Negar Vahid discusses her tutorial, “Quantum Computing Basics With Qiskit.”
Negar digs into the fundamentals of quantum computers, describing qubits, superposition, entanglement, and interference. We discuss the concept of quantum advantage and the fields of exploration where quantum computing promises speed-ups over classical computers. She also shares tools for designing quantum circuits with Python.
Course Spotlight: Profiling Performance in Python
Learn to profile Python programs with built-in and popular third-party tools, and turn performance insights into faster code.
Topics:
00:00:00 – Introduction 00:01:31 – Writing for Real Python 00:02:37 – What drew you to quantum computing? 00:04:27 – What is quantum advantage? 00:07:10 – Quantum computing basics article 00:09:32 – Linear algebra 00:10:32 – What is a quantum computer? 00:14:52 – Superconducting devices 00:17:29 – Looking for ways to advance computing 00:19:17 – Superposition of qubits and entanglement 00:22:43 – Video Course Spotlight 00:24:27 – Potential areas of research 00:26:45 – IBM quantum computing & Qiskit 00:29:43 – Describing superposition as a spinning coin 00:30:41 – Other types of quantum computers 00:32:08 – Qiskit Global Summer School 2025 00:32:48 – Qiskit Advocate 00:33:49 – What do you see in the near future? 00:37:42 – What are the type of HPCs? 00:40:05 – Additional resources to learn more 00:43:32 – Answering to skeptics 00:47:51 – What are you excited about in the world of Python? 00:48:24 – What do you want to learn next? 00:49:04 – What’s the best way to follow your work online? 00:49:25 – Thanks and goodbyeShow Links:
Quantum Computing Basics With Qiskit Quantum mechanics - Wikipedia Qubit - Wikipedia Quantum superposition - Wikipedia Quantum entanglement - Wikipedia Quantum supremacy - Wikipedia Linear Algebra in Python: Matrix Inverses and Least Squares – Real Python Linear Algebra - Khan Academy Quantum Echoes: Towards real world applications - YouTube Meet Willow, our state-of-the-art quantum chip IBM and Vanguard explore quantum optimization for finance Register today for Qiskit Global Summer School 2025 Aqora: Explore Quantum Computing for Real-World Applications Qiskit - IBM Quantum Computing IBM Quantum Platform Cirq - Google Quantum AI Xanadu - PennyLane Classiq - Quantum Computing Software - Limitless Development | Computer architecture - Wikipedia NumPy uv About Negar Vahid – Real Python The Path Integral Negar Vahid - LinkedInLevel up your Python skills with our expert-led courses:
Profiling Performance in Python NumPy Techniques and Practical Examples Python Project Management With uvSupport the podcast & join our community of Pythonistas
Fri, 05 Dec 2025 - 276 - Building a FastAPI Application & Exploring Python Concurrency
What are the steps to get started building a FastAPI application? What are the different types of concurrency available in Python? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss a recent Real Python step-by-step tutorial about programming a FastAPI example application. You practice installing FastAPI, building your first endpoints, adding path and query parameters, and validating endpoints using Pydantic.
Christopher covers updates to his Real Python video course about concurrency in Python. The course digs into what concurrency means in Python and why you might want to incorporate it in your code. He describes the different methods and demonstrates how to approach coding using threading, asyncio, and multiprocessing.
We also share several other articles and projects from the Python community, including a news roundup, the PSF fundraiser campaign for 2025, where Python stores attributes, performance hacks for faster Python code, a project to transform functions into a web interface, and a Python disk-backed cache.
Course Spotlight: Python Descriptors
Learn what Python descriptors are, how the descriptor protocol works, and when descriptors are useful, with practical, hands-on examples.
Topics:
00:00:00 – Introduction 00:02:18 – Django Security Release 00:02:46 – Django Is Now a CVE Numbering Authority (CNA) 00:03:53 – An Annual Release Cycle for Django 00:04:12 – PEP 810: Explicit Lazy Imports (Accepted) 00:04:27 – PSF Board Office Hour Sessions for 2026 00:05:42 – PyCon US 2026: Call for Proposals Open 00:06:15 – PSF Fundraiser campaign for 2025 00:10:12 – A Close Look at a FastAPI Example Application 00:16:36 – Speed Up Python With Concurrency 00:21:08 –__dict__: Where Python Stores Attributes 00:25:59 – Video Course Spotlight 00:27:17 – 10 Smart Performance Hacks for Faster Python Code 00:29:56 – FuncToWeb: Transform Python Functions Into a Web Interface 00:32:48 – python-diskcache: Python Disk-Backed Cache 00:34:07 – Thanks and goodbyeNews:
Django Security Release: 5.2.8, 5.1.14, and 4.2.26 Django Is Now a CVE Numbering Authority (CNA) An Annual Release Cycle for Django - Buttondown PEP 810: Explicit Lazy Imports (Accepted) PSF Board Office Hour Sessions for 2026 PyCon US, Long Beach CA, 2026: Call for Proposals Open PSF Fundraiser campaign for 2025 Connecting the Dots: Understanding the PSF’s Current Financial OutlookShow Links:
A Close Look at a FastAPI Example Application – Set up a FastAPI example app, add path and query parameters, and handle CRUD operations with Pydantic for clean, validated endpoints. Speed Up Python With Concurrency – Learn what concurrency means in Python and why you might want to use it. You’ll see a simple, non-concurrent approach and then look into why you’d want threading, asyncio, or multiprocessing.__dict__: Where Python Stores Attributes – Most Python objects store their attributes in a__dict__dictionary. Modules and classes always use__dict__, but not everything does. 10 Smart Performance Hacks for Faster Python Code – Some practical optimization hacks, from data structures to built-in modules, that boost speed, reduce overhead, and keep your Python code clean.Projects:
FuncToWeb: Transform Python Functions Into a Web Interface python-diskcache: Python Disk-Backed CacheAdditional Links:
Become a Member of the PSF - Python Software Foundation FastAPI Welcome to Pydantic Quiz: A Close Look at a FastAPI Example Application – Practice FastAPI basics with path parameters, request bodies, async endpoints, and CORS. Build confidence to design and test simple Python web APIs. Diskcache, more than caching - Bite code!Level up your Python skills with our expert-led courses:
Python REST APIs With FastAPI Python Descriptors Speed Up Python With ConcurrencySupport the podcast & join our community of Pythonistas
Fri, 21 Nov 2025 - 275 - Preparing Data Science Projects for Production
How do you prepare your Python data science projects for production? What are the essential tools and techniques to make your code reproducible, organized, and testable? This week on the show, Khuyen Tran from CodeCut discusses her new book, “Production Ready Data Science.”
Khuyen shares how she got into blogging and what motivated her to write a book. She shares tips on how to create repeatable workflows. We delve into modern Python tools that will help you bring your projects to production.
Course Spotlight: Python Project Management With uv
Create and manage Python projects with uv, a blazing-fast package and project manager built in Rust. Learn setup, workflow, and best practices.
Topics:
00:00:00 – Introduction 00:01:27 – Recent article about top six visualization libraries 00:02:19 – How long have you been blogging? 00:03:55 – What do you cover in your book? 00:07:07 – Potential issues with notebooks 00:11:40 – Structuring data science projects 00:15:12 – Reproducibility and sharing notebooks 00:20:33 – Using Polars 00:26:03 – Advantages of marimo notebooks 00:34:21 – Video Course Spotlight 00:35:44 – Shipping a project in data science 00:42:10 – Advice on testing 00:49:50 – Creating importable parameter values 00:53:55 – Seeing the commit diff of a notebook 00:55:12 – What are you excited about in the world of Python? 00:56:04 – What do you want to learn next? 00:56:52 – What’s the best way to follow your work online? 00:58:28 – Thanks and goodbyeShow Links:
Production Ready Data Science by Khuyen Tran - CodeCut CodeCut Top 6 Python Libraries for Visualization: Which One to Use? - CodeCut Ruff uv Cookiecutter marimo - a next-generation Python notebook Episode #230: marimo: Reactive Notebooks and Deployable Web Apps in Python Polars — DataFrames for the new era Episode #260: Harnessing the Power of Python Polars Narwhals Episode #224: Narwhals: Expanding DataFrame Compatibility Between Libraries pytest documentation nbdime: Tools for diffing and merging of Jupyter notebooks. LangChain Build Production-Ready LLM Agents with LangChain 1.0 Middleware - CodeCut Build an LLM RAG Chatbot With LangChain Khuyen Tran - LinkedIn Khuyen Tran (@KhuyenTran16) - XLevel up your Python skills with our expert-led courses:
Working With Python Polars Getting Started With marimo Notebooks Python Project Management With uvSupport the podcast & join our community of Pythonistas
Fri, 14 Nov 2025 - 274 - Advice for Writing Maintainable Python Code
What are techniques for writing maintainable Python code? How do you make your Python more readable and easier to refactor? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss a recent article about writing code that is easy to maintain. We cover writing comments, creating meaningful names, avoiding magic numbers, and preparing code for your future self.
We also share several other articles and projects from the Python community, including release news, modifying the REPL, differences between Polars and pandas, generating realistic test data in Python, investigating quasars with Polars and marimo, creating simple meta tags for Django objects, and a GUI toolkit for grids of buttons.
Course Spotlight: Modern Python Linting With Ruff
Ruff is a blazing-fast, modern Python linter with a simple interface that can replace Pylint, isort, and Black—and it’s rapidly becoming popular.
Topics:
00:00:00 – Introduction 00:01:53 – PyTorch 2.9 Release 00:02:38 – Django 6.0 Beta 1 00:03:05 – Handy Python REPL Modifications 00:11:06 – Polars vs pandas: What’s the Difference? 00:17:55 – Faker: Generate Realistic Test Data in Python 00:22:06 – Video Course Spotlight 00:23:35 – Investigating Quasars With Polars and marimo 00:27:37 – Writing Maintainable Code 00:49:48 – buttonpad: GUI Toolkit for Grids of Buttons 00:52:10 – django-snakeoil: Simple Meta Tags for Django Objects 00:54:07 – Thanks and goodbyeNews:
PyTorch 2.9 Release Django 6.0 Beta 1Show Links:
Handy Python REPL Modifications – Trey uses the the Python REPL a lot. In this post he shows you his favorite customizations to make the REPL even better. Polars vs pandas: What’s the Difference? – Discover the key differences in Polars vs pandas to help you choose the right Python library for faster, more efficient data analysis. Faker: Generate Realistic Test Data in Python – If you want to generate test data with specific types (bool, float, text, integers) and realistic characteristics (names, addresses, colors, emails, phone numbers, locations), Faker can help you do that. Investigating Quasars With Polars andmarimo– Learn to visualize quasar redshift data by building an interactive marimo dashboard using Polars, pandas, and Matplotlib. You’ll practice retrieving, cleaning, and displaying data in your notebook. You’ll also build interactive UI components that live-update visualizations in the notebook.Discussion:
Writing Maintainable Code – “Maintainable code can easily be the difference between long-lived, profitable software, and short-lived money pits.” Read on to see just what maintainable code is and how to achieve it.Projects:
buttonpad: GUI Toolkit for Grids of Buttons django-snakeoil: Simple Meta Tags for Django ObjectsAdditional Links:
The Python Standard REPL: Try Out Code and Ideas Quickly – Real Python pyrepl-hacks: Hacky extensions and helper functions for the new Python REPL pandas - Python Data Analysis Library Polars — DataFrames for the new era Welcome to Faker’s documentation! SOLID Principles: Improve Object-Oriented Design in Python – Real Python The Pragmatic Programmer - WikipediaLevel up your Python skills with our expert-led courses:
Modern Python Linting With Ruff Design and Guidance: Object-Oriented Programming in Python Investigating Quasar Data With Polars and Interactive marimo NotebooksSupport the podcast & join our community of Pythonistas
Fri, 07 Nov 2025 - 273 - Michael Kennedy: Managing Your Own Python Infrastructure
How do you deploy your Python application without getting locked into an expensive cloud-based service? This week on the show, Michael Kennedy from the Talk Python podcast returns to discuss his new book, “Talk Python in Production.”
Michael runs multiple Python applications online, including a training site, blog, and two podcasts. While searching for the best solution for hosting his business, he documented his findings in a book. We talk about containerizing Python applications, generating static sites, preparing for traffic spikes, and avoiding cloud service lock-in.
Course Spotlight: Speed Up Python With Concurrency
Learn what concurrency means in Python and why you might want to use it. You’ll see a simple, non-concurrent approach and then look into why you’d want threading, asyncio, or multiprocessing.
Topics:
00:00:00 – Introduction 00:01:28 – Welcome back! 00:03:05 – Is this your first book? 00:04:13 – A book that reads like a blog 00:06:15 – Incentives to keep you locked in 00:09:20 – Following the journey of the Talk Python sites 00:11:47 – Audio reader briefs 00:15:19 – Discussing Dev Ops as a topic 00:18:31 – Background of developing for the web 00:20:14 – Stack-Native vs Cloud-Native 00:24:40 – Using Quart web framework 00:25:50 – Embracing Docker 00:32:39 – Sharing a single powerful machine allows for individual peaks 00:37:04 – Video Course Spotlight 00:38:30 – Minimal cloud lock-in 00:40:04 – Using OrbStack for local builds and testing 00:42:07 – Coolify as a Docker host 00:47:14 – Moving away from Google analytics and a GDPR rant 00:50:43 – Diving deep into web tech of ngnix, SSL, and CDNs 00:54:33 – Talking about the prices for hosting 00:59:09 – Creating static sites 01:06:22 – Invitation to come back to discuss AI and agents 01:10:06 – What are you excited about in the world of Python? 01:16:19 – What do you want to learn next? 01:17:34 – What’s the best way to follow your work online? 01:19:40 – Thanks and goodbyeLinks:
Talk Python in Production Book Quart documentation: Documentation Docker: Accelerated Container Application Development South Korea Loses Its Government “Cloud” After a Fire: No Backups or Recovery Plan OrbStack: Fast, light, simple Docker & Linux Coolify Finances & the Future of Cara: Artist Social & Portfolio Platform awesome-selfhosted: A list of Free Software network services and web applications which can be hosted on your own servers Umami: Modern analytics platform umami-python: Umami Analytics Client for Python by Michael Kennedy Hugo: The world’s fastest framework for building websites mikeckennedy - Michael Kennedy: GitHub Michael Kennedy’s Thoughts on Technology Talk Python in Production Book - Link With Discount CodeMichael’s Recommended Hosting Locations:
DigitalOcean - Cloud Infrastructure for Developers Hetzner - Dedicated Server, Cloud & Hosting aus DeutschlandLevel up your Python skills with our expert-led courses:
Deploy Your Python Script on the Web With Flask Speed Up Python With Concurrency Creating a Scalable Flask Web Application From ScratchSupport the podcast & join our community of Pythonistas
Fri, 31 Oct 2025 - 272 - Benchmarking Python 3.14 & Enabling Asyncio to Scale
How does Python 3.14 perform under a few hand-crafted benchmarks? Does the performance of asyncio scale on the free-threaded build? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
At the top of the show, we have a mountain of release news and Python Enhancement Proposals to cover. Then, we dig into a couple of articles covering the performance of Python 3.14. The first is a benchmarking comparison of the last several Python versions and their variations, including JIT and free-threaded mode. The second explores the changes in 3.14 that enable
asyncioto scale on CPython’s free-threaded build.We also share several other articles and projects from the Python community, including an introduction to NiceGUI, a free-threaded Python library compatibility checker, an exploration of what is “good taste” in software engineering, HTML templating with t‑strings, and a tool for testing Sphinx docs instantly in the browser.
Course Spotlight: Documenting Python Projects With Sphinx and Read the Docs
In this video series, you’ll create project documentation from scratch using Sphinx, the de facto standard for Python. You’ll also hook your code repository up to Read the Docs to automatically build and publish your code documentation.
Topics:
00:00:00 – Introduction 00:02:28 – Python 3.12.12, 3.11.14, 3.10.19 and 3.9.24 now available 00:03:08 – Python 3.13.9 is now available 00:03:26 – Python 3.15.0 alpha 1 00:04:02 – PEP 804: An External Dependency Registry and Name Mapping Mechanism 00:04:56 – PEP 806: Mixed Sync/Async Context Managers With Precise Async Marking 00:06:34 – PEP 807: Index Support for Trusted Publishing 00:07:21 – PEP 809: Stable ABI for the Future 00:08:10 – PEP 810: Explicit Lazy Imports 00:10:31 – Python lazy imports you can use today 00:10:48 – Lazy Imports Using wrapt 00:11:18 – Python 3.14 Is Here. How Fast Is It? 00:17:45 – Free-Threaded Python Library Compatibility Checker 00:19:54 – Scaling Asyncio on Free-Threaded Python 00:24:06 – Real Python 3.14 Resources 00:25:18 – Video Course Spotlight 00:26:31 – Intro to NiceGUI: Build Interactive Python Web Apps 00:30:22 – What Is “Good Taste” in Software Engineering? 00:40:52 – Try Sphinx Docs Instantly in Your Browser 00:43:11 – Introducing tdom: HTML Templating With t‑strings 00:46:21 – Thanks and goodbyeNews:
Python Insider: Python 3.12.12, 3.11.14, 3.10.19 and 3.9.24 are now available! Python Insider: Python 3.13.9 is now available! Python Insider: Python 3.15.0 alpha 1 PEP 804: An External Dependency Registry and Name Mapping Mechanism (Added) PEP 806: Mixed Sync/Async Context Managers With Precise Async Marking (Added) PEP 807: Index Support for Trusted Publishing (Added) PEP 809: Stable ABI for the Future (Added) PEP 810: Explicit Lazy Imports (Added) Python lazy imports you can use today - PythonTest Lazy Imports Usingwrapt– PEP 810 proposes adding explicit lazy imports to Python, but you can already achieve this with third-party libraries. This post shows you how usingwrapt.Show Links:
Python 3.14 Is Here. How Fast Is It? – A comprehensive deep-dive comparison of performance figures between Python versions and variations, including the JIT and free-threaded mode. Free-Threaded Python Library Compatibility Checker – A heat map and table summarizing Python free-threaded compatibility in a variety of common Python packages. Python 3.14: 3asyncioChanges –asynciochanges are often overlooked. In the latest 3.14 release, there are three newasynciofeatures and changes. Scaling Asyncio on Free-Threaded Python – A recap of the work done in Python 3.14 to enableasyncioto scale on the free-threaded build of CPython. Intro to NiceGUI: Build Interactive Python Web Apps – UseNiceGUIto turn Python scripts into interactive web apps without touching HTML, CSS, or JavaScript.Discussion:
What Is “Good Taste” in Software Engineering? – This opinion piece discusses the difference between skill and taste when writing software. What counts as “clean code” for one person may not be the same for another.Projects:
Try Sphinx Docs Instantly in Your Browser Introducingtdom: HTML Templating With t‑strings – Python 3.14 introduces t-strings, and this article showcasestdom, a new HTML DOM toolkit that takes advantage of them to produce safer output.Additional Links:
Benchmarking MicroPython - miguelgrinberg.com Is Python Really That Slow? - miguelgrinberg.com Bubble sort - Wikipedia Fibonacci sequence - Wikipedia Python 3.14: Cool New Features for You to Try – Real Python What’s New in Python 3.14 – Real Python Python 3.14 Preview: REPL Autocompletion and Highlighting – Real Python Python 3.13 Preview: A Modern REPL – Real Python Python 3.14 Preview: Lazy Annotations – Real Python Python 3.14 Preview: Better Syntax Error Messages – Real Python Python 3.14 Preview: Template Strings (T-Strings) – Real Python Python 3.13: Free Threading and a JIT Compiler – Real Python Quasar FrameworkLevel up your Python skills with our expert-led courses:
Building a Python GUI Application With Tkinter Documenting Python Projects With Sphinx and Read the Docs What's New in Python 3.14Support the podcast & join our community of Pythonistas
Fri, 24 Oct 2025 - 271 - Evolving Teaching Python in the Classroom
How is teaching young students Python changing with the advent of LLMs? This week on the show, Kelly Schuster-Paredes from the Teaching Python podcast joins us to discuss coding and AI in the classroom.
Kelly shares her current thoughts on teaching Python to young students. She stresses that the earliest classes still need to cover the fundamentals. We also discuss how coding instruction is evolving toward reading and reviewing code more than writing it.
Course Spotlight: Building a Python GUI Application With Tkinter
In this video course, you’ll learn the basics of GUI programming with Tkinter, the de facto Python GUI framework. Master GUI programming concepts such as widgets, geometry managers, and event handlers. Then, put it all together by building two applications: a temperature converter and a text editor.
Topics:
00:00:00 – Introduction 00:01:28 – Starting to use AI in the classroom 00:05:17 – How did students react to using NLP and NLTK? 00:06:40 – Teaching Python beginners now 00:12:31 – Code editor changes with LLM features 00:15:25 – Less in-classroom teaching 00:16:22 – What sparks interest in coding for students? 00:21:14 – Video Course Spotlight 00:22:44 – Exploratory robotics 00:25:56 – Do you need to struggle to learn? 00:32:52 – Working through frustration and the tendency not to read 00:36:37 – Mixed feelings on the changes to teaching 00:41:19 – Teaching through reading and code reviewing 00:45:33 – Lower-level classes are still about fundamentals 00:47:47 – Other areas of teaching using AI tools 00:51:29 – Improving prompting skills 00:54:22 – Using these tools to organize creativity 00:54:53 – What AI tools are working for you? 00:57:13 – Sharing knowledge and techniques with other teachers 01:00:02 – General advice for teachers 01:02:03 – What are you excited about in the world of Python? 01:02:52 – What do you want to learn next? 01:03:46 – How can people follow your work online? 01:04:10 – Thanks and goodbyeShow Links:
Teaching Python Podcast Code With Mu Flint - AI for schools Claude colab.google AI Explorers’ Club 🛶 – Center for Digital Thriving Building a Python GUI Application With Tkinter – Real Python TensorFlow SPIKE™ Prime – STEAM Set - Grades 6 - 8 - LEGO® Education Hexapod (robotics) - Wikipedia How to Use AI Without Becoming Stupid - Commoncog Prompt Cowboy - #1 prompt generator Get started with Python in Excel - Microsoft Support Episode #186: Exploring Python in Excel IBM TechXchange 2025 - Orlando, FL - October 6-9 Kelly Schuster- Paredes - LinkedInLevel up your Python skills with our expert-led courses:
Building a Python GUI Application With Tkinter Python Deep Learning: PyTorch vs Tensorflow Python Basics: Code Your First Python ProgramSupport the podcast & join our community of Pythonistas
Fri, 17 Oct 2025 - 270 - Python 3.14: Exploring the New Features
Python 3.14 is here! Christopher Trudeau returns to discuss the new version with Real Python team member Bartosz Zaczyński. This year, Bartosz coordinated the series of preview articles with members of the Real Python team and wrote the showcase tutorial, “Python 3.14: Cool New Features for You to Try.” Christopher’s video course, “What’s New in Python 3.14”, covers the topics from the article and shows the new features in action.
Christopher and Bartosz dug into the new release to create code examples showcasing the new features for the tutorial and course. We look at the enhanced and more colorful REPL experience, better error messages, safer hooks for live debugging, and deferred annotation evaluation. We also discuss template strings, Zstandard compression, and multiple performance improvements.
We share our thoughts on the updates and offer advice about incorporating them into your projects. We also discuss when you should start running Python 3.14.
Course Spotlight: What’s New in Python 3.14
Covers Python 3.14’s key changes: free-threading, subinterpreters, t-strings, lazy annotations, new REPL features, and improved error messages.
Topics:
00:00:00 – Introduction 00:02:03 – Cool New Features for You to Try - Tutorial 00:02:20 – What’s New in Python 3.14 - Video Course 00:02:54 – Even Friendlier Python REPL 00:05:05 – Allow “json” instead of “json.tool” 00:05:49 – Zstandard compression 00:06:37 – Working With Numbers 00:11:09 – Deferred Evaluation of Annotations 00:17:35 – More Helpful Error Messages 00:20:41 – Warnings in try…finally Blocks 00:22:08 – Safer Live Process Debugging 00:25:22 – Pathlib Improvements 00:26:50 – Additional assert methods for unittest 00:27:19 – Template Strings (T-strings) 00:31:01 – Free-threaded Build Updates 00:35:30 – Incremental Garbage Collector 00:37:59 – functools partial & placeholder improvement 00:40:13 – Video Course Spotlight 00:41:12 – Experimental JIT Builds 00:46:52 – Parallel Subinterpreters 00:48:59 – Unicode Database Update 00:49:47 – 𝜋thon - Easter Egg 00:51:26 – Starting to use the new version 00:55:26 – Thanks and goodbyeShow Links:
Python 3.14: Cool New Features for You to Try – Real Python What’s New in Python 3.14 Python 3.14 Preview: REPL Autocompletion and Highlighting – Real Python Python 3.13 Preview: A Modern REPL – Real Python Allow “-m json” instead of “-m json.tool” · Issue #122873 compression.zstd — Compression compatible with the Zstandard format — Python 3.14.0 documentation Python 3.14 Preview: Lazy Annotations – Real Python Python 3.14 Preview: Better Syntax Error Messages – Real Python PEP 765: Control flow in finally blocks — Python 3.14.0 documentation Remote debugging attachment protocol — Python 3.14.0 documentation Python 3.14 Preview: Template Strings (T-Strings) functools.partial placeholders · Issue #119127 garbage_collector Internal Docs at 3.14 Python 3.13: Free Threading and a JIT Compiler Multiple interpreters in the standard library — Python 3.14.0 documentationAdditional Links:
PEP 784: Zstandard support in the standard library - Python 3.14.0 documentation Episode #262: Travis Oliphant: SciPy, NumPy, and Fostering Scientific Python Simplify Complex Numbers With Python – Real Python Using Python’s pathlib Module – Real Python Exploring Python T-Strings – Video Course Python 3.13 Preview: Free Threading and a JIT Compiler – Real Python Compatibility Status Tracking - Python Free-Threading Guide PyPy functools Module (Video) – Real Python Python 3.12 Preview: Subinterpreters – Real PythonLevel up your Python skills with our expert-led courses:
What's New in Python 3.13 What's New in Python 3.14 What's New in Python 3.12Support the podcast & join our community of Pythonistas
Fri, 10 Oct 2025 - 269 - Advice on Beginning to Learn Python
What’s changed about learning Python over the last few years? What new techniques and updated advice should beginners have as they start their journey? This week on the show, Stephen Gruppetta and Martin Breuss return to discuss beginning to learn Python.
We share techniques for finding motivation, building projects, and learning the fundamentals. We provide advice on installing Python and not obsessing over finding the perfect editor. We also examine incorporating LLMs into learning to code and practicing asking good questions.
Stephen shares details about our upcoming eight-week live course, Python for Beginners: Code With Confidence. Check out realpython.com/live to learn more and reserve your spot.
Course Spotlight: 11 Beginner Tips for Learning Python
In this course, you’ll see several learning strategies and tips that will help you jumpstart your journey towards becoming a successful Python programmer.
Topics:
00:00:00 – Introduction 00:02:36 – Martin’s teaching background 00:02:57 – Stephen’s teaching background 00:04:07 – Having a vested interest in learning 00:08:35 – No shortcut to learning the fundamentals 00:09:21 – Parallels to learning a foreign language 00:12:43 – What’s different about starting to learn Python now? 00:15:03 – Stephen’s journey to coaching and using LLMs 00:16:20 – Are LLMs helpful for learning? 00:18:50 – Teaching what you’ve learned to someone else 00:19:38 – Learning how to ask good questions 00:22:11 – Improved error messages 00:24:35 – REPL: Read Evaluate Print Loop 00:26:33 – Video Course Spotlight 00:27:48 – Installing Python and choosing an editor 00:35:16 – Considering the scale of beginner projects 00:37:39 – Should a beginner be concerned with making Pythonic code? 00:40:55 – Using LLM tools and defining your level of skill 00:42:39 – Python for Beginners: Code With Confidence - live course 00:47:32 – Looking at projects - Awesome Python 00:48:02 – Asking an LLM to explain the code generated 00:50:46 – Debuggers and seeing code run 00:51:23 – Thanks and goodbyeShow Links:
Python for Beginners: Code With Confidence: Real Python’s intensive Python training program with live expert instruction 11 Beginner Tips for Learning Python Programming – Tutorial Episode #4: Learning Python Through Errors Automate the Boring Stuff with Python Download Python - Python.org Visual Studio Code - Code Editing Redefined Python 3.12 Preview: Ever Better Error Messages – Real Python Claude Code - Claude Back on the Track - Stephen Gruppetta Exploring Scopes and Closures in Python – Video Course Writing Idiomatic Python – Video Course Episode #71: Start Using a Debugger With Your Python Code awesome-python: An opinionated list of awesome Python frameworks, libraries, software and resourcesLevel up your Python skills with our expert-led courses:
11 Beginner Tips for Learning Python Python Basics: Code Your First Python Program Exploring Scopes and Closures in PythonSupport the podcast & join our community of Pythonistas
Fri, 03 Oct 2025 - 268 - Managing Feature Flags & Comparing Python Visualization Libraries
What’s a good way to enable or disable code paths without redeploying the software? How can you use feature flags to toggle functionality for specific users of your application? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares an article exploring the use of feature flags. The piece advises targeting specific users, storing schemas, and relying on well-worn code paths. He also discusses the danger of the exponential growth of functionality tests as feature flags are added.
We dig into a comparison of six popular Python visualization libraries. The article provides code examples along with their respective visual output to highlight features and make selecting the optimal library for your work easier.
We also share several other articles and projects from the Python community, including a news roundup, benchmarking MicroPython, simplifying IPs and networks in Python, a “scream” cipher, and a browser-based graphical viewer for the output of Python’s cProfile module.
This episode is sponsored by InfluxData.
Course Spotlight: Exploring Astrophysics in Python With pandas and Matplotlib
This course uses three problems often covered in introductory astrophysics courses to explore in Python. Along the way, you’ll learn some astronomy and how to use a variety of data science libraries like NumPy, Matplotlib, pandas, and pint.
Topics:
00:00:00 – Introduction 00:03:04 – Python 3.14.0rc3 is go! 00:03:14 – Django 6.0 alpha 1 released 00:04:27 – PEP 782: Add PyBytesWriter C API 00:05:06 – PEP 794: Import Name Metadata 00:05:30 – PEP 803: Stable ABI for Free-Threaded Builds 00:05:55 – Announcing the 2025 PSF Board Election Results! 00:06:18 – Top 6 Python Libraries for Visualization: Which One to Use? 00:18:34 – Sponsor: InfluxData 00:19:24 – Feature Flags in Depth 00:22:55 – Benchmarking MicroPython 00:30:02 – Video Course Spotlight 00:31:16 – Simplify IPs, Networks, and Subnets With theipaddress00:34:52 – SCREAM CIPHER (“ǠĂȦẶAẦ ĂǍÄẴẶȦ” 00:36:20 – SnakeViz: browser based graphical viewer for the output of Python’s cProfile module 00:40:58 – Thanks and goodbyeNews:
Python Insider: Python 3.14.0rc3 is go! Django 6.0 alpha 1 released - Django PEP 782: Add PyBytesWriter C API (Final) PEP 794: Import Name Metadata (Accepted) PEP 803: Stable ABI for Free-Threaded Builds (Added) Python Software Foundation News: Announcing the 2025 PSF Board Election Results!Show Links:
Top 6 Python Libraries for Visualization: Which One to Use? – The vast number of Python visualization libraries can be overwhelming. This article shows you the pros and cons of some popular libraries, including Matplotlib, seaborn, Plotly, Bokeh, Altair, and Pygal. Feature Flags in Depth – Feature flags are a way to enable or disable blocks of code without needing to redeploy your software. This post shows you several different approaches to feature flags. Benchmarking MicroPython – This post compares the performance of running Python on several microcontroller boards. Simplify IPs, Networks, and Subnets With theipaddress– Python’s built-inipaddressmodule makes handling IP addresses and networks clean and reliable. This article shows how to validate, iterate, and manage addresses and subnets while avoiding common pitfalls of string-based handling.Projects:
SCREAM CIPHER (“ǠĂȦẶAẦ ĂǍÄẴẶȦ”) – Seth discovered that Unicode has more accented “Latin capital letter A” characters than the 26 letters in the English alphabet. SnakeViz: browser based graphical viewer for the output of Python’s cProfile moduleLevel up your Python skills with our expert-led courses:
Using Astropy for Astronomy With Python Graph Your Data With Python and ggplot Exploring Astrophysics in Python With pandas and MatplotlibSupport the podcast & join our community of Pythonistas
Fri, 26 Sep 2025 - 267 - Dangers of Automatically Converting a REST API to MCP
When converting an existing REST API to the Model Context Protocol, what should you consider? What anti-patterns should you avoid to keep an AI agent’s context clean? This week on the show, Kyle Stratis returns to discuss his upcoming book, “AI Agents with MCP”.
Kyle has been busy since he last appeared on the show in 2020. He’s taken his experience working in machine learning startups and started his own consultancy, Stratis Data Labs. He’s been documenting his explorations working with LLMs and MCP on his blog, The Signal Path.
Kyle is also writing a book about building MCP clients, services, and end-to-end agents. We discuss a recent article he wrote about the hazards of using an automated tool to convert a REST API into an MCP server. He shares his personal experiences with building MCP tools and provides additional resources for you to learn more about the topic.
This episode is sponsored by InfluxData.
Spotlight: Python for Beginners: Code With Confidence – Real Python
Learn Programming Fundamentals and Pythonic Coding in Eight Weeks—With a Structured Course
Topics:
00:00:00 – Introduction 00:02:41 – Updates on career 00:04:36 – The Signal Path - newsletter 00:07:15 – Moving into consulting 00:12:35 – Recent projects 00:14:51 – Need for data skills with MCP 00:16:49 – Describing the differences between REST APIs and MCP 00:19:59 – Interaction model differences 00:27:29 – Sponsor: InfluxData 00:28:21 – Agent stories 00:32:58 – Going through a simple example of MCP server 00:37:50 – Defining client and server 00:40:19 – Examples of servers currently 00:51:44 – Announcement: Python for Beginners: Code with Confidence 01:02:07 – Resources for further study 01:05:07 – Breaking down advice on moving an API to MCP 01:08:04 – What are you excited about in the world of Python? 01:18:20 – What do you want to learn next? 01:21:35 – How can people follow your work online? 01:22:46 – Thanks and goodbyeShow Links:
AI Agents with MCP - Book Episode #10: Python Job Hunting in a Pandemic Stop Converting Your REST APIs to MCP Stop Generating MCP Servers from REST APIs! Context7 - Up-to-date documentation for LLMs and AI code editors Anthropic What is the Model Context Protocol (MCP)? - Model Context Protocol github-mcp-server: GitHub’s official MCP Server Model Context Protocol (/MCP) - Reddit modelcontextprotocol/servers: Model Context Protocol Servers Browse All MCP Servers - MCP Market Welcome to FastMCP 2.0! - FastMCP Agent Memory: How to Build Agents that Learn and Remember - Letta Kyle Stratis Personal Blog - The Edge Cases The Signal Path Stratis Data Labs Kyle Stratis - LinkedIn Kyle (@kylestratis.com) — BlueskyLevel up your Python skills with our expert-led courses:
Using Pydantic to Simplify Python Data Validation A History of Python Versions and Features Interacting With REST APIs and PythonSupport the podcast & join our community of Pythonistas
Fri, 19 Sep 2025 - 266 - Python App Hosting Choices & Documenting Python's History
What are your options for hosting your Python application or scripts? What are the advantages of a platform as a service, container-based hosts, or setting up a virtual machine? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss a recent article about hosting Python applications. The piece digs into the differences between using containers or platform-provided tools to automatically configure your project. We also cover an older article listing several free hosting options for smaller projects or Python scripts.
The Python documentary premiered this past week, and we provide a synopsis and our thoughts. Following a similar theme, we cover our recent code conversation video course, which explores the history of Python versions and the features added across the releases.
We also share several other articles and projects from the Python community, including a news roundup, regex affordances, four different ways to speed up your code, a Python-based music library manager, a tool to visualize the structure of your data in Python, and a project for exploring color science in Python.
This episode is sponsored by InfluxData.
Course Spotlight: A History of Python Versions and Features
Explore Python’s evolution from the 1990s to today with a brief history and demos of key features added throughout its lifetime.
Topics:
00:00:00 – Introduction 00:03:02 – PEP 728: TypedDict With Typed Extra Items 00:04:09 – Django security releases issued: 5.2.6, 5.1.12, and 4.2.24 00:04:37 – Python Type System and Tooling Survey 2025 00:04:56 – Python: The Documentary - An Origin Story 00:14:11 – A History of Python Versions and Features 00:16:58 – Sponsor: InfluxData 00:17:48 – Regex Affordances 00:21:34 – Where to Host Your Python App 00:26:48 – Best hosting platforms for Python applications and Python scripts 00:30:18 – Video Course Spotlight 00:31:59 – 330× Faster: Four Different Ways to Speed Up Your Code 00:37:18 – beets: Music Library Manager 00:39:12 – Memory Graph - GitHub 00:40:49 – colour: Colour Science for Python 00:42:35 – Thanks and goodbyeNews:
PEP 728: TypedDict With Typed Extra Items (Accepted) Django security releases issued: 5.2.6, 5.1.12, and 4.2.24 Python Type System and Tooling Survey 2025Show Links:
Python: The Documentary - An Origin Story - YouTube – “This is the story of the world’s most beloved programming language: Python. What began as a side project in Amsterdam during the 1990s became the software powering artificial intelligence, data science and some of the world’s biggest companies.” A History of Python Versions and Features – Video Course Regex Affordances – A tour of some real code showing little-used power features of the Python regular expression module, including verbose regex syntax, callingre.sub()with a function reference, and more. Where to Host Your Python App – Whether it’s Django, Flask, FastAPI, or some other Python web framework, your hosting options are plenty. This guide will show you how to choose. Best hosting platforms for Python applications and Python scripts 330× Faster: Four Different Ways to Speed Up Your Code – There are many approaches to speeding up Python code; applying multiple approaches can make your code even faster. This post talks about four different ways you can achieve speed-up.Projects:
beets: Music Library Manager Memory Graph - GitHub colour: Colour Science for PythonAdditional Links:
What’s in which Python - Ned Batchelder Anvil Opalstack: Managed HostingLevel up your Python skills with our expert-led courses:
Handling Missing Keys With the Python defaultdict Type Using Structural Pattern Matching in Python A History of Python Versions and FeaturesSupport the podcast & join our community of Pythonistas
Fri, 12 Sep 2025 - 265 - Large Language Models on the Edge of the Scaling Laws
What’s happening with the latest releases of large language models? Is the industry hitting the edge of the scaling laws, and do the current benchmarks provide reliable performance assessments? This week on the show, Jodie Burchell returns to discuss the current state of LLM releases.
The most recent release of GPT-5 has been a wake-up call for the LLM industry. We discuss how the current scaling of these systems is reaching a diminishing edge. Jodie also shares how many AI model assessments and benchmarks are flawed. We also take a sober look at the productivity gains from using these tools for software development within companies.
We discuss how newer developers should consider additional factors when looking at the current job market. Jodie digs into how economic changes and rising interest rates are influencing layoffs and hiring freezes. Then we share a wide collection of resources for you to continue exploring these topics.
This episode is sponsored by InfluxData.
Course Spotlight: Exploring Python Closures: Examples and Use Cases
Learn about Python closures: function-like objects with extended scope used for decorators, factories, and stateful functions.
Topics:
00:00:00 – Introduction 00:03:00 – Recent conferences and talks 00:04:18 – What’s going on with LLMs? 00:06:06 – What happened with the GPT-5 release? 00:08:14 – Simon Willison - 2025 in LLMs so far 00:09:00 – How did we get here? 00:10:37 – OpenAI’s and scaling laws 00:12:25 – Pivoting to post-training 00:16:01 – Some history of AI eras 00:17:54 – Issues with measuring performance and benchmarks 00:22:19 – Chatbot Arena 00:24:06 – Languages are finite 00:26:22 – LLMs and the illusion of humanity 00:30:41 – Sponsor: InfluxData 00:31:34 – Types of solutions to move past these limits 00:36:57 – Does AI actually boost developer productivity? 00:44:19 – Agentic Al Programming with Python 00:48:02 – Results of non-programmers vibe coding 00:50:18 – Back to the concept of overfitting 00:52:52 – The money involved in training 00:56:50 – Video Course Spotlight 00:58:21 – Deepseek and new methods of training 01:01:02 – Quantizing and fitting on a local machine 01:04:48 – The layoffs and the economic changes 01:10:32 – AI implementation failures 01:21:01 – Don’t doubt yourself as a developer 01:24:06 – What are you excited about in the world of Python? 01:25:39 – What do you want to learn next? 01:26:42 – What’s the best way to follow your work online? 01:27:04 – Thanks and goodbyeSurvey:
Listener Survey - Help Shape the Future of the Real Python PodcastShow Links:
EuroPython 2025 - July 14th-20th 2025 - Prague, Czech Republic & Remote Episode #232: Exploring Modern Sentiment Analysis Approaches in Python GPT-5: Overdue, overhyped and underwhelming. And that’s not the worst of it. GPT 5’s Rocky Launch Highlights AI Disillusionment - IEEE Spectrum 2025 in LLMs so far, illustrated by Pelicans on Bicycles — Simon Willison Attention is All You Need - Google Scaling laws for neural language models - OpenAI What if AI Doesn’t Get Much Better Than This? - Cal Newport Hiltzik: AI hype is fading fast - Los Angeles Times Does AI Actually Boost Developer Productivity? (100k Devs Study) - Yegor Denisov-Blanch, Stanford - YouTube Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity - METR Amazon Cloud Chief: Replacing Junior Staff With AI Is ‘Dumbest’ Idea - Business Insider 20 LLM evaluation benchmarks and how they work MMLU - Measuring Massive Multitask Language Understanding HellaSwag: Can a Machine Really Finish Your Sentence? Mechanical Turk - Wikipedia Amazon Mechanical Turk Chatbot Arena - LMArena LLMs Can’t Reason - The Reversal Curse, The Alice In Wonderland Test, And The ARC - AGI Challenge - CustomGPT Mirror, mirror: LLMs and the illusion of humanity - Jodie Burchell - NDC Oslo 2024 - YouTube Is Chain-of-Thought Reasoning of LLMs a Mirage? A Data Distribution Lens Context Rot: How Increasing Input Tokens Impacts LLM Performance - YouTube Does AI Actually Boost Developer Productivity? (100k Devs Study) - Yegor Denisov-Blanch, Stanford - YouTube AWS CEO says no more programmers in 2 years - Tech Industry - Blind MIT report: 95% of generative AI pilots at companies are failing - Fortune Agentic Al Programming with Python - Talk Python To Me Podcast Vibe coding through the GPT-5 mess - The Verge Overfitting - Wikipedia Andrej Karpathy - Busy Person’s Intro to LLMs - YouTube AI Isn’t Taking Your Job – The Economy Is - Andrew Stiefel Commonwealth Bank backtracks on AI job cuts, apologizes for ‘error’ as call volumes rise - ABC News Klarna CEO Reverses Course By Hiring More Humans, Not AI | Entrepreneur Has Duolingo Lost Its Streak? - Matt Jones - Medium McDonald’s removes AI drive-throughs after order errors OpenAI Usage Plummets in the Summer, When Students Aren’t Cheating on Homework What Happened When I Tried to Replace Myself with ChatGPT in My English Classroom - Literary Hub Learning to code in the age of AI — Sheena O’Connell - YouTube Jodie Burchell - The JetBrains Blog Jodie Burchell’s Blog - Standard error Jodie Burchell (@t-redactyl.bsky.social) — Bluesky Jodie Burchell 🇦🇺🇩🇪 (@t_redactyl@fosstodon.org) - Fosstodon JetBrains: Essential tools for software developers and teamsLevel up your Python skills with our expert-led courses:
Python Decorators 101 A History of Python Versions and Features Exploring Python Closures: Examples and Use CasesSupport the podcast & join our community of Pythonistas
Fri, 05 Sep 2025 - 264 - Exploring Mixin Classes in Python
What is a good way to add isolated, reusable functionality to Python classes? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher covers a recent Real Python tutorial about developing mixin classes to reuse code across multiple Python classes. He describes how mixins rely on multiple inheritance to combine features from different classes, enhancing flexibility and code reuse.
We also share several other articles and projects from the Python community, including a news roundup, highlights from the 2024 Python Developers Survey, reasons you might not need a Python class, an exploration of asyncio’s sharp corners, an explanation of how JIT builds of CPython work, a web-based GUI library, and a project for quickly querying Python lists.
This episode is sponsored by InfluxData.
Course Spotlight: Design and Guidance: Object-Oriented Programming in Python
In this video course, you’ll learn about the SOLID principles, which are five well-established standards for improving your object-oriented design in Python. By applying these principles, you can create object-oriented code that’s more maintainable, extensible, scalable, and testable.
Topics:
00:00:00 – Introduction 00:03:14 – Python 3.13.7 Released 00:03:38 – Python 3.14.0rc2 Released 00:04:10 – PEP 802: Display Syntax for the Empty Set 00:04:59 – Announcing the PSF Board Candidates for 2025 00:05:26 – Rodrigo - PSF - Community Service Award for Q2 2025 00:06:06 – Python Developers Survey 2024 Results 00:13:27 – pyx: A Python-Native Package Registry 00:15:12 – Test & Code Final Episode 00:15:48 – You Might Not Need a Python Class 00:20:52 – Sponsor: InfluxData 00:21:44 – asyncio: A Library With Too Many Sharp Corners 00:25:43 – How JIT Builds of CPython Actually Work 00:35:21 – Video Course Spotlight 00:37:12 – What Are Mixin Classes in Python? 00:44:05 – nicegui: Create Web-Based UI With Python 00:46:51 – leopards: Quickly query your Python lists 00:49:00 – Thanks and goodbyeSurvey:
Listener Survey - Help Shape the Future of the Real Python PodcastNews:
Python 3.13.7 Released Python 3.14.0rc2 Released PEP 802: Display Syntax for the Empty Set (Added) Announcing the PSF Board Candidates for 2025 – The Python Software Foundation elections are upon us, and this post announces this year’s candidates. Voting is September 2nd to 16th. To vote, you must be registered by August 26th. Rodrigo - PSF - Community Service Award for Q2 2025 Python Developers Survey 2024 Results The State of Python 2025 - The PyCharm Blog pyx: A Python-Native Package Registry, Now in Beta – The folks at Astral, who brought you uv and more, have created a new commercial Python-native package registry called “pyx”. Test & Code Final Episode – After 10 years and 237 episodes, Brian Okken has decided to stop recording Test & Code. He’ll still be contributing to Python Bytes. Here’s to all his work on a great podcast over the last decade.Show Links:
You Might Not Need a Python Class – If you’re coming from other languages, you might think a class is the easiest way to do something, but Python has other options. This post shows you some alternatives and why you might choose them.asyncio: A Library With Too Many Sharp Corners –asynciohas a few gotchas and this post describes five different problems, including: cancellation, disappearing tasks, and more. How JIT Builds of CPython Actually Work – You don’t have to be a compiler engineer to understand how your code runs in a JIT build of CPython. This article runs you through just what happens under the covers. What Are Mixin Classes in Python? – Learn how to use Python mixin classes to write modular, reusable, and flexible code with practical examples and design tips.Projects:
nicegui: Create Web-Based UI With Python leopards: Quickly query your Python listsAdditional Links:
Episode #259: Design Patterns That Don’t Translate to Python Episode #123: Creating a Python Code Completer & More Abstract Syntax Tree Projects Specializing Adaptive Interpreter The LLVM Compiler Infrastructure Project PEP 774 – Removing the LLVM requirement for JIT builds Building a JIT compiler for CPython What they don’t tell you about building a JIT compiler for CPython Quiz: What Are Mixin Classes in Python? NiceGUILevel up your Python skills with our expert-led courses:
Class Concepts: Object-Oriented Programming in Python Inheritance and Internals: Object-Oriented Programming in Python Design and Guidance: Object-Oriented Programming in PythonSupport the podcast & join our community of Pythonistas
Fri, 29 Aug 2025 - 263 - Travis Oliphant: SciPy, NumPy, and Fostering Scientific Python
What went into developing the open-source Python tools data scientists use every day? This week on the show, we talk with Travis Oliphant about his work on SciPy, NumPy, Numba, and many other contributions to the Python scientific community.
Travis discusses his initial involvement in the open-source community and how he discovered Python while working in biomedical imaging. He was trying to find ways to manage large sets of numerical data, which led to his initial contributions and collaborations in building scientific libraries.
His appearance on the show coincides with the release of the Python documentary, in which he’s featured. We discuss the myriad organizations Travis founded, including Quansight, OpenTeams, and Anaconda. We dig into his underlying mission to continue fostering the growth of the open-source scientific computing community.
This episode is sponsored by InfluxData.
Course Spotlight: NumPy Techniques and Practical Examples
In this video course, you’ll learn how to use NumPy by exploring several interesting examples. You’ll read data from a file into an array and analyze structured arrays to perform a reconciliation. You’ll also learn how to quickly chart an analysis and turn a custom function into a vectorized function.
Topics:
00:00:00 – Introduction 00:02:41 – Python documentary 00:07:44 – Getting involved in open source 00:12:04 – Numeric Python 00:15:36 – SciPy and the SciPy community 00:17:35 – Starting to think about entrepreneurship 00:18:16 – NumPy evolving from the work of Numeric 00:22:01 – Sponsor: InfluxData 00:22:53 – Python as controlling code for lower-level libraries 00:23:37 – Numba open-source JIT compiler 00:30:09 – Starting to build in Python before learning it all 00:34:45 – Python as the language AI generates 00:36:31 – Guilds and sharing knowledge 00:40:15 – More NumPy backstory 00:46:36 – Contributing to Python 00:48:24 – Video Course Spotlight 00:49:41 – The investment of companies in Python 00:51:22 – Quansight and businesses in open source 00:53:09 – Open Teams and Quansight details 00:57:14 – NumFOCUS and Anaconda 00:58:51 – FairOSS 01:02:36 – Documenting these efforts 01:05:37 – What are you excited about in the world of Python? 01:07:12 – What do you want to learn next? 01:08:10 – How can people follow your work online? 01:10:03 – Thanks and goodbyeShow Links:
Python: The Documentary - OFFICIAL TRAILER - Coming August 28 - YouTube The Python Matrix Object: Extending Python for Numerical Computation Jim Fulton Jim Hugunin - Home History of SciPy - SciPy wiki dump SciPy NumPy Numba: A High Performance Python Compiler LPython - High performance typed Python compiler OpenTeams: Open SaaS AI Solutions Quansight Consulting OpenTeams Incubator NumFOCUS: A Nonprofit Supporting Open Code for Better Science Anaconda FairOSS faster-cpython Travis Oliphant (@teoliphant) / X Travis Oliphant - LinkedInLevel up your Python skills with our expert-led courses:
Data Cleaning With pandas and NumPy Stacks and Queues: Selecting the Ideal Data Structure NumPy Techniques and Practical ExamplesSupport the podcast & join our community of Pythonistas
Fri, 22 Aug 2025 - 262 - Selecting Inheritance or Composition in Python
When considering an object-oriented programming problem, should you prefer inheritance or composition? Why wouldn’t it just be simpler to use functions? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares an article about structuring code using inheritance, composition, or only functions. We discuss how the piece is a good exploration of the trade-offs of each solution. Unlike the tutorials beginners typically encounter while learning the fundamentals, the article goes much deeper into the “why” of object-oriented programming.
We also share several other articles and projects from the Python community, including a news roundup, processing audio in Python, reasons why you shouldn’t call dunder methods, smuggling arbitrary data through an emoji, an HTML to markdown converter, and a library to convert Python requests into curl commands.
Course Spotlight: Single and Double Underscore Naming Conventions in Python
In this video course, you’ll learn a few Python naming conventions involving single and double underscores (_). You’ll learn how to use this character to differentiate between public and non-public names in APIs, write safe classes for subclassing purposes, avoid name clashes, and more.
Topics:
00:00:00 – Introduction 00:02:23 – Python 3.13.6 Released 00:02:47 – Django 5.2.5 Released 00:02:55 – Django REST Framework Release v3.16.1 00:03:09 – Narwhals v2.0.0 Released 00:03:22 – mypy 1.17 Released 00:03:42 – PEP 798: Unpacking in Comprehensions 00:04:11 – PEP 799: A Dedicated Profilers Package for Organizing Python Profiling Tools 00:06:12 – PyPI Users Email Phishing Attack 00:07:33 – Django in Action 00:08:00 – Call for proposals deadline - PyCon NL 00:08:59 – Python Audio Processing With pedalboard 00:18:49 – Smuggling Arbitrary Data Through an Emoji 00:21:53 – Don’t Call Dunder Methods 00:28:51 – Video Course Spotlight 00:30:27 – Inheritance Over Composition, Sometimes 00:40:03 – html-to-markdown: HTML to Markdown Converter 00:42:20 – curlify: A library to convert Python requests request object into curl commands 00:44:18 – transfunctions: Support Both Sync and Async 00:45:18 – Thanks and goodbyeSurvey:
Listener Survey - Help Shape the Future of the Real Python PodcastNews:
Python 3.13.6 Released Django 5.2.5 Released Django REST Framework Release v3.16.1 Narwhals v2.0.0 Released Mypy 1.17 Released PEP 798: Unpacking in Comprehensions (Added) PEP 799: A Dedicated Profilers Package for Organizing Python Profiling Tools (Added) PyPI Users Email Phishing Attack – PyPI users are being targeted by an email phishing attack attempting to trick them into logging into a fake PyPI site. This post from the Security Engineer at PyPI discusses what’s happening and what you should do about it. There’s also a follow-up post. PyCon NL 2025 - Call for Papers Django in Action - Christopher Trudeau - Code ladjango40Topics:
Python Audio Processing Withpedalboard– The pedalboard library for Python is aimed at audio processing of various sorts, from converting between formats to adding audio effects. This post summarizes a PyCon US talk onpedalboardand its uses. Smuggling Arbitrary Data Through an Emoji – Unicode includes flexibility through the use of variation selectors. These include the ability to change characters through a consecutive series of coding points. But, when used with code points that don’t need them, they’re ignored, so you can hide data in them. Don’t Call Dunder Methods – It’s best to avoid calling dunder methods. It’s common to define dunder methods, but uncommon to call them directly. Inheritance Over Composition, Sometimes – In an older post, Adrian wrote some code using inheritance. He got questions from his readers asking why it wouldn’t just be simpler to use functions. This post re-implements the code with inheritance, composition, and plain old functions, then compares the approaches.Projects:
html-to-markdown: HTML to Markdown Converter curlify: A library to convert Python requests request object to curl command transfunctions: Support Both Sync and AsyncAdditional Links:
Working with Audio in Python (feat. Pedalboard) - Peter Sobot - YouTube Python’s Magic Methods: Leverage Their Power in Your Classes – TutorialLevel up your Python skills with our expert-led courses:
Class Concepts: Object-Oriented Programming in Python Single and Double Underscore Naming Conventions in Python Inheritance and Internals: Object-Oriented Programming in PythonSupport the podcast & join our community of Pythonistas
Fri, 15 Aug 2025 - 261 - Harnessing the Power of Python Polars
What are the advantages of using Polars for your Python data projects? When should you use the lazy or eager APIs, and what are the benefits of each? This week on the show, we speak with Jeroen Janssens and Thijs Nieuwdorp about their new book, Python Polars: The Definitive Guide.
Jeroen and Thijs describe how they were introduced to Polars while working at Xomnia. They were converting a large data project to Python and saw surprising speed increases using the new library.
We discuss converting projects from pandas to Polars, getting away from indexes, consistent syntax, and using lazy vs eager APIs. Along the way, Jeroen and Thijs offer tips for getting the most out of Polars in your code.
We dig into the process of writing a definitive guide and the advantages of working collaboratively on a book project. They also share resources for practicing data wrangling and building visualizations with Pydy Tuesday.
Course Spotlight: Working With Python Polars
Welcome to the world of Polars, a powerful DataFrame library for Python. In this video course, you’ll get a hands-on introduction to Polars’ core features and see why this library is catching so much buzz.
Topics:
00:00:00 – Introduction 00:02:47 – Polars start at Xomnia 00:04:08 – Putting Polars into production 00:07:18 – Realizing the speed differences 00:08:49 – Converting the project from R to Python 00:14:34 – How did Polars improve the project? 00:16:34 – Making the code more ergonomic and readable 00:19:21 – Only grabbing the data that is needed 00:20:37 – Titling and deciding to write the book 00:24:40 – Advantages to collaboration 00:29:34 – What were you excited to include in the book? 00:31:55 – Working with different engines and Nvidia’s Cuda 00:35:05 – Defining a Polars expression 00:36:11 – Transitioning from pandas to Polars 00:37:34 – Not needing an index 00:39:56 – What inspired the syntax? 00:45:01 – Defining lazy vs eager workflows 00:49:16 – Examples covered in first chapter preview 00:51:51 – Video Course Spotlight 00:53:14 – Data formats and Arrow 00:55:41 – Working with NaN, null, or None 00:58:11 – Measuring performance through a benchmark 00:59:12 – Advantages to working with the Discord community 01:02:32 – Code examples and applying the techniques 01:03:34 – Pydy Tuesday 01:05:47 – What are you excited about in the world of Python? 01:09:21 – What do you want to learn next? 01:13:26 – What’s the best way to follow your work online? 01:14:14 – Thanks and goodbyeSurvey:
Listener Survey - Help Shape the Future of the Real Python PodcastShow Links:
Python Polars: The Definitive Guide Janssens & Nieuwdorp - What we learned by converting a large codebase from Pandas to Polars - YouTube Polars — DataFrames for the new era polars · PyPI Xomnia - Home Page Episode #140: Speeding Up Your DataFrames With Polars Data Science at the Command Line - Jeroen Janssens Tidyverse PySpark Overview — PySpark 4.0.0 documentation Episode #193: Wes McKinney on Improving the Data Stack & Composable Systems Apache Arrow TPC-H Homepage Community – Python Polars: The Definitive Guide pydytuesday: A Python package to download TidyTuesday datasets PydyTuesday - Python How-to Videos - YouTube Astral: High-performance Python tooling Episode #238: Charlie Marsh: Accelerating Python Tooling With Ruff and uv uv: An extremely fast Python package and project manager, written in Rust. PEP 723 – Inline script metadata Inline script metadata - Python Packaging User Guide Package Your Python Code as a CLI - PyData London 25 - YouTube marimo - A next-generation Python notebook The Rust Programming Language Book Pimsleur - Learn New Languages Online Official Rosetta Stone - How Language Is Learned Thijs Nieuwdorp Jeroen Janssens Python Polars: The Definitive GuideLevel up your Python skills with our expert-led courses:
Working With Python Polars Graph Your Data With Python and ggplot Working With Missing Data in PolarsSupport the podcast & join our community of Pythonistas
Fri, 08 Aug 2025 - 260 - Design Patterns That Don't Translate to Python
Do the design patterns learned in other programming languages translate to coding in Python? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher dives into an article that tackles popular object-oriented design patterns from the famous Gang of Four book. These patterns offer solutions to common coding problems, but as Christopher explores, Python often doesn’t even have the problems these solutions try to fix. He discusses several common design patterns and the simpler, more Pythonic ways to achieve the same goals.
We also share several other articles and projects from the Python community, including an exceptionally robust news roundup, running coverage on tests, an exploration of expert generalists, a preview of template strings from Python 3.14, a quiz on f-strings, and a project that calculates the complexity of your Python code.
Course Spotlight: Working With Python’s Built-in Exceptions
Learn the most common built-in Python exceptions, when they occur, how to handle them, and how to raise them properly in your code.
Topics:
00:00:00 – Introduction 00:02:03 – Python 3.14.0b4 Released 00:02:11 – Python 3.14 release candidate 1 is go! 00:02:48 – PyPy v7.3.20 Release 00:03:00 – Textual 4.0.0 Released 00:03:23 – Announcing Toad - a universal UI for agentic coding in the terminal 00:03:42 – uv 0.8.0 Released 00:03:56 – Django Bugfix Release 5.2.4 00:04:14 – Django Community Ecosystem 00:04:52 – Happy 20th Birthday Django! 00:05:31 – PyData London 2025 Videos 00:05:48 – PEP 792: Project Status Markers in the Simple Index 00:06:09 – PEP 800 – Solid bases in the type system 00:07:06 – Run Coverage on Tests 00:14:32 – Design Patterns You Should Unlearn in Python 00:18:13 – Video Course Spotlight 00:19:24 – Expert Generalists 00:34:42 – Python 3.14 Preview: Template Strings (T-Strings) 00:41:00 – fstrings.wtf - Python F-String Quiz 00:43:09 – complexipy: Calculate Complexity of Your Python 00:48:18 – Thanks and goodbyeSurvey:
Listener Survey - Help Shape the Future of the Real Python PodcastNews:
Python 3.14.0b4 Released Python 3.14 release candidate 1 is go! - Core Development - Discussions on Python.org PyPy v7.3.20 Release Textual 4.0.0 Released Announcing Toad - a universal UI for agentic coding in the terminal – Will McGuganuv0.8.0 Released Django Bugfix Release 5.2.4 Django Community Ecosystem - Django Happy 20th Birthday Django! Django Origins (and some things I have built with Django) - YouTube PyData London 2025 Videos PEP 792: Project Status Markers in the Simple Index (Accepted) PEP 800 – Solid bases in the type systemShow Topics:
Run Coverage on Tests – Code coverage tools tell you which parts of your programs got executed during test runs. They’re an important part of your test suite, and without them, you may miss errors in your tests themselves. This post has two quick examples of just why you should use a coverage tool. Design Patterns You Should Unlearn in Python – The Gang of Four design patterns specify object-oriented solutions to common issues in code, but Python doesn’t have many of the problems the solutions are aiming to solve. This article talks about some of the common patterns and the easier ways to solve the problems they intend to address in Python. See also Part 2. Expert Generalists – MartinFowler.com – “As computer systems get more sophisticated we’ve seen a growing trend to value deep specialists. But we’ve found that our most effective colleagues have a skill in spanning many specialties.” Python 3.14 Preview: Template Strings (T-Strings) – Python 3.14 introduces t-strings: a safer, more flexible alternative to f-strings. Learn how to process templates securely and customize string workflows.Projects:
fstrings.wtf - Python F-String Quiz complexipy: Calculate Complexity of Your PythonAdditional Links:
Design Patterns - Gang of Four - Wikipedia Episode #117: Measuring Python Code Quality, Simplicity, and Maintainability Episode #176: Building Python Best Practices and Fundamental Skills Cyclomatic complexity - Wikipedia Cognitive Complexity: A new way of measuring understandability - SonarSource Listener Survey - Help Shape the Future of the Real Python PodcastLevel up your Python skills with our expert-led courses:
Working With Python's Built-in Exceptions Testing Your Code With pytest Using Python's assert to Debug and Test Your CodeSupport the podcast & join our community of Pythonistas
Fri, 01 Aug 2025 - 259 - Supporting the Python Package Index
What goes into supporting more than 650,000 projects and nearly a million users of the Python Package Index? This week on the show, we speak with Maria Ashna about her first year as the inaugural PyPI Support Specialist.
Maria has a varied background in creative arts and neuroscience. She decided to apply for the PyPI support position, defying common misconceptions about who can take on roles inside the Python Software Foundation, and challenging imposter syndrome along the way.
Her recent talks at PyCon US 2025 and EuroPython 2025 were about her experiences in the role. She describes tackling the backlogs of account recovery and PEP 541 requests, and we also discuss PyPI community and company organizations.
Course Spotlight: Publishing Python Packages to PyPI
In this video course, you’ll learn how to create a Python package for your project and how to publish it to PyPI, the Python Package Index. Quickly get up to speed on everything from naming your package to configuring it using
setup.cfg.Topics:
00:00:00 – Introduction 00:01:42 – What led you to learn Python? 00:08:09 – PyCon 2025 talk about the first year at PyPI 00:11:06 – Embracing asking questions 00:13:55 – Being willing to say “I don’t know, let’s find out” 00:15:06 – What is PEP 541 and resolving name retention issues 00:23:22 – Video Course Spotlight 00:24:40 – Addressing the account recovery backlog 00:26:43 – PyPI Organizations 00:30:54 – Moving beyond the hesitancy to submit a package to PyPI 00:40:43 – Getting past imposter syndrome and applying 00:45:07 – What are you excited about in the world of Python? 00:46:10 – What do you want to learn next? 00:47:52 – How can people follow your work online? 00:49:03 – Thanks and goodbyeShow Links:
Adventures in Account Recovery, PEP 541 & More As Inaugural PyPI Support Specialist - Maria Ashna - YouTube PyCon US 2025 - A PEP Talk: Adventures in Account Recovery, PEP 541, And More As the Inaugural PyPI Support Specialist EuroPython 2025 - July 14th-20th 2025 - Prague, Czech Republic & Remote PyPI - The Python Package Index PEP 541 – Package Index Name Retention Introducing PyPI Organizations - The Python Package Index Blog Packaging Python Projects - Python Packaging User Guide The Traveling Guitar Maria Ashna (@thespi_brain) - Instagram Thespi-Brain (thespibrain) - GitHubLevel up your Python skills with our expert-led courses:
Documenting Python Projects With Sphinx and Read the Docs Publishing Python Packages to PyPI Exploring Python Closures: Examples and Use CasesSupport the podcast & join our community of Pythonistas
Fri, 25 Jul 2025 - 258 - Comparing Real-World Python Performance Against Big O
How does the performance of an algorithm hold up when you put it into a realistic context? Where might Python code defy Big O notation expectations when using a profiler? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares an article about why real-world performance often defies Big O expectations. The piece starts with a task coded in Go and then optimized from
O(n²)toO(n). Can an interpreted language like Python compete with a compiled language? Profiling the performance of both versions provides some interesting results.We also share several other articles and projects from the Python community, including a news roundup, the fastest way to detect a vowel in a string, whether Python dictionaries are ordered data structures, an overview of Python’s
enummodule, a Python client library for Google Data Commons, and a project to convert plain ASCII to “smart” punctuation.Course Spotlight: Building Enumerations With Python’s enum
In this video course, you’ll discover the art of creating and using enumerations of logically connected constants in Python. To accomplish this, you’ll explore the
Enumclass and other associated tools and types from theenummodule in the Python standard library.Topics:
00:00:00 – Introduction 00:02:12 – ruff Release 0.12.0 00:02:38 – streamlit Release 1.46.0 00:02:48 – lxml 6.0.0 Released 00:03:00 – PSF Board Election Schedule 00:03:26 – Are Python Dictionaries Ordered Data Structures? 00:08:59 – The Fastest Way to Detect a Vowel in a String 00:16:37 – Module enum Overview 00:24:46 – Video Course Spotlight 00:26:24 – O(no) You Didn’t 00:38:34 – New Python Client Library for Google Data Commons 00:41:55 – smartypants.py: Plain ASCII to “Smart” Punctuation 00:44:07 – Thanks and goodbyeNews:
ruffRelease 0.12.0streamlitRelease 1.46.0lxml6.0.0 Released PSF Board Election Schedule – It is time for the Python Software Foundation Board elections. Nominations are due by July 29th. See the article for the full election schedule and deadlines.Show Links:
Are Python Dictionaries Ordered Data Structures? – Although dictionaries have maintained insertion order since Python 3.6, they aren’t strictly speaking ordered data structures. Read on to find out why and how the edge cases can be important depending on your use case. The Fastest Way to Detect a Vowel in a String – If you need to find the vowels in a string there are several different approaches you could take. This article covers 11 different ways and how each performs. ModuleenumOverview – This article gives an overview of the tools available in the module enum and how to use them, including Enum, auto, StrEnum, Flag, and more. O(no) You Didn’t – A deep dive into why real-world performance often defies Big-O expectations, and why context and profiling matter more than theoretical complexity.Projects:
New Python Client Library for Google Data Commons – Google Data Commons announced the general availability of its new Python client library for the Data Commons. The goal of the library is to enhance how students, researchers, analysts, and data scientists access and leverage Data Commons. smartypants.py: Plain ASCII to “Smart” PunctuationAdditional Links:
Betteridge’s Law collections — Container datatypes — Python 3.13.5 documentation OrderedDict vs dict in Python: The Right Tool for the Job – Real Python Build Enumerations of Constants With Python’s Enum – Tutorial Building Enumerations With Python’s enum - Video Course Python client library for the Data Commons PyCoder’s Weekly - Submit a LinkLevel up your Python skills with our expert-led courses:
Looping With Python enumerate() Sorting Dictionaries in Python: Keys, Values, and More Building Enumerations With Python's enumSupport the podcast & join our community of Pythonistas
Fri, 11 Jul 2025 - 257 - Solving Problems and Saving Time in Chemistry With Python
What motivates someone to learn how to code as a scientist? How do you harness the excitement of solving problems quickly and make the connection to the benefits of coding in your scientific work? This week on the show, we speak with Ben Lear and Christopher Johnson about their book “Coding For Chemists.”
Christopher is an associate professor of chemistry at Stony Brook University. Ben is a professor of chemistry at Penn State’s Eberly College of Science. They’re long-time friends who decided to collaborate on a book after discussing the challenges of teaching coding to chemistry students.
The book targets chemists and other researchers who want to streamline common workflows with Python. It covers core Python concepts, data visualization, and data analysis topics by sharing common problems encountered in chemical research and presenting a complete Python-based solution for each problem.
We discuss how they collaborated on the book and decided what libraries and tools to include. We cover how LLM tools have affected classroom teaching and require new techniques to reinforce learning. We also dig into what motivates students to learn how to code.
Course Spotlight: Defining Python Functions With Optional Arguments
In this video course, you’ll learn about Python optional arguments and how to define functions with default values. You’ll also learn how to create functions that accept any number of arguments using
argsandkwargs.Topics:
00:00:00 – Introduction 00:02:06 – Ben’s background and starting with Python 00:04:34 – Chris’ background and starting with Python 00:07:16 – What has sped up Python for your use? 00:08:22 – How did idea for the book start? 00:11:30 – Shifting publisher and new release time frame 00:12:24 – Three potential audiences 00:13:20 – The ubiquitous need for programming skills in science 00:15:05 – Difficult workflows with chemistry equipment 00:16:06 – What is a chart recorder? 00:16:34 – Working with proprietary equipment and exporting data 00:23:37 – Explaining how programming will help chemists 00:27:31 – Finding the problems to solve 00:29:09 – The classic common chemistry workflow 00:30:48 – Teaching Python in a classroom and starting with functions 00:35:05 – Helping students cultivate inspiration 00:37:06 – LLM and AI use by students 00:41:19 – Video Course Spotlight 00:42:36 – Using Spyder IDE and Positron 00:45:29 – How does the book cover notebooks and managing packages? 00:48:08 – Using marimo for archiving and sharing projects 00:50:25 – What was difficult to put into the book? 00:54:04 – What were you eager to share in the book? 00:55:54 – Teaching students about file management 00:58:13 – Sharing tools to plot data 01:01:45 – Choosing not to teach pandas and using NumPy arrays instead 01:04:03 – How can people learn more about the book? 01:05:20 – What are you excited about in the world of Python? 01:07:58 – What do you want to learn next? 01:10:50 – How can people follow your work? 01:12:15 – Thanks and goodbyeShow Links:
Coding For Chemists - Getting Started Ben Lear - Eberly College of Science Christopher Johnson - Department of Chemistry Chart recorder - Wikipedia pandas - Python Data Analysis Library NumPy Spyder - The Python IDE that scientists and data analysts deserve Positron marimo - A next-generation Python notebook Streamlit - A faster way to build and share data apps Plotly - Data Apps for Production Bokeh Vega-Altair: Declarative Visualization in Python codechembook - PyPI CodeChemBook: Companion library for Coding for Chemists Book - GitHub Data Meets Design The Lear Laboratory Statistical Inference - 2nd Edition - George Casella - Roger Berger Johnson Lab @SBU Christopher J. Johnson - Google Scholar Benjamin Lear - Google ScholarLevel up your Python skills with our expert-led courses:
Defining Python Functions With Optional Arguments Data Visualization Interfaces in Python With Dash NumPy Techniques and Practical ExamplesSupport the podcast & join our community of Pythonistas
Fri, 04 Jul 2025 - 256 - Structuring Python Scripts & Exciting Non-LLM Software Trends
What goes into crafting an effective Python script? How do you organize your code, manage dependencies with PEP 723, and handle command-line arguments for the best results? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We dig into a recent Real Python article about how to structure your Python scripts. It includes advice for adding inline script metadata as defined in PEP 723, which helps tools automatically create an environment and install dependencies when the script is run. The piece also covers choosing appropriate data structures, improving runtime feedback, and making your code more maintainable with constants and entry points.
We discuss a collection of software trends happening behind the scenes of the constant LLM news. The piece starts with local-first software, prioritizing processing and storing private data on personal devices rather than relying on the cloud. The other trends include common themes and tools we’ve shared over the past few years, including WebAssembly, SQLite’s renaissance, and improvements to cross-platform mobile development.
We also share several other articles and projects from the Python community, including a news roundup, the state of free-threaded Python, tips for improving Django management commands, advice for time management as a manager, a data science-focused IDE, and a project to check for multiple patterns in a single string.
Course Spotlight: SQLite and SQLAlchemy in Python: Move Your Data Beyond Flat Files
In this video course, you’ll learn how to store and retrieve data using Python, SQLite, SQLAlchemy, and flat files. Using SQLite with Python brings with it the additional benefit of accessing data with SQL. By adding SQLAlchemy, you can work with data in terms of objects and methods.
Topics:
00:00:00 – Introduction 00:02:26 – Followup - marimo and LaTeX 00:03:26 – PEP 734: Multiple Interpreters in the Stdlib (Accepted) 00:03:52 – Python 3.13.4, 3.12.11, 3.11.13, 3.10.18 and 3.9.23 Security Releases 00:04:21 – Python Insider: Python 3.14.0 beta 3 is here! 00:04:30 – Django Bugfix Releases: 5.2.3, 5.1.11, and 4.2.23 00:04:52 – NumPy v2.3.0 Released 00:05:02 – scikit-learn 1.7 Released 00:05:12 – PyData Virginia 2025 Talks 00:05:52 – How Can You Structure Your Python Script? 00:12:08 – State of Free-Threaded Python 00:18:23 – 5 Non-LLM Software Trends to Be Excited About 00:29:50 – Video Course Spotlight 00:31:23 – Better Django Management Commands 00:33:56 – Advice for time management as a manager 00:46:49 – positron: Data Science IDE 00:50:05 – ahocorasick_rs: Check for Multiple Patterns in a Single String 00:52:41 – 10 Polars Tools and Techniques To Level Up Your Data Science - Podcast Episode 00:53:22 – Thanks and goodbyeNews:
PEP 734: Multiple Interpreters in the Stdlib (Accepted) Python 3.13.4, 3.12.11, 3.11.13, 3.10.18 and 3.9.23 Security Releases Python 3.13.5 Released Python Insider: Python 3.14.0 beta 3 is here! Django Bugfix Releases: 5.2.3, 5.1.11, and 4.2.23 NumPy v2.3.0 Releasedscikit-learn 1.7Released PyData Virginia 2025 Talks – A list of the recorded talks from PyData Virginia 2025.Show Links:
How Can You Structure Your Python Script? – Structure your Python script like a pro. This guide shows you how to organize your code, manage dependencies with PEP 723, and handle command-line arguments. State of Free-Threaded Python – This is a blog post from the Python Language Summit 2025 giving an update on the progress of free-threaded Python. You may also be interested in the complete list of Language Summit Blogs. PEP 779 – Criteria for supported status for free-threaded Python 5 Non-LLM Software Trends to Be Excited About – Tired of reading about AI and LLMs? This post talks about other tech that is rapidly changing in the software world, including local-first applications, web assembly, the improvement of cross-platform tools, and more. Better Django Management Commands – Writing Django management commands can involve a ton of boilerplate code. This article shows you how to use two libraries that could cut your management command code in half: django-click and django-typer.Discussion:
Advice for time management as a manager - benkuhn.netProjects:
positron: Data Science IDE ahocorasick_rs: Check for Multiple Patterns in a Single StringAdditional Links:
Visualize outputs - Mardown editor and LaTeX - marimo PyCon US 2025 - YouTube DjangoCon Europe 2025 Dublin - YouTube Executing Python Scripts With a Shebang Local-first software: You own your data, in spite of the cloud Code OSS Episode #510 - 10 Polars Tools and Techniques To Level Up Your Data Science - Talk Python To Me Podcast PyCoder’s Weekly - Submit a LinkLevel up your Python skills with our expert-led courses:
Execute Your Python Scripts With a Shebang Django Admin Customization SQLite and SQLAlchemy in Python: Move Your Data Beyond Flat FilesSupport the podcast & join our community of Pythonistas
Fri, 27 Jun 2025 - 255 - Scaling Python Web Applications With Kubernetes and Karpenter
What goes into scaling a web application today? What are resources for learning and practicing DevOps skills? This week on the show, Calvin Hendryx-Parker is back to discuss the tools and infrastructure for autoscaling web applications with Kubernetes and Karpenter.
Calvin is the co-founder and CTO of Six Feet Up, a Python and AI consultancy. He shares how they recently helped a client scale a web application that employs video, audio, and chat sessions. We dig deep into the tooling behind modern Kubernetes systems management and performance monitoring.
Calvin shares a project bootstrap tool for streamlining the development and deployment of a web application. The tool includes a complete blueprint for the infrastructure needed to get started.
We also dig into a collection of coding tools Calvin has been experimenting with. We discuss his recent IndyPy presentation, “Battle of the Bots,” which put several AI code assistants through their paces.
This episode is sponsored by AMD.
Course Spotlight: First Steps With LangChain
Large language models (LLMs) have taken the world by storm. In this step-by-step video course, you’ll learn to use the LangChain library to build LLM-assisted applications.
Topics:
00:00:00 – Introduction 00:02:23 – Scaling a Django project using Kubernetes 00:05:35 – Elastic Kubernets Service (EKS) 00:09:10 – Kubernetes terminology and improvements in tooling 00:11:29 – The Control Plane and the API 00:14:06 – Video Course Spotlight 00:15:11 – scaf: providing DevOps engineers a blueprint for new projects 00:17:21 – What have been the benefits of scaf for internal teams? 00:20:18 – How do you identify and reproduce scaling issues? 00:22:44 – Dealing with IP address scaling 00:26:03 – Why use other observability tools beyond AWS internal ones? 00:29:22 – Other lessons learned and moving toward refactoring code 00:33:53 – Scaling a voice-based LLM application 00:35:35 – Sponsor: AMD 00:36:11 – Looking at limitations and bottlenecks 00:38:08 – Configuring a Kubernetes operator to act on itself 00:39:47 – What project components are within a pod of containers? 00:42:31 – Budgeting for scale using Karpenter 00:43:58 – Tools for running containers locally 00:46:01 – Are containers still a primary development tool for you? 00:50:58 – Resources for learning DevOps and Kubernetes 00:52:54 – Conferences and talks 00:53:56 – Battle of the Bots: comparing coding agents 00:55:15 – What are you excited about in the world of Python? 00:56:20 – What do you want to learn next? 01:02:42 – What’s the best way for people to follow your work online? 01:03:33 – Thanks and goodbyeShow Links:
Six Feet Up - Python and AI for Good, Custom Software Development Kubernetes - Tutorials Managed Kubernetes Service - Amazon EKS - AWS Karpenter Kustomize - Kubernetes native configuration management Kubernetes Components - Control Plane Components Continuous Integration and Deployment for Python With GitHub Actions Argo CD scaf: Provides developers and DevOps engineers with a complete blueprint for a new project Streamline the Dev Experience with Kubernetes and Scaf™ Scaf™ — Six Feet Up Scaf: Complete blueprint for new Python Kubernetes projects - Talk Python To Me Podcast E496 kind Locust - A modern load testing framework Grafana: The open and composable observability platform Grafana Loki OSS - Log aggregation system Prometheus - client_python Elastic network interfaces - Amazon Elastic Compute Cloud eks-node-viewer: EKS Node Viewer k9s: 🐶 Kubernetes CLI To Manage Your Clusters In Style! OrbStack · Fast, light, simple Docker & Linux NixOS Wiki - Python TechWorld with Nana - YouTube Python: The Documentary [OFFICIAL TRAILER] - YouTube Calvin Hendryx-Parker - LinkedInConferences and Meetups:
All Things Open 2025 - All Things Open All Things Open AI Conference All Things Open AI 2025 - AI Builders Track - YouTube Rolling out Enterprise AI: Tools, Insights, & Team Empowerment - Calvin Hendryx-Parker, Six Feet Up - YouTube PyCon US 2025 - PyCon US 2025 PyOhio 2025 IndyPy EventsAI Coding Tools:
Battle of the Bots - Developer Tools Showdown - YouTube Aider - AI Pair Programming in Your Terminal codename goose An entirely open-source AI code assistant inside your editor - Ollama Blog Devstral - Mistral AI 10 LLM Observability Tools to Know in 2025 - Coralogix How often do LLMs snitch? Recreating Theo’s SnitchBench with LLM The lethal trifecta for AI agents: private data, untrusted content, and external communication vllm-proxy: Proxy for vLLM enabling multi-model operation, cache-aware routing, and load balancing.Level up your Python skills with our expert-led courses:
Python Continuous Integration and Deployment Using GitHub Actions First Steps With LangChain Managing Dependencies With Python PoetrySupport the podcast & join our community of Pythonistas
Fri, 20 Jun 2025 - 254 - Starting With marimo Notebooks & Python App Config Management
Looking for a guide on getting started with marimo notebooks? How do you build a reproducible notebook for sharing or create a dashboard with interactive UI elements? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We cover a recent Real Python article by Ian Eyre about using narimo notebooks. The tutorial covers installing Marimo, taking advantage of reactivity, building interactive dashboards, and managing a notebook’s environment through sandboxing. The piece ends by examining the limitations of traditional linear notebooks and how Marimo addresses them.
Christopher discusses an article about how to store the configurations for your Python scripts and projects. Whether you’re managing resource handles to a database, deployment variables, or credentials to external services, you’ll need a way to save and load the details into your Python project. The piece compares saving configurations in several common file formats or through environment variables.
We also share several other articles and projects from the Python community, including a news roundup, the discourse between generative AI coding proponents and detractors, catching memory leaks with your test suite, epigrams on programming, a command line tool to check packages on PyPI, and a collection of string, file, and object utilities.
This episode is sponsored by Six Feet Up.
Course Spotlight: Python Continuous Integration and Deployment Using GitHub Actions
With most software following agile methodologies, it’s essential to have robust DevOps systems in place to manage, maintain, and automate common tasks with a continually changing codebase. By using GitHub Actions, you can automate your workflows efficiently, especially for Python projects.
Topics:
00:00:00 – Introduction 00:02:44 – Python Release 3.14.0b2 00:03:09 – Django security releases issued: 5.2.2, 5.1.10, and 4.2.22 00:03:27 – PyBay 2025 00:03:43 – PyCon NL 2025 - Call for Proposals 00:04:05 – Django Forum: Supporting t-strings 00:04:44 – Ruff Users: What Rules Are You Using and What Are You Ignoring? 00:05:19 – My Shot at Real Python 00:06:03 – My AI Skeptic Friends Are All Nuts 00:10:06 – I Think I’m Done Thinking About genAI For Now 00:11:12 – AI Changes Everything 00:23:01 – Video Course Spotlight 00:24:14 – Configuration of Python Applications 00:29:15 – marimo: A Reactive, Reproducible Notebook 00:35:15 – Sponsor: Six Feet Up 00:36:02 – Catching memory leaks with your test suite 00:41:45 – Epigrams on Programming 00:46:54 – whatsonpypi: Check PyPI From the Command Line 00:48:18 – strif: String, File, and Object Utilities 00:49:44 – PyCoder’s Weekly - Submit a Link 00:50:13 – Thanks and goodbyeNews:
Python Release 3.14.0b2 Django security releases issued: 5.2.2, 5.1.10, and 4.2.22 PyBay 2025 PyCon NL 2025 - Call for Proposals Django Forum: Supportingt-stringsRuff Users: What Rules Are You Using and What Are You Ignoring? My Shot at Real Python – Amanda has recently written her first article for Real Python and this post talks about her experience doing so. If you want to check out the article, it’s on Nested Loops.Show Links:
My AI Skeptic Friends Are All Nuts I Think I’m Done Thinking About genAI For Now AI Changes Everything AI Blog Comparison - Armin Ronacher Configuration of Python Applications – This post talks about how to store configuration for your script and how and when to load the information into your program. marimo: A Reactive, Reproducible Notebook – Discover how marimo notebook simplifies coding with reactive updates, UI elements, and sandboxing for safe, sharable notebooks. Catching memory leaks with your test suite – “If you have a good test suite, you may be able to usepytestfixtures to identify memory and other resource leaks.”Discussion:
Epigrams on Programming Alan Perlis - WikipediaProjects:
whatsonpypi: Check PyPI From the Command Line strif: String, File, and Object UtilitiesAdditional Links:
Episode #238: Charlie Marsh: Accelerating Python Tooling With Ruff and uv Episode #250: DjangoCon Europe 2025: Live Recording From Dublin Episode #236: Simon Willison: Using LLMs for Python Development GenAI Criticism and Moral Quandaries - Armin Ronacher Math support in Markdown - The GitHub Blog Quiz: marimo: A Reactive, Reproducible Notebook Episode #42: What Is Data Engineering and Researching 10 Million Jupyter Notebooks We Downloaded 10,000,000 Jupyter Notebooks From Github – This Is What We Learned Episode #230: marimo: Reactive Notebooks and Deployable Web Apps in Python Episode #501 - marimo - Reactive Notebooks for Python - Talk Python To Me Podcast Episode #24: Options for Packaging Your Python Application: Wheels, Docker, and More - Itamar Turner-Trauring Episode #128: Using a Memory Profiler in Python & What It Can Teach You Episode #172: Measuring Multiple Facets of Python Performance With Scalene PyCoder’s Weekly - Submit a LinkLevel up your Python skills with our expert-led courses:
Python Continuous Integration and Deployment Using GitHub Actions Python mmap: Doing File I/O With Memory Mapping Testing Your Code With pytestSupport the podcast & join our community of Pythonistas
Fri, 13 Jun 2025 - 253 - Rodrigo Girão Serrão: Python Training, itertools, and Idioms
Once you’ve learned the vocabulary and syntax of the Python language, how do you progress into learning the right combinations to put into your code? How can Python’s built-in itertools library enhance your skills? This week on the show, we speak with Rodrigo Girão Serrão about teaching Python through his blog and his passion for the itertools library.
We discuss Rodrigo’s different approaches to writing on his blog. He likes to document smaller concepts about Python and building code in his “Today I Learned” series. He’s also been collecting advice about the best way to use core Python features in another series called “Pydon’ts.”
We cover his recent PyCon US tutorial about the built-in itertools module. The functions contained in the module create iterators for efficient looping. We discuss the categories of tools inside the collection and ways to simplify your code.
We also explore the concept of vocabulary versus idioms in writing. Idioms are a group of words that hold a symbolic meaning that goes beyond the literal meaning of the individual words. We dig into how that applies to learning Python and building a personal collection of programming idioms.
This episode is sponsored by AMD.
Course Spotlight: Working With Missing Data in Polars
In this video course, you’ll learn how to deal with missing data in Polars to ensure it doesn’t interfere with your data analysis. You’ll discover how to check for missing values, update them, and remove them.
Topics:
00:00:00 – Introduction 00:02:34 – Creating Polars video course 00:03:27 – How did you start programming and teaching Python? 00:04:59 – Where did mathspp come from? 00:05:38 – Exploring math and programming in university 00:07:48 – Learning APL 00:09:24 – What goes into building the blog? 00:15:05 – The Pydon’ts and writing books 00:18:37 – PyCon US 2025 00:20:46 – Sponsor: AMD 00:21:23 – Teaching a tutorial about itertools 00:28:58 – Categorizing itertools 00:40:39 – Video Course Spotlight 00:41:55 – The difference between me and Shakespeare 00:46:51 – Learning and practicing with idioms 00:51:01 – TIL and asking questions 00:53:54 – What are you excited about in the world of Python? 00:55:40 – What do you want to learn next? 00:57:35 – How can people follow your work online? 01:01:19 – Thanks and goodbyeShow Links:
mathspp blog TIL (Today I Learned) - mathspp Working With Missing Data in Polars Paul Valéry - “A poem is never finished” - Oxford Reference Personal highlights of PyCon US 2025 - mathspp PyCon US 2025 Lightning Talks - Friday, May 16th, 2025 PM - YouTube PyCon US 2025 Tutorial Sneak Peek: “Reimplementitertoolsfor fun & profit” Rodrigo Girão Serrão - YouTube Alan Perlis - Wikipedia Epigrams on Programming What learning APL taught me about Python - mathspp What APL taught me about Python ⚡️ – lightning talk by Rodrigo Girão Serrão at EuroPython 2023 - YouTube itertools — Functions creating iterators for efficient looping — Python 3.13.4 documentation Module itertools overview - mathspp The little book of itertools - mathspp Python itertools By Example – Real Python What’s new in Python 3.14 — Python 3.15.0a0 documentation beehiiv — The newsletter platform built for growth Python drops 🐍💧 newsletter - mathspp Books - mathspp Rodrigo Girão Serrão 🐍🚀 (@mathspp.com) — Bluesky Rodrigo Girão Serrão - LinkedIn Rodrigo 🐍🚀 (@mathsppblog@fosstodon.org) - Fosstodon Rodrigo 🐍🚀 (@mathsppblog) / XLevel up your Python skills with our expert-led courses:
Efficient Iterations With Python Iterators and Iterables Working With Python Polars Working With Missing Data in PolarsSupport the podcast & join our community of Pythonistas
Fri, 06 Jun 2025 - 252 - Python Thread Safety & Managing Projects With uv
What are the ways you can manage multithreaded code in Python? What synchronization techniques are available within Python’s threading module? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher discusses his recent Real Python video course about thread safety. The course provides a quick overview of race conditions and how to use locks in your code. It then goes on to share a collection of additional synchronization primitives to make your code thread-safe.
We dig into a tutorial by Leodanis Pozo Ramos about managing Python projects with uv. The tutorial shows you how to quickly initialize a project, build the directory structure, add dependencies, and publish your package while practicing the commands inside uv.
We also share several other articles and projects from the Python community, including a news roundup, unraveling t-strings, what’s new in pip 25.1, an SVG-first plotting library, and a data modeling tool built on top of Polars and Pydantic.
Course Spotlight: Thread Safety in Python: Locks and Other Techniques
In this video course, you’ll learn about the issues that can occur when your code is run in a multithreaded environment. Then you’ll explore the various synchronization primitives available in Python’s threading module, such as locks, which help you make your code safe.
Topics:
00:00:00 – Introduction 00:02:23 – PEP 773: A Python Installation Manager for Windows 00:03:09 – PEP 784: Adding Zstandard to the Standard Library 00:03:28 – Python Insider: Python 3.14.0 Beta 1 Is Here! 00:03:48 – Django Security Releases Issued: 5.2.1, 5.1.9 and 4.2.2 00:04:09 – ty: New Type Checker and Language Server by Astral 00:05:01 – pyrefly: A Fast Type Checker and IDE for Python 00:06:03 – The Future of Textualize 00:07:08 – Managing Python Projects With uv 00:12:20 – pre-commit: Install With uv 00:13:03 – Python’s New t-strings 00:16:38 – Unraveling t-strings 00:18:33 – Video Course Spotlight 00:19:50 – What’s New in Pip 25.1 00:24:30 – Thread Safety in Python: Locks and Other Techniques 00:28:40 – glyphx: SVG-first Plotting Library 00:31:20 – patito: A data modeling layer built on top of Polars and Pydantic 00:34:02 – Thanks and goodbyeNews:
PEP 773: A Python Installation Manager for Windows (Accepted) PEP 784: Adding Zstandard to the Standard Library (Accepted) Python Insider: Python 3.14.0 Beta 1 Is Here! Django Security Releases Issued: 5.2.1, 5.1.9 and 4.2.21 ty: New Type Checker and Language Server by Astral pyrefly: A Fast Type Checker and IDE for Python The Future of Textualize – Will McGugan, founder of Textualize the company has announced that they will be closing their doors. Textualize the open source project will remain.Show Links:
Managing Python Projects Withuv– In this tutorial, you’ll learn how to create and manage your Python projects using uv, an extremely fast Python package and project manager written in Rust.pre-commit: Install Withuv– pre-commit is Adam’s favorite Git-integrated “run things on commit” tool. It acts as a kind of package manager, installing tools as necessary from their Git repositories. This post explains how to use it withuv. Python’s Newt-strings– Using f-strings is a readable way of building output, but there are situations where they can’t be used because the contents need to be verified before being string-ified. The new t-strings, coming in 3.14, are a solution to this problem. Unravelingt-strings– PEP 750 introducedt-stringsfor Python 3.14. These are a template string mechanism similar to f-strings. Although they are in 3.14.0b1, there isn’t any documentation yet, so this post explains what they are how they can be used. What’s New in Pip 25.1 – pip 25.1 introduces support for Dependency Groups (PEP 735), resumable downloads, and an installation progress bar. Dependency resolution has also received a raft of bugfixes and improvements. Thread Safety in Python: Locks and Other Techniques – In this video course, you’ll learn about the issues that can occur when your code is run in a multithreaded environment. Then you’ll explore the various synchronization primitives available in Python’s threading module, such as locks, which help you make your code safe.Projects:
glyphx: SVG-first Plotting Library JakobGM/patito: A data modeling layer built on top of Polars and PydanticAdditional Links:
Episode #238: Charlie Marsh: Accelerating Python Tooling With Ruff and uv pgjones/sql-tstring: SQL-tString allows for f-string like construction of sql queries PEP 787: Safer Subprocess Usage Usingt-strings(Postponed to 3.15) davepeck/pep750-examples: Examples of using t-strings as defined in PEP 750 xkcd: Exploits of a Mom Little Bobby Tables - explain xkcdLevel up your Python skills with our expert-led courses:
Threading in Python Thread Safety in Python: Locks and Other Techniques Python Basics Exercises: Installing Packages With pipSupport the podcast & join our community of Pythonistas
Fri, 30 May 2025 - 251 - DjangoCon Europe 2025: Live Recording From Dublin
What goes into making video courses at Real Python? How should you build an installable Django application? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
This week, the Real Python Podcast is experiencing several firsts. We recorded a show in front of a live audience for the very first time, and it happened in Dublin, Ireland—a place neither of us had visited before. I also got to meet Christopher Trudeau in person for the first time.
We’re sharing that live recording from the conference in this episode. We discuss how we create video courses at Real Python, and Christopher talks about his tutorial on how to write an installable Django application.
We also share a few summaries of the talks from the conference and projects from the Django community, including a news roundup, how decisions are made inside the Django Foundation, ways you can help with reviews, using the Django ORM with Marimo notebooks, maintaining a data-oriented project, how to get foreign keys horribly wrong, a project for simple deployment, and a project for adding extra buttons inside the Django Admin.
We would like to thank the audience members from Ireland who heard about DjangoCon by listening to the podcast. Thank you for attending the conference and for taking the time to say hello. We also appreciate those who asked us insightful questions at the end of the show.
We enjoyed exploring Dublin and recording the show in front of such a welcoming audience. We learned a ton from all the great talks given at the conference and made some new connections for future interviews.
This episode is sponsored by AMD.
Course Spotlight: How to Set Up a Django Project
In this course, you’ll learn the necessary steps that you’ll need to take to set up a new Django project. You’ll learn the basic setup for any new Django project, which needs to happen before programming the specific functionality of your project.
Topics:
00:00:00 – Introduction 00:03:59 – PEP 770 – Improving measurability of Python packages with Software Bill-of-Materials 00:04:22 – PEP 736 – Shorthand syntax for keyword arguments at invocation 00:04:46 – PEP 661 – Sentinel Values 00:05:21 – Pydantic v2.11 Released 00:05:41 – How We Build Video Courses at Real Python 00:17:17 – Sponsor: AMD 00:17:56 – How to Write an Installable Django App 00:22:21 – Attendees from Ireland who heard about the conference from us 00:23:09 – Django needs you! (to do code review) 00:24:12 – How we make decisions in Django 00:26:07 – Marimo: Sharing the joys of the Django ORM with Python Notebooks 00:27:30 – Steering Council Introduction 00:28:17 – Video Course Spotlight 00:29:45 – Data-Oriented Django Drei 00:31:04 – How to get Foreign Keys horribly wrong in Django 00:32:17 – Converting integer fields to bigint using Django migrations at scale 00:33:17 – django-simple-deploy 00:34:57 – django-admin-extra-buttons 00:37:51 – What goes into creating the podcast? 00:44:04 – How does RP decide what Learning Paths to create? 00:48:30 – Python background when starting with a framework 00:54:46 – Django getting started resources at Real Python 00:55:34 – Thanks and goodbyeNews:
PEP 770 – Improving measurability of Python packages with Software Bill-of-Materials (Accepted) PEP 736 – Shorthand syntax for keyword arguments at invocation (Rejected) PEP 661 – Sentinel Values (Deferred) Pydantic v2.11 ReleasedShow Links:
DjangoCon Europe 2025 How We Build Video Courses at Real Python How to Write an Installable Django App – Real Python Django needs you! (to do code review) - Sarah Boyce How we make decisions in Django - Carlton Gibson Marimo and Jupyter: Sharing the joys of the Django ORM with Python Notebooks - Chris Adams Steering Council Introduction- Emma Delescholle Data-Oriented Django Drei - Adam Johnson How to get Foreign Keys horribly wrong in Django - Haki Benita Turn back time: Converting integer fields to bigint using Django migrations at scale - Tim BellProjects:
django-simple-deploy - readthedocs django-admin-extra-buttons - PyPIAdditional Links:
django-awl Episode #230: marimo: Reactive Notebooks and Deployable Web Apps in Python marimo - a next-generation Python notebook Data-Oriented Django - Adam Johnson - YouTube - DjangoCon 2022 Data Oriented Django Deux - Adam Johnson - YouTube - DjangoCon Europe 2024 Episode #165: Leveraging the Features of Your Database With Postgres and Python pgMustard - review Postgres query plans quickly Django Chat Django for Data Science: Deploying Machine Learning Models with Django - William Vincent Episode #500 - Django Simple Deploy and other DevOps Things - Talk Python To Me Podcast Episode #234: Building New Structures for Learning Python Reference – Real Python Django for Web Development (Learning Path) – Real Python Getting Started With Django: Building a Portfolio App – Video Course Your First Steps With Django: Set Up a Django Project – TutorialLevel up your Python skills with our expert-led courses:
Getting Started With Django: Building a Portfolio App Sneaky REST APIs With Django Ninja How to Set Up a Django ProjectSupport the podcast & join our community of Pythonistas
Fri, 23 May 2025 - 250 - Going Beyond requirements.txt With pylock.toml and PEP 751
What is the best way to record the Python dependencies for the reproducibility of your projects? What advantages will lock files provide for those projects? This week on the show, we welcome back Python Core Developer Brett Cannon to discuss his journey to bring PEP 751 and the pylock.toml file format to the community.
Brett has been working on a way to move beyond the
requirements.txtfile for over six years. He was on the show previously to discuss his work on PEP 665, which was rejected. He decided to continue to push forward, authoring PEP 751 last year, which was accepted at the end of March this year.The PEP calls for a new file format to record your project’s dependencies. The goal was to have a standardized immutable record for what should be installed to reproduce your project in a virtual environment. He discusses working with other packaging projects and the compromises involved in creating a standard.
Course Spotlight: Using the Python subprocess Module
In this video course, you’ll learn how to use Python’s subprocess module to run and control external programs from your scripts. You’ll start with launching basic processes and progress to interacting with them as they execute.
Topics:
00:00:00 – Introduction 00:02:38 – Brett’s roles within the Python community 00:05:41 – How to move beyond requirement.txt? 00:10:58 – What does the community use as project artifacts? 00:15:28 – Building on the success of pyproject.toml 00:17:44 – Introducing PEP 665 00:19:49 – Software Bills of Materials and security 00:25:20 – Back to lock files and security 00:31:08 – Video Course Spotlight 00:32:27 – Not giving up on the idea 00:34:01 – Leading into PEP 751 00:38:54 – Working toward a single multi-platform file 00:43:02 – The final push 00:48:54 – Leaving room for flexibility 00:53:50 – And it’s done, PEP 751 accepted unconditionally 00:58:06 – Keynote speaker at EuroPython 2025 00:58:45 – What are uv workspaces? 01:01:02 – Considering the use of lock files in data science 01:05:23 – Updates about Python for WASI and Emscripten 01:13:51 – Clarification on WASI 01:20:28 – Future conversation about Python launcher 01:23:04 – What are you excited about in the world of Python? 01:24:25 – What do you want to learn next? 01:28:41 – What’s the best way to follow your work online? 01:31:00 – Thanks and goodbyeShow Links:
Tall, Snarky Canadian BREAKING: Guido van Rossum Returns as Python’s BDFL - YouTube Python Packaging User Guide PEP 751 – A file format to record Python dependencies for installation reproducibility PEP 665 – A file format to list Python dependencies for reproducibility of an application pylock.toml Specification - Python Packaging User Guide Inline script metadata - Python Packaging User Guide PEP 723 – Inline script metadata Using workspaces - uv Do you have a flag? - Eddie Izzard - YouTube OpenBLAS : An optimized BLAS library EuroPython 2025 - July 14 to 20, 2025 - Prague, Czech Republic & Remote Bytecode Alliance Recent conversations - Bytecode Alliance - Zulip My impressions of Gleam My impressions of ReScript Python on Exercism Brett Cannon’s Films - Letterboxd Media I Like - Open Source by Brett Cannon Brett Cannon (@snarky.ca) — Bluesky Brett Cannon (@brettcannon@fosstodon.org) - FosstodonLevel up your Python skills with our expert-led courses:
Python Basics Exercises: Installing Packages With pip Everyday Project Packaging With pyproject.toml Using the Python subprocess ModuleSupport the podcast & join our community of Pythonistas
Fri, 16 May 2025 - 249 - Experiments With Gen AI, Knowledge Graphs, Workflows, and Python
Are you looking for some projects where you can practice your Python skills? Would you like to experiment with building a generative AI app or an automated knowledge graph sentiment analysis tool? This week on the show, we speak with Raymond Camden about his journey into Python, his work in developer relations, and the Python projects featured on his blog.
Raymond is a developer evangelist and advocate who works with APIs, AI, and the web. He’s been expanding his developer knowledge by learning Python and documenting his journey through his blog and with the live-streaming show Code Break.
We discuss a couple of his recent Python projects. The first is building a resume review and revision system with generative AI and Flask. The other project uses Diffbot’s knowledge graph and Pipedream’s workflow tools to create an automated sentiment analysis tool.
This episode is sponsored by AMD.
Course Spotlight: What Can You Do With Python?
In this video course, you’ll find a set of guidelines that will help you start applying your Python skills to solve real-world problems. By the end, you’ll be able to answer the question, “What can you do with Python?”
Topics:
00:00:00 – Introduction 00:03:15 – Programming background and learning Python 00:07:59 – What’s been hard about learning a new language? 00:09:26 – Learning pip, managing packages, and suggesting uv 00:12:26 – Developer relations and sharing knowledge 00:14:40 – Sponsor: AMD - AIatAMD 00:15:17 – Moving things from Code Break to the blog 00:17:27 – Building a resume review and revise system with Gen AI 00:31:58 – Video Course Spotlight 00:33:16 – Adding the revision step 00:35:59 – Exploring code assistance 00:38:52 – Changing into the developer relations role 00:41:40 – Using Diffbot and Pipedream for sentiment analysis project 00:48:06 – Pipedream workflow with Python scripts 00:53:28 – What are you excited about in the world of Python? 00:55:45 – What do you want to learn next? 00:57:45 – How can people follow your work online? 00:58:03 – Thanks and goodbyeShow Links:
Raymond Camden Code Break - CFE.dev Exploring AI with Gemini and Transformers.js - CFE.dev Building a Resume Review and Revise System with Generative AI and Flask Flask Quickstart - Flask Documentation Get a Gemini API key - Google AI for Developers Automating and Responding to Sentiment Analysis with Diffbot’s Knowledge Graph Diffbot - Knowledge Graph, AI Web Data Extraction and Crawling Python Posts - Raymond Camden (27 Posts) Pipedream - Connect APIs, AI, databases, and more Geolocating a Folder of Images with Python Mastering Google Fu: An Expert’s Guide To Advanced Search Techniques uv - Astral Managing Python Projects With uv: An All-in-One Solution – Real Python Episode #238: Charlie Marsh: Accelerating Python Tooling With Ruff and uv – The Real Python Podcast marimo - A next-generation Python notebook Episode #230: marimo: Reactive Notebooks and Deployable Web Apps in Python Drumeo - Reach your drumming goals Jess Bowen Hears Rage Against The Machine For The First Time - YouTube REAL ID - Homeland Security PyCon US 2025 Raymond Camden - LinkedIn Raymond Camden (@raymondcamden@mastodon.social) - MastodonLevel up your Python skills with our expert-led courses:
Creating a Scalable Flask Web Application From Scratch Python Basics: Installing Packages With pip What Can You Do With Python?Support the podcast & join our community of Pythonistas
Fri, 09 May 2025 - 248 - Exploring DuckDB & Comparing Python Expressions vs Statements
Are you looking for a fast database that can handle large datasets in Python? What’s the difference between a Python expression and a statement? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We cover a Real Python article that explores DuckDB and discuss creating a database by reading data from multiple file formats. When building queries, DuckDB uses standard SQL syntax, or for an object-oriented approach, you can chain methods together using the Python API. We also explore the advantages of lazy evaluation using DuckDB relations.
Christopher digs into another Real Python tutorial that covers the differences between expressions and statements in Python. The piece goes beyond definitions to answer questions about where and when to use them in your code.
We also share several other articles and projects from the Python community, including a news roundup, an investigation into the lack of security in MCP, a discussion on the differences between staff engineer and engineering manager roles, guidance on creating and modifying Word documents with Python, and a project to go beyond print for debugging your code.
Check out realpython.com/workshops to join the upcoming cohort of the Intermediate Python Deep Dive course.
Course Spotlight: Creating a Python Dice Roll Application
In this step-by-step video course, you’ll build a dice-rolling simulator app with a minimal text-based user interface using Python. The app will simulate the rolling of up to six dice. Each individual die will have six sides.
Topics:
00:00:00 – Introduction 00:02:24 – Python 3.14.0a7, 3.13.3, 3.12.10, 3.11.12, 3.10.17 and 3.9.22 are now available 00:02:47 – PEP 768: Safe External Debugger Interface for CPython (Accepted) 00:03:16 – PEP 781: Make TYPE_CHECKING a Built-in Constant 00:03:43 – PEP 750: Template Strings (Accepted) 00:04:15 – PEP 751: A file format to record Python dependencies for installation reproducibility (Accepted) 00:05:20 – EuroPython July 14th-20th Prague, Tickets Available 00:05:42 – Django 5.2 Released 00:05:59 – Django security releases issued: 5.1.8 and 5.0.14 00:06:19 – Introducing DuckDB 00:12:19 – Expression vs Statement in Python: What’s the Difference? 00:17:11 – Video Course Spotlight 00:18:33 – The “S” in MCP Stands for Security 00:28:08 – Real Python Workshops 00:30:26 – Staff Engineer vs Engineering Manager 00:44:48 – python-docx: Create and modify Word documents with Python 00:47:28 – peek: like print, but easy 00:50:32 – Thanks and goodbyeNews:
Python 3.14.0a7, 3.13.3, 3.12.10, 3.11.12, 3.10.17 and 3.9.22 are now available PEP 768: Safe External Debugger Interface for CPython (Accepted) PEP 781: Make TYPE_CHECKING a Built-in Constant – This PEP proposes adding a new built-in variable, TYPE_CHECKING, which is True when the code is being analyzed by a static type checker, and False during normal runtime. PEP 750: Template Strings (Accepted) – This PEP introduces template strings for custom string processing. PEP 751: A file format to record Python dependencies for installation reproducibility (Accepted) EuroPython July 14th-20th Prague, Tickets Available Django 5.2 Released Django security releases issued: 5.1.8 and 5.0.14Topics:
Introducing DuckDB – In this showcase tutorial, you’ll be introduced to a library that allows you to use a database in your code. DuckDB provides an efficient relational database that supports many features you may already be familiar with from more traditional relational database systems. Expression vs Statement in Python: What’s the Difference? – In this tutorial, you’ll explore the differences between an expression and a statement in Python. You’ll learn how expressions evaluate to values, while statements can cause side effects. You’ll also explore the gray areas between them, which will enhance your Python programming skills. The “S” in MCP Stands for Security - Elena Cross – Model Context Protocol is a new standard behind how Large Language Models integrate with tools and data. Unfortunately, MCP is not secure by default. Staff Engineer vs Engineering Manager - Alex Ewerlöf Notes – When do you need a Staff Engineers? What’s the difference between Staff Engineer and Engineering Manager? This article covers these questions and more.Projects:
python-docx: Create and modify Word documents with Python peek: like print, but easyAdditional Links:
Intermediate Python Deep Dive Course – Real Python Episode #227: New PEPs: Template Strings & External Wheel Hosting DuckDB – An in-process SQL OLAP database management system Online analytical processing - Wikipedia Model Context Protocol has prompt injection security problems Model Context Protocol - Documentation modelcontextprotocol/python-sdk: The official Python SDK for Model Context Protocol servers and clients “Biggest commitment to a 3 second joke I’ve ever seen” — BlueskyLevel up your Python skills with our expert-led courses:
Creating a Python Dice Roll Application Python Assignment Expressions and Using the Walrus Operator Debugging in Python With pdbSupport the podcast & join our community of Pythonistas
Fri, 18 Apr 2025 - 247 - Learning Intermediate Python With a Deep Dive Course
Do you want to learn deeper concepts in Python? Would the accountability of scheduled group classes help you get past the basics? This week, five Real Python Intermediate Deep Dive workshop members discuss their experiences.
We discuss the struggles of learning Python independently and the barriers to moving beyond the basics. We also explore the advantages of having a curated collection of both written tutorials and video courses. The cohort members also talk about filling in the gaps in their knowledge, using their new skills at work, and building confidence in their Python journey.
Check out realpython.com/live to join the upcoming cohort of the Intermediate Python Deep Dive course.
Course Spotlight: Efficient Iterations With Python Iterators and Iterables
In this video course, you’ll learn what iterators and iterables are in Python. You’ll learn how they differ and when to use them in your code. You’ll also learn how to create your own iterators and iterables to make data processing more efficient.
Topics:
00:00:00 – Introduction 00:02:04 – Matt’s background 00:03:17 – Chris’ background 00:05:55 – Jerry’s background 00:07:40 – Akhil’s background 00:09:25 – Rich’s background 00:10:35 – What skills didn’t translate from the previous language? 00:11:54 – Learning deeper concepts about OOP in Python 00:15:42 – Moving beyond scripts and ability to read code 00:19:41 – How accountability helps with learning 00:23:41 – Challenges with self-paced learning 00:28:11 – Having a curated collection of written and video materials 00:33:28 – Video Course Spotlight 00:34:56 – What were surprising discoveries? 00:36:32 – Working on a project 00:37:27 – Using these new skills at work 00:45:01 – Refining existing skills 00:46:41 – Do you feel more confident to learn even further? 00:49:26 – What are other Python projects you work on? 00:55:17 – Thanks and goodbyesShow Links:
Intermediate Python Deep Dive Course – Real Python Object-Oriented Programming (OOP) in Python – Real Python Flipped classroom - Wikipedia itertools — Functions creating iterators for efficient looping — Python 3.13.3 documentation Primer on Python Decorators – Real Python Pointers in Python: What’s the Point? Intern Objects – Real Python Data Classes in Python – Real PythonLevel up your Python skills with our expert-led courses:
Efficient Iterations With Python Iterators and Iterables Python's map() Function: Transforming Iterables Python Decorators 101Support the podcast & join our community of Pythonistas
Fri, 11 Apr 2025 - 246 - GUIs & TUIs: Choosing a User Interface for Your Python Project
What are the current Python graphical user interface libraries? Should you build everything in the terminal and create a text-based user interface instead? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We cover a Real Python article that explores the Textual library. Textual is a Python toolkit and framework for creating attractive and functional text-based user interface (TUI) applications that run in the user’s terminal. The tutorial covers organizing layouts of widgets, styling components, and handling events and user actions within an application.
We continue our exploration of user interface options for your projects by discussing a recent article about Python GUI libraries. The piece compares the frameworks, showing a quick preview of how they look and sample code for a simple application. We share our thoughts and experiences with several of the libraries as we go through the collection.
We also share several other articles and projects from the Python community, including a news roundup, handling binary data in Python, exploring the rules terminal programs follow, using Microsoft Edge’s online text-to-speech service from Python, and a project for reading and writing compressed JSON.
Course Spotlight: Building a Code Image Generator With Python
In this step-by-step video course, you’ll build a code image generator that creates nice-looking images of your code snippets to share on social media. Your code image generator will be powered by the Flask web framework and include exciting packages like Pygments and Playwright.
Topics:
00:00:00 – Introduction 00:02:16 – PyCon US: Travel Grants & Refund Policy 00:02:57 – PyCon US 2025 travel guidance? 00:03:32 – Faster Branch Coverage Measurement 00:04:11 – Python Release Python 3.14.0a6 00:04:21 – Django 5.2 Release Candidate 1 Released 00:04:30 – PyOhio July 26-27, Call for Papers 00:04:59 – PEP 779: Criteria for Supported Status for Free-Threaded Python 00:05:45 – Python Textual: Build Beautiful UIs in the Terminal 00:11:32 – Bytes Objects: Handling Binary Data in Python 00:16:41 – Video Course Spotlight 00:18:01 – Which Python GUI Library Should You Use in 2025? 00:32:08 – Real Python Workshops 00:34:23 – “Rules” That Terminal Programs Follow 00:40:29 – edge-tts: Use Microsoft Edge’s online text-to-speech service from Python 00:44:07 – compress_json: Read and Write Compressed JSON 00:45:34 – Thanks and goodbyeNews:
PyCon US: Travel Grants & Refund Policy – PyCon US offers travel grants to visitors. This post explains how they’re decided. Also, with changing border requirements in the US, you may also be interested in the Refund Policy for International Attendees. PyCon US 2025 travel guidance? - PSF / Ask the staff! - Discussions on Python.org Faster Branch Coverage Measurement – After nearly two years, Ned thinks this is finally ready:coverage.pycan usesys.monitoringto more efficiently measure branch coverage. Python Release Python 3.14.0a6 Django 5.2 Release Candidate 1 Released PyOhio July 26-27, Call for Papers PEP 779: Criteria for Supported Status for Free-Threaded Python – PEP 703 (Making the Global Interpreter Lock Optional in CPython), described three phases of development. This PEP outlines the criteria to move between phases.Show Links:
Python Textual: Build Beautiful UIs in the Terminal – Textual is a Python library for building text-based user interfaces (TUIs) that support rich text, advanced layouts, and event-driven interactivity in the terminal. This tutorial showcases some of the ways you can design an appealing and engaging UI using Textual. Bytes Objects: Handling Binary Data in Python – In this tutorial, you’ll learn about Python’s bytes objects, which help you process low-level binary data. You’ll explore how to create and manipulate byte sequences in Python and how to convert between bytes and strings. Additionally, you’ll practice this knowledge by coding a few fun examples. Which Python GUI Library Should You Use in 2025? – This post compares the Python GUI libraries available in 2025, including PyQT, PySide, TKinter, and Kivy. “Rules” That Terminal Programs Follow – The conventions that most terminal programs follow mean that you can more easily know how to control them. Julia’s post talks about “rules” that terminal programs tend to follow, and so should yours.Projects:
edge-tts: Use Microsoft Edge’s online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key compress_json: Read and Write Compressed JSONAdditional Links:
Intermediate Python Deep Dive Course – Real Python Episode #80: Make Your Python App Interactive With a Text User Interface (TUI) Build a Contact Book App With Python, Textual, and SQLite Binary, Bytes, and Bitwise Operators in Python – Video Course Nibble (magazine) - Wikipedia Python GUI Programming – Real Python Python GUI Programming With Tkinter – Tutorial Python and PyQt: Building a GUI Desktop Calculator – Tutorial Build Cross-Platform GUI Apps With Kivy – Tutorial How to Build a Python GUI Application With wxPython – Tutorial Episode #182: Building a Python JSON Parser & Discussing Ideas for PEPs Speech Synthesis Markup Language (SSML) overview - Speech service - Azure AI services | Microsoft LearnLevel up your Python skills with our expert-led courses:
Building a Python GUI Application With Tkinter Build a GUI Calculator With PyQt and Python Building a Code Image Generator With PythonSupport the podcast & join our community of Pythonistas
Fri, 04 Apr 2025 - 245 - A Decade of Automating the Boring Stuff With Python
What goes into updating one of the most popular books about working with Python? After a decade of changes in the Python landscape, what projects, libraries, and skills are relevant to an office worker? This week on the show, we speak with previous guest Al Sweigart about the third edition of “Automate the Boring Stuff With Python.”
Al shares his thoughts on teaching Python and writing books over the past decade. In this third edition, he shares several new projects and updates to existing ones. We discuss Python tools for transcription, text-to-speech, notifications, and data storage.
We talk about the importance of debugging and improvements to Python error messages. He also shares a collection of resources, including conference talks, small projects, and Python libraries.
Course Spotlight: Exploring Scopes and Closures in Python
In this Code Conversation video course, you’ll take a deep dive into how scopes and closures work in Python. To do this, you’ll use a debugger to walk through some sample code, and then you’ll take a peek under the hood to see how Python holds variables internally.
Topics:
00:00:00 – Introduction 00:01:46 – The Recurse Center and scrollart.org 00:05:11 – Third Edition of Automate the Boring Stuff With Python 00:07:32 – The types of projects covered in the new edition 00:09:44 – What was the original page count? 00:11:00 – Learning Python and it being perceived as magic 00:12:00 – PyCon US 2025 - Make Python Talk and Listen 00:14:22 – Text-to-speech with pyttsx3 00:19:31 – Generating notifications and messages with ntfy.sh 00:22:09 – Exploring SQLite 00:28:26 – Teaching enough to start building 00:31:03 – The Recursive Book of Recursion 00:32:45 – Do you see a change in the audience of Python learners 00:35:36 – Expectations put upon a new Python learner 00:40:28 – What changes has 10 years inspired for the book? 00:43:40 – Teaching things in a new order and debugging 00:47:31 – Video Course Spotlight 00:48:56 – Including simple projects 00:54:12 – Book release timeframe and pre-orders 00:58:26 – In-line metadata for Python script sharing 00:59:33 – What are you excited about in the world of Python? 01:01:56 – What do you want to learn next? 01:04:34 – How can people follow your work online? 01:05:19 – Thanks and goodbyeShow Links:
Automate the Boring Stuff with Python, 3rd Edition - No Starch Press The Recurse Center scrollart.org 20 GOTO 10: How to Make Scrolling ASCII Art - PyTexas 2024 - YouTube Episode #26: 5 Years Podcasting Python With Michael Kennedy: Growth, GIL, Async, and More whisper: Robust Speech Recognition via Large-Scale Weak Supervision PyVideo.org - Al Sweigart pyttsx3: Offline Text To Speech Synthesis for Python pyttsx3 - PyPI tesseract: Tesseract Open Source OCR Engine Make Python Talk, Make Python Listen - PyCon US 2025 yt-dlp: A feature-rich command-line audio/video downloader ntfy.sh - Send push notifications to your phone via PUT/POST SQLite Home Page SQLite and SQLAlchemy in Python: Move Your Data Beyond Flat Files – video course The Recursive Book of Recursion - No Starch Press Al Sweigart: The Amazing Mutable, Immutable Tuple - YouTube Python Developers Survey 2023 Results Inline script metadata - Python Packaging User Guide PyCon US 2025 Rust Programming Language Al Sweigart (@AlSweigart@mastodon.social) - Fosstodon Al Sweigart (@alsweigart.bsky.social) — Bluesky Invent with PythonLevel up your Python skills with our expert-led courses:
Debugging in Python With pdb Exploring Scopes and Closures in Python SQLite and SQLAlchemy in Python: Move Your Data Beyond Flat FilesSupport the podcast & join our community of Pythonistas
Fri, 21 Mar 2025 - 244 - Manage Projects With pyproject.toml & Explore Polars LazyFrames
How can you simplify the management of your Python projects with one file? What are the advantages of using LazyFrames in Polars? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We share a recent Real Python tutorial by Ian Currie about managing projects with a
pyproject.tomlfile. This file simplifies Python project configuration by unifying package setup, managing dependencies, and streamlining builds.Christopher continues his exploration of the Polars library by covering another Real Python tutorial about working with LazyFrames. He describes how LazyFrames don’t contain data but instead store a set of instructions known as a query plan.
We also share several other articles and projects from the Python community, including a news roundup, building a to-do app with Python and Kivy, working with DuckDB directly instead of using a DataFrame library, a discussion on fiction and nonfiction books about computer science, a terminal visual effects engine, and a full-stack platform for interactive data apps.
Course Spotlight: Everyday Project Packaging With
pyproject.tomlIn this Code Conversation video course, you’ll learn how to package your everyday projects with
pyproject.toml. Playing on the same team as the import system means you can call your project from anywhere, ensure consistent imports, and have one file that’ll work for many build systems.Topics:
00:00:00 – Introduction 00:02:00 – Happy Pi Day! 00:02:15 – Follow-up: Is BDD Dying? 00:03:32 – Django security releases issued: 5.1.7, 5.0.13 and 4.2.20 00:04:01 – Django 5.2 Beta 1 Released 00:04:11 – DjangoCon Africa Aug 2025 CFP 00:04:29 – Launching the PyCon US 2025 Schedule 00:04:48 – PyPy v7.3.19 Release 00:05:06 – Poetry 2.0.0 Released 00:05:34 – How to Manage Python Projects Withpyproject.toml00:12:10 – Build a To-Do App With Python and Kivy 00:16:22 – Mastering DuckDB When You’re Used to pandas or Polars 00:21:08 – Video Course Spotlight 00:22:42 – How to Work With Polars LazyFrames 00:27:41 – Fiction/Non-Fiction Books on the Topic of CS? 00:42:28 – preswald: Full-Stack Platform for Interactive Data Apps 00:45:52 – terminaltexteffects: Terminal Visual Effects Engine 00:47:59 – Thanks and goodbyeFollow-up:
Episode #239: Behavior-Driven vs Test-Driven Development & Using Regex in Python Is BDD Dying? - Automation PandaNews:
Django security releases issued: 5.1.7, 5.0.13 and 4.2.20 | Weblog | Django Django 5.2 Beta 1 Released DjangoCon Africa Aug 2025, Arusha, Tanzania, (Call for Proposals) Launching the PyCon US 2025 Schedule – This post summarizes the schedule for PyConUS, including a summary of the keynote speakers, and updates on conference swag. PyPy v7.3.19 Release Poetry 2.0.0 ReleasedShow Links:
How to Manage Python Projects Withpyproject.toml– Learn how to manage Python projects with the pyproject.toml configuration file. In this tutorial, you’ll explore key use cases of the pyproject.toml file, including configuring your build, installing your package locally, managing dependencies, and publishing your package to PyPI. Build a To-Do App With Python and Kivy – “In this tutorial, you’ll go through a series of steps to build a basic To-Do app with Python, SQLite, and Kivy.” Mastering DuckDB When You’re Used to pandas or Polars – Why use DuckDB / SQL at all if you’re used to DataFrames? This article makes the case for some reasons why, and shows how to perform some operations which in DataFrames are basic but in SQL aren’t necessarily obvious. How to Work With Polars LazyFrames – In this tutorial, you’ll gain an understanding of the principles behind Polars LazyFrames. You’ll also learn why using LazyFrames is often the preferred option over more traditional DataFrames.Discussion:
Fiction/Non-Fiction Books on the Topic of CS? Christopher Trudeau’s most recommended books (picked by super fans) ctrudeau - LibraryThingProject:
preswald: Full-Stack Platform for Interactive Data Apps terminaltexteffects: Terminal Visual Effects EngineAdditional Links:
Pi Day - Celebrate Mathematics on March 14th What’s new in Python 3.14 — Python 3.14.0a5 documentation Mark Litwintschik - Tech Blog Episode #224: Narwhals: Expanding DataFrame Compatibility Between Libraries Working With Python Polars - Video Course How to Deal With Missing Data in Polars – Tutorial Book Review: The Little Schemer - The Invent with Python BlogBooks Mentioned by Mr. Trudeau:
“The Cuckoo’s Egg” by Clifford Stoll “Mythical Man Month” by Frederick Brooks “Phoenix Project” by Gene Kim “Dreaming in Code” by Scott Rosenberg “Digital Fortress” by Dan Brown “Godel Escher, Bach” by Douglas Hofstadlter “A Philosophy of Software Design” by John Ousterhout’s “I Hate The Internet” by Jarret Kobek “Snow Crash” by Neal Stephenson “Automate the Boring Stuff with Python” by Al Sweigart “Django In Action” by Christopher Trudeau “Refactoring Databases” by Scott W Ambler and Pramod J Sadalage “The C Programming Language” by Dennis M. Ritchie and Brian W. Kernighan “Open Source Licensing” by Lawrence Rosen “The Quick Python Book” by Naomi R. Ceder “Learn to Code By Solving Problems: A Python Programming Primer” by Daniel Zingaro “Python Automation Cookbook” by Jaime BueltaBooks Mentioned by Mr. Bailey:
“The Little Schemer” by Daniel P. Friedman “Zen and the Art of Motorcycle Maintenance” by Robert M. Pirsig “Shop Class as Soulcraft: An Inquiry into the Value of Work” by Matthew B. Crawford “Django for Beginners, APIs, and Professionals” by William S. Vincent “Python Crash Course” by Eric Matthes “Automate the Boring Stuff With Python” by Al Sweigart “Fluent Python” by Luciano Ramalho “Practices of the Python Pro” by Dane Hillard “Daemon and Freedom™” by Daniel SuarezLevel up your Python skills with our expert-led courses:
Everyday Project Packaging With pyproject.toml Working With Python Polars Publishing Python Packages to PyPISupport the podcast & join our community of Pythonistas
Fri, 14 Mar 2025 - 243 - Eric Matthes: Maybe Don't Start With Unit Tests
Should you always start testing your code with unit tests? When does it make sense to look at integration or end-to-end testing as a first step instead? This week on the show, we speak with previous guest Eric Matthes about where to begin testing your code.
Eric is the author of the popular book Python Crash Course. Early in the development of the book, he decided to introduce testing and added a chapter on testing code with pytest.
Over the past couple of years, Eric has continued to consider when and where to test a project’s code. He thinks there are hazards to always starting with unit tests. The type of project and its audience should determine what kind of testing to employ initially.
We discuss using pytest to develop integration tests on multiple types of projects. We also explore fixtures and what goes into building a test suite. Eric also shares criteria for when and where it makes sense to add unit tests to a project.
Course Spotlight: Using Python’s assert to Debug and Test Your Code
In this course, you’ll learn how to use Python’s assert statement to document, debug, and test code in development. You’ll learn how assertions might be disabled in production code, so you shouldn’t use them to validate data. You’ll also learn about a few common pitfalls of assertions in Python.
Topics:
00:00:00 – Introduction 00:01:47 – Submitting talks to conferences 00:04:10 – Don’t start with unit tests! 00:07:35 – How did you start with testing? 00:11:30 – Example of a project needing tests 00:14:54 – Defining types of tests 00:16:44 – Integration vs end-to-end tests 00:19:09 – When should you build tests? 00:22:13 – Trade offs of integration vs unit tests 00:24:05 – Why is there push back on this idea? 00:27:36 – Video Course Spotlight 00:29:09 – Using pytest 00:33:24 – Transcripts project example 00:37:03 – py-image-border project 00:40:29 – Criteria for when you should write unit tests 00:48:51 – How to practice writing tests 00:50:28 – Building an integration test and pytest fixtures 00:55:05 – What’s in the test folder? 00:56:31 – Idea for a PyCon tutorial on implementing tests 00:57:29 – Other pytest advice and parametrization 01:01:13 – Caveats to not starting with unit tests 01:02:30 – pytest documentation and other advice 01:05:23 – How to reach Eric online 01:06:47 – What are you excited about in the world of Python? 01:08:23 – What do you want to learn next? 01:09:48 – What conferences are you attending? 01:10:06 – Thanks and goodbyeShow Links:
Don’t start with unit tests - by Eric Matthes Sleep Better By Writing Python Tests with Eric Matthes - YouTube Episode #163: Python Crash Course & Learning Enough to Start Creating git-sim: Visually simulate Git operations in your own repos with a single terminal command Manim Community django-simple-deploy Learn the grand staff! py-image-border: Add a border to any image pytest Documentation - Get Started About fixtures - pytest documentation Parametrizing tests - pytest documentation uv: Unified Python packaging Prophet 5 Compact Poly Synth - Sequential PyCon US 2025 EuroPython 2025 - July 14th-20th 2025 - Prague, Czech Republic & Remote Python Crash Course, 3rd Edition - No Starch Press Mostly Python - Eric MatthesLevel up your Python skills with our expert-led courses:
Everyday Project Packaging With pyproject.toml Testing Your Code With pytest Using Python's assert to Debug and Test Your CodeSupport the podcast & join our community of Pythonistas
Fri, 07 Mar 2025 - 242 - Deciphering Python Jargon & Compiling Python 1.0
How do you learn the terms commonly used when speaking about Python? How is the jargon similar to other programming languages? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss a Python glossary recently created by Trey Hunner. Trey describes it as an unofficial glossary and Python jargon file. We dig into the terms and colloquial language often used when describing Python.
We cover a blog post celebrating 31 years of Python by compiling Python 1.0. The piece walks through the hoops of finding the source code and standing up an old version of Debian. Once compiled, they open the REPL and find it surprisingly capable.
We also share several other articles and projects from the Python community, including release news, a Python enhancement proposal roundup, managing Django’s queue, a course about NumPy techniques including practical examples, getting platform-specific directories, detecting which shell is in use, and a project for sorted container types.
This episode is sponsored by Postman.
Course Spotlight: NumPy Techniques and Practical Examples
In this video course, you’ll learn how to use NumPy by exploring several interesting examples. You’ll read data from a file into an array and analyze structured arrays to perform a reconciliation. You’ll also learn how to quickly chart an analysis and turn a custom function into a vectorized function.
Topics:
00:00:00 – Introduction 00:02:42 – Python Release 3.14.0a5 00:02:54 – PyPy v7.3.18 Released 00:03:32 – Beautifulsoup 4.13 Released 00:04:13 – PEP 759: External Wheel Hosting (Withdrawn) 00:04:54 – PEP 2026: Calendar Versioning for Python (Rejected) 00:06:48 – PEP 739: Static Description File for Build Details (Accepted) 00:07:51 – PEP 765: Disallow Return/Break/Continue That Exit a Finally Block (Accepted) 00:09:01 – Python Terminology: An Unofficial Glossary 00:19:32 – Sponsor: Postman 00:20:28 – NumPy Techniques and Practical Examples 00:24:12 – Let’s Compile Python 1.0 00:28:55 – Video Course Spotlight 00:30:14 – Managing Django’s Queue 00:36:41 – platformdirs: Get Platform-Specific Dirs 00:39:57 – shellingham: Tool to Detect Surrounding Shell 00:41:02 – python-sortedcontainers: Python Sorted Container Type 00:41:58 – Thanks and goodbyeNews:
Python Release 3.14.0a5 PyPy v7.3.18 Released Beautifulsoup 4.13 Released PEP 759: External Wheel Hosting (Withdrawn) PEP 2026: Calendar Versioning for Python (Rejected) PEP 739: Static Description File for Build Details (Accepted) PEP 765: Disallow Return/Break/Continue That Exit a Finally Block (Accepted)Topics:
Python Terminology: An Unofficial Glossary – “Definitions for colloquial Python terminology (effectively an unofficial version of the Python glossary).” NumPy Techniques and Practical Examples – In this video course, you’ll learn how to use NumPy by exploring several interesting examples. You’ll read data from a file into an array and analyze structured arrays to perform a reconciliation. You’ll also learn how to quickly chart an analysis and turn a custom function into a vectorized function. Let’s Compile Python 1.0 – As part of the celebration of 31 years of Python, Bite Code compiles the original Python 1.0 and plays around with it. Managing Django’s Queue – Carlton is one of the core developers of Django. This post talks about staying on top of the incoming pull-requests, bug fixes, and everything else in the development queue.Projects:
platformdirs: Get Platform-Specific Dirs, e.g. “User Data Dir” shellingham: Tool to Detect Surrounding Shell python-sortedcontainers: Python Sorted Container TypesAdditional Links:
Reference: Concise definitions for common Python terms – Real Python NumPy Practical Examples: Useful Techniques – Tutorial NumPy Practical Examples: Useful Techniques Quiz Python 1.0.0 is out! Podman OrbStack · Fast, light, simple Docker & LinuxLevel up your Python skills with our expert-led courses:
Data Cleaning With pandas and NumPy Building Command Line Interfaces With argparse NumPy Techniques and Practical ExamplesSupport the podcast & join our community of Pythonistas
Fri, 28 Feb 2025 - 241 - Telling Effective Stories With Your Python Visualizations
How do you make compelling visualizations that best convey the story of your data? What methods can you employ within popular Python tools to improve your plots and graphs? This week on the show, Matt Harrison returns to discuss his new book “Effective Visualization: Exploiting Matplotlib & Pandas.”
As a data scientist and instructor, Matt has been teaching the concepts of managing tabular data and making visualizations for over 20 years. Matt shares his methodology for taking a basic plot and then telling a compelling story with it. We discuss why you should limit your plot types to a few that your audience is familiar with.
We cover the resources built into pandas and Matplotlib and some of the libraries’ limitations. Matt talks about the professionally produced plots that inspired him and the process of recreating them. He also answers questions about finding data sources to practice these techniques with.
This episode is sponsored by Postman.
Course Spotlight: Using plt.scatter() to Visualize Data in Python
In this course, you’ll learn how to create scatter plots in Python, which are a key part of many data visualization applications. You’ll get an introduction to plt.scatter(), a versatile function in the Matplotlib module for creating scatter plots.
Topics:
00:00:00 – Introduction 00:02:57 – XGBoost book and interview 00:04:00 – Effective Visualization – Exploiting Matplotlib & pandas 00:04:27 – Why focus on pandas? 00:06:01 – Plotting inside of pandas 00:08:41 – How did you get involved in visualizations? 00:13:54 – Why write this book? 00:16:17 – Sponsor: Postman 00:17:09 – What are the plots you appreciate? 00:22:41 – Creating a methodology for plotting 00:24:24 – Color to spell out the story 00:27:50 – Limited and simple types of visualizations 00:31:34 – Explaining the story 00:37:19 – highlight-text library for matplotlib 00:39:02 – Video Course Spotlight 00:40:11 – Who is the audience? 00:43:19 – Why not include interactivity? 00:45:38 – Listing the references for the data 00:49:12 – Deciding on the examples and recipes 00:54:45 – Using existing visualizations as inspiration 00:55:41 – Matplotlib style sheets 00:57:54 – Finding sources of data to work with 01:04:17 – How to purchase the book 01:05:07 – What are you excited about in the world of Python? 01:06:33 – What do you want to learn next? 01:07:36 – How can people follow your work online? 01:08:04 – Thanks and goodbyeShow Links:
Effective Visualization – Exploiting Matplotlib & Pandas Matplotlib — Visualization with Python Episode #169: Improving Classification Models With XGBoost Episode #214: Build Captivating Display Tables in Python With Great Tables pandas documentation highlight-text · PyPI Style sheets — Matplotlib 3.10.0 documentation Kaggle: Your Machine Learning and Data Science Community nytimes/data-training: Files from the NYT data training program, available for public use. Astral: Next-gen Python tooling Episode #238: Charlie Marsh: Accelerating Python Tooling With Ruff and uv Polars — DataFrames for the new era CircuitPython Effective Visualization: Exploiting Matplotlib & Pandas - Amazon Matt Harrison (@dunder-matt.bsky.social) — BlueskyLevel up your Python skills with our expert-led courses:
Plot With pandas: Python Data Visualization Basics Using plt.scatter() to Visualize Data in Python Exploring Astrophysics in Python With pandas and MatplotlibSupport the podcast & join our community of Pythonistas
Fri, 21 Feb 2025 - 240 - Behavior-Driven vs Test-Driven Development & Using Regex in Python
What is behavior-driven development, and how does it work alongside test-driven development? How do you communicate requirements between teams in an organization? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
In this episode, we expand on our software testing discussion from two weeks ago by adding behavior-driven development concepts. Christopher describes how BDD correlates with test-driven development and how it fosters collaboration within a team. We discuss building acceptance tests written in plain language and a handy tool for creating them.
We also share several other articles and projects from the Python community, including a news roundup, using regular expressions in Python, dealing with missing data in Polars, monkey patching in Django, first steps with Playwright, 3D printing giant things with a Python jigsaw generator, and a query language for JSON.
This episode is sponsored by Postman.
Course Spotlight: Regular Expressions and Building Regexes in Python
In this course, you’ll learn how to perform more complex string pattern matching using regular expressions, or regexes, in Python. You’ll also explore more advanced regex tools and techniques that are available in Python.
Topics:
00:00:00 – Introduction 00:02:21 – PyOhio 2025 July 26-27, 2025 Announced 00:02:38 – Python 3.13.2 and 3.12.9 now available! 00:02:52 – Django bugfix releases issued: 5.1.6, 5.0.12, and 4.2.19 00:03:04 – DjangoCon Europe 2025 - Real Python Podcast 00:05:24 – How to Deal With Missing Data in Polars 00:10:29 – Monkey Patching Django 00:15:50 – Sponsor: Postman 00:16:42 – My First Steps With Playwright 00:20:48 – How to Use Regular Expressions in Python 00:25:55 – Video Course Spotlight 00:27:25 – TDD vs. BDD: What’s the Difference? 00:50:13 – 3D Printing Giant Things With a Python Jigsaw Generator 00:53:58 – jmespath.py: Query Language for JSON 00:55:58 – Thanks and goodbyeNews:
PyOhio 2025 July 26-27, 2025 Announced Python 3.13.2 and 3.12.9 now available! Django bugfix releases issued: 5.1.6, 5.0.12, and 4.2.19 DjangoCon Europe 2025: ScheduleTopics:
How to Deal With Missing Data in Polars – In this tutorial, you’ll learn how to deal with missing data in Polars to ensure it doesn’t interfere with your data analysis. You’ll discover how to check for missing values, update them, and remove them. Monkey Patching Django – The nanodjango project is a modification to the Django framework that lets you get started with a single file instead of the usual cookie-cutter directory structure. This is a detailed post explaining how nanodjango monkey patches Django to achieve this result. Fake Django Objects With Factory Boy – The My First Steps With Playwright – Playwright is a browser-based automation tool that can be used for web scraping or testing. This intro article shows you how to use the Python interface to access a page including using cookies. How to Use Regular Expressions in Python – This post explores the basics of regular expressions in Python, as well as more advanced techniques. It includes real-world use cases and performance optimization strategies.Discussion:
TDD vs. BDD: What’s the Difference? – Discover the key differences between TDD vs BDD, their workflows, tools, and best practices for developers. CucumberProjects:
3D Printing Giant Things With a Python Jigsaw Generator – This is a long, detailed article on 3D printing objects too large for the printer bed. The author has created dovetail joints to assemble pieces together. He wrote a Python program to automatically split up the larger model files into the jigsaw pieces needed to build a final result. jmespath.py: Query Language for JSONAdditional Links:
Polars — DataFrames for the new era nanodjango: Full Django in a single file - views, models, API ,with async support. Automatically convert it to a full project. factory_boy library is a tool for managing fixtures for your tests. This article shows you how to use it with Django. trimesh 4.6.2 documentation Email::RFC822::Address - Regex RecipeLevel up your Python skills with our expert-led courses:
Regular Expressions and Building Regexes in Python Test-Driven Development With pytest How to Set Up a Django ProjectSupport the podcast & join our community of Pythonistas
Fri, 14 Feb 2025 - 239 - Charlie Marsh: Accelerating Python Tooling With Ruff and uv
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 goodbyeShow Links:
Astral: Next-gen Python tooling Python tooling could be much, much faster Ruff, an extremely fast Python linter - Astral PEP 8 – Style Guide for Python Code FastHTML - Modern web applications in pure Python uv: An extremely fast Python package and project manager, written in Rust. Using Python’s pip to Manage Your Projects’ Dependencies – Tutorial Install and Execute Python Applications Using pipx – Tutorial Python Standalone Builds — python-build-standalone documentation Running scripts - uv Inline script metadata - Python Packaging User Guide marimo - a next-generation Python notebook Episode #230: marimo: Reactive Notebooks and Deployable Web Apps in Python “We’re building a new static type checker for Python, from scratch, in Rust.” Charlie Marsh (@charliermarsh) - X Charlie Marsh (@crmarsh.com) — BlueskyLevel up your Python skills with our expert-led courses:
Python Basics Exercises: Installing Packages With pip Python Basics: Installing Packages With pip Writing Beautiful Pythonic Code With PEP 8Support the podcast & join our community of Pythonistas
Fri, 07 Feb 2025 - 238 - Testing Your Python Code Base: Unit vs. Integration
What goes into creating automated tests for your Python code? Should you focus on testing the individual code sections or on how the entire system runs? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss a recent article from Semaphore about unit testing vs. integration testing. Christopher shares his experiences setting up automated tests for his own smaller projects. He also answers questions about building tests in an existing codebase and integrating tests across systems.
We also share several other articles and projects from the Python community, including a news roundup, improving default line charts to journal-quality infographics, why
hash(-1) == hash(-2)in Python, data cleaning in data science, ways to work with large files in Python, a lightweight CLI viewer for log files, and a tool for mocking thedatetimemodule for testing.This episode is sponsored by Postman.
Course Spotlight: Testing Your Code With pytest
In this video course, you’ll learn how to take your testing to the next level with pytest. You’ll cover intermediate and advanced pytest features such as fixtures, marks, parameters, and plugins. With pytest, you can make your test suites fast, effective, and less painful to maintain.
Topics:
00:00:00 – Introduction 00:02:28 – Python news and releases 00:04:02 – From Default Line Charts to Journal-Quality Infographics 00:07:25 – PyViz: Python Tools for Data Visualization 00:09:25 – Why Is hash(-1) == hash(-2) in Python? 00:12:40 – Sponsor: Postman 00:13:32 – Data Cleaning in Data Science 00:19:29 – 10 Ways to Work With Large Files in Python 00:23:40 – Unit Testing vs. Integration Testing 00:29:17 – Does university curriculum cover this? 00:31:22 – Building tests into smaller projects 00:36:04 – Video Course Spotlight 00:37:30 – How does the approach differ with clients or larger-scale projects? 00:40:45 – How do tests act as documentation? 00:42:02 – Difficulties in building integration tests 00:45:24 – How do you limit the results of tests? 00:47:52 – klp: Lightweight CLI Viewer for Log Files 00:50:54 – freezegun: Mocks the datetime Module for Testing 00:53:11 – Thanks and goodbyeNews:
Python 3.14.0 Alpha 4 Released Django 5.2 Alpha 1 Released Django Security Releases Issued: 5.1.5, 5.0.11, and 4.2.18 SciPy 1.15.0 Released Pygments 2.19 Released PyConf Hyderabad Feb 22-23Topics:
From Default Line Charts to Journal-Quality Infographics – “Everyone who has used Matplotlib knows how ugly the default charts look like.” In this series of posts, Vladimir shares some tricks to make your visualizations stand out and reflect your individual style. PyViz: Python Tools for Data Visualization – This site contains an overview of all the different visualization libraries in the Python ecosystem. If you’re trying to pick a tool, this is a great place to better understand the pros and cons of each. Why Ishash(-1) == hash(-2)in Python? – Somewhat surprisingly,hash(-1) == hash(-2)in CPython. This post examines how and discovers why this is the case. Data Cleaning in Data Science – “Real-world data needs cleaning before it can give us useful insights. Learn how you can perform data cleaning in data science on your dataset.” 10 Ways to Work With Large Files in Python – “Handling large text files in Python can feel overwhelming. When files grow into gigabytes, attempting to load them into memory all at once can crash your program.” This article covers different ways of dealing with this challenge.Discussion:
Unit Testing vs. Integration Testing – Discover the key differences between unit testing vs. integration testing and learn how to automate both with Python.Project:
klp: Lightweight CLI Viewer for Log Files freezegun: Mocks thedatetimeModule for TestingAdditional Links:
Matplotlib style sheets - Python Charts The Magic of Matplotlib Stylesheets Where To Get Data for Your Data Science Projects - The PyCharm Blog Data Exploration With pandas - The PyCharm Blog Python mmap: Improved File I/O With Memory Mapping - Tutorial Python mmap: Doing File I/O With Memory Mapping – Video Course pandera documentationLevel up your Python skills with our expert-led courses:
Python mmap: Doing File I/O With Memory Mapping Testing Your Code With pytest Python Plotting With MatplotlibSupport the podcast & join our community of Pythonistas
Fri, 31 Jan 2025 - 237 - Simon Willison: Using LLMs for Python Development
What are the current large language model (LLM) tools you can use to develop Python? What prompting techniques and strategies produce better results? This week on the show, we speak with Simon Willison about his LLM research and his exploration of writing Python code with these rapidly evolving tools.
Simon has been researching LLMs over the past two and a half years and documenting the results on his blog. He shares which models work best for writing Python versus JavaScript and compares coding tools and environments.
We discuss prompt engineering techniques and the first steps to take. Simon shares his enthusiasm for the usefulness of LLMs but cautions about the potential pitfalls.
Simon also shares how he got involved in open-source development and Django. He’s a proponent of starting a blog and shares how it opened doors for his career.
This episode is sponsored by Postman.
Course Spotlight: Advanced Python import Techniques
The Python import system is as powerful as it is useful. In this in-depth video course, you’ll learn how to harness this power to improve the structure and maintainability of your code.
Topics:
00:00:00 – Introduction 00:02:38 – How did you get involved in open source? 00:04:04 – Writing an XML-RPC library 00:04:40 – Working on Django in Lawrence, Kansas 00:05:31 – Started building open-source collection 00:06:52 – shot-scraper: taking automated screenshots of websites 00:08:09 – First experiences with LLMs 00:10:08 – 22 years of simonwillison.net 00:18:22 – Navigating the hype and criticism of LLMs 00:22:14 – Where to start with Python code and LLMs? 00:26:22 – Sponsor: Postman 00:27:13 – ChatGPT Canvas vs Code Interpreter 00:28:23 – Asking nicely, tricking the system, and tipping? 00:30:35 – More Code Interpreter and building a C extension 00:32:05 – More details on Canvas 00:36:55 – What is a workflow for developing using LLMs? 00:39:43 – Creating pieces of code vs a system 00:42:00 – Workout program for prompting and pitfalls 00:53:54 – Video Course Spotlight 00:55:14 – Why an SVG of a pelican riding a bicycle? 00:57:48 – Repeating a query and refining 01:03:00 – Working in an IDE or text editor 01:05:45 – David Crawshaw on writing code with LLMs 01:08:33 – Running an LLM locally to write code 01:14:02 – Staying out of the AGI conversation 01:16:07 – What are you excited about in the world of Python? 01:18:34 – What do you want to learn next? 01:19:53 – How can people follow your work online? 01:20:51 – Thanks and goodbyeShow Links:
Simon Willison’s Weblog shot-scraper Matt’s Script Archive, Inc. - Free Perl CGI Scripts XR - my XML-RPC library, now in WordPress - GitHub Adrian Holovaty advertises for someone to join him working in Lawrence (May 2003) - Holovaty.com Datasette: An open source multi-tool for exploring and publishing data My SQLite tag page - Simon Willison Chatbot Arena: Free AI Chat to Compare & Test Best AI Chatbots DeepSeek v3 notes on Christmas day DeepSeek_V3 - PDF Simon Willison on code-interpreter Gemini - Google DeepMind Claude ChatGPT Canvas can make API requests now, but it’s complicated Welcome to Click — Click Documentation My first experience with Llama in March 2023 I can now run a GPT-4 class model on my laptop Using LLMs and Cursor to become a finisher GitHub Copilot - Your AI pair programmer In Finland, classes in recognizing fake news, disinformation - Sunday Morning CBS 404Media Podcast: Why We Cover AI the Way We Do Jason Koebler from 404Media - tags on simonwillison.net Building Python tools with a one-shot prompt using uv run and Claude Projects How I program with LLMs - crawshaw - 2025-01-06 pelican-riding-a-bicycle - tags on simonwillison.net Things we learned about LLMs in 2024 Pyodide Simon Willison on pyodide astral-sh/uv: An extremely fast Python package and project manager Simon Willison on uv Simon Willison’s Newsletter - Substack Semi-automating a Substack newsletter with an Observable notebook Simon Willison (@simonwillison.net) — Bluesky Simon Willison (@simon@simonwillison.net) - Mastodon Simon Willison (@simonw) - XLevel up your Python skills with our expert-led courses:
Building HTTP APIs With Django REST Framework Advanced Python import Techniques Absolute vs Relative Imports in PythonSupport the podcast & join our community of Pythonistas
Fri, 24 Jan 2025 - 236 - Principles for Considering Your Python Tooling
What are the principles you should consider when making decisions about which Python tools to use? What anti-patterns get in the way of making the right choices for your team? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss a recent article about effective Python developer tooling. Instead of digging into a list of current libraries, we talk about the principles you must consider before making decisions for your team. We cover common pitfalls teams get mired in and how to avoid them.
We also share several other articles and projects from the Python community, including a news roundup, a huge collection of the top Python libraries of 2024, programming sockets in Python, merging dictionaries, a Django quiz, mistakes to avoid in production, building a Portal sentry turret, a powerful TUI expense tracker, and a pure-Python async rendering engine.
Course Spotlight: Managing Dependencies With Python Poetry
Learn how Python Poetry can help you start new projects, maintain existing ones, and master dependency management.
Topics:
00:00:00 – Introduction 00:01:53 – DjangoCon US 2025 (Chicago, Sept 8-12) Announced 00:02:38 – Textualize 1.0 Released 00:03:15 – Top Python Libraries of 2024 00:07:07 – Programming Sockets in Python 00:11:56 – Merging Dictionaries in Python 00:17:03 – Django Quiz 2024 00:17:55 – Confessions of a Django Dev: Mistakes To Avoid in Production 00:18:40 – Sentry Turret Straight Out of the ‘Portal’ Franchise 00:20:00 – Video Course Spotlight 00:21:26 – Effective Python Developer Tooling in December 2024 00:41:13 – Bagels: Powerful TUI Expense Tracker 00:43:42 – htmy: Async, Pure-Python Rendering Engine 00:45:41 – Thanks and goodbyeNews:
DjangoCon US 2025 (Chicago, Sept 8-12) Announced Textualize 1.0 ReleasedShow Links:
Top Python Libraries of 2024 – For the past ten years, Tyrolabs has put together a list of their favorite Python libraries of the year. This list includes ten general purpose libraries and ten more specific to AI/ML and Data. Programming Sockets in Python – In this in-depth video course, you’ll learn how to build a socket server and client with Python. By the end, you’ll understand how to use the main functions and methods in Python’s socket module to write your own networked client-server applications. Merging Dictionaries in Python – There are multiple ways of merging two or more dictionaries in Python. This post teaches you how to do it and how to deal with corner cases like duplicate keys. Django Quiz 2024 – Adam runs a quiz on Django at his Django London meetup. He’s shared it so you can try it yourself. Test how much you know about your favorite web framework. Confessions of a Django Dev: Mistakes To Avoid in Production – This post covers some of the common mistakes you might make when taking a Django project into production. Sentry Turret Straight Out of the ‘Portal’ Franchise – “Reckless_commenter has created a Raspberry Pi-powered sentry turret that looks and sounds just like the creepy machines found in the ‘Portal’ franchise.” Logic and sound effects managed through the PyGame library.Discussion:
Effective Python Developer Tooling in December 2024 – This post talks about how tooling doesn’t solve all your problems when you code, especially with a team. It outlines some principles to implement, and bad practices to avoid when writing Python. Mistakes engineers make in large established codebases - Sean GoedeckeProjects:
Bagels: Powerful TUI Expense Tracker htmy: Async, Pure-Python Rendering EngineAdditional Links:
Episode #97: Improving Your Django and Python Developer Experience Deployment checklist - Django documentation Portal (video game) - Wikipedia PyCoder’s Weekly - Have a Project You Want to Share? - Submit a LinkLevel up your Python skills with our expert-led courses:
How to Set Up a Django Project Managing Dependencies With Python Poetry Exploring Scopes and Closures in PythonSupport the podcast & join our community of Pythonistas
Fri, 17 Jan 2025 - 235 - Building New Structures for Learning Python
What are the new ways we can teach and share our knowledge about Python? How can we improve the structure of our current offerings and build new educational resources for our audience of Python learners? This week on the show, Real Python core team members Stephen Gruppetta and Martin Breuss join us to discuss enhancements to the site and new ways to learn Python.
Stephen has recently joined the team, bringing years of online training expertise. He discusses our new offering of cohort-based courses, which combine live expert instruction, hands-on exercises, and a supportive community.
Martin has been busy leading the effort to create quizzes for our written tutorials to test your knowledge and Python skills. He’s also restructuring the learning paths to provide a more consistent way to navigate your journey learning Python.
Stephen is currently working on new Real Python books. These books will be collections of our tutorials based on specific Python topics and edited to provide a more structured learning experience. The first book, which covers object-oriented programming in Python, will be available in the next few months.
This episode is sponsored by Sentry.
Course Spotlight: Handling or Preventing Errors in Python: LBYL vs EAFP
In this video course, you’ll explore two popular coding styles in Python: Look Before You Leap (LBYL) and Easier to Ask Forgiveness than Permission (EAFP). These approaches help you handle errors and exceptional situations in your code effectively. You’ll dive into the key differences between LBYL and EAFP and learn when to use each one.
Topics:
00:00:00 – Introduction 00:02:29 – What Stephen has been up to 00:03:31 – What’s new for Martin 00:04:07 – Bringing on new team members 00:06:09 – Cohort-based courses 00:19:25 – Sponsor: Sentry 00:20:27 – Restructured and new learning paths 00:30:50 – Video Course Spotlight 00:32:19 – New Real Python Books 00:38:57 – A destination for learning 00:40:46 – Quizzes for tutorials and courses 00:44:58 – Video courses and updating content 00:47:52 – Code Mentor 00:49:45 – Code challenges 00:51:06 – Thanks and goodbyeShow Links:
Cohort Course - Intermediate Python Deep Dive Python Learning Paths Python Books by Real Python Python Quizzes Join the Real Python Community Chat Code Mentor: Intelligent Learning Tools Office Hours – Real Python Debugging Python with VS Code and Sentry - Product Blog - Sentry About Martin Breuss – Real Python About Stephen Gruppetta – Real PythonLevel up your Python skills with our expert-led courses:
Handling or Preventing Errors in Python: LBYL vs EAFP Using raise for Effective Exceptions Python Basics Exercises: ScopesSupport the podcast & join our community of Pythonistas
Fri, 10 Jan 2025 - 234 - PyCoder's Weekly 2024 Top Articles & Missing Gems
PyCoder’s Weekly included over 1,500 links to articles, blog posts, tutorials, and projects in 2024. Christopher Trudeau is back on the show this week to help wrap it all up by sharing some highlights and uncovering a few missing gems from the pile.
We share the top links that PyCoder’s readers explored this year and uncover trends across all the articles and stories. We also highlight a few gems that we didn’t cover on the show and a couple that explore the overall themes of the year.
We hope you enjoy this review! We look forward to bringing you another year filled with great Python news, articles, topics, and projects.
Course Spotlight: Programming Sockets in Python
In this in-depth video course, you’ll learn how to build a socket server and client with Python. By the end, you’ll understand how to use the main functions and methods in Python’s socket module to write your own networked client-server applications.
Topics:
00:00:00 – Introduction 00:01:47 – New releases and updates 00:03:07 – PyCon US 2025 Registration Open 00:03:18 – PyCon Austria 2025 Call for Papers 00:03:36 – PSF Year End Fundraiser - Membership Drive 00:04:31 – Mr. Trudeau on Flying High with Flutter 00:05:29 – We’re on Bluesky - follow us! 00:07:44 – Build Captivating Display Tables in Python With Great Tables 00:08:45 – Overview of the Moduleitertools00:09:23 – Customize VS Code Settings 00:10:34 – Modern Good Practices for Python Development 00:11:55 – Asyncio Event Loop in Separate Thread 00:12:38 – Python Protocols: Leveraging Structural Subtyping 00:13:06 – Thoughts on the top links 00:22:29 – Video Course Spotlight 00:23:40 – Why I’m Switching From pandas to Polars 00:29:29 – Lessons Learned Reinventing the Python Notebook 00:32:47 – What’s a Python Hashable Object? 00:36:10 – uv: Python Packaging in Rust 00:38:26 – CI/CD for Python With GitHub Actions 00:40:07 – Thanks and goodbyeNews:
NumPy Release 2.2.0 Django Security Releases Issued: 5.1.4, 5.0.10, and 4.2.17 Python 3.13.1, 3.12.8, 3.11.11, 3.10.16, and 3.9.21 Released Python Insider: Python 3.14.0 alpha 3 is out PyCon US 2025 (Pittsburgh, PA) Registration Open PyCon Austria 2025 (Eisenstadt) Call for Papers PSF Year End Fundraiser - Membership DriveTop PyCoders Links 2024:
Build Captivating Display Tables in Python With Great Tables – Do you need help making data tables in Python look interesting and attractive? How can you create beautiful display-ready tables as easily as charts and graphs in Python? This week on the show, we speak with Richard Iannone and Michael Chow from Posit about the Great Tables Python library. Overview of the Moduleitertools– This article proposes the top three iterators that are most useful from the moduleitertools, classifies all of the 19 iterators into five categories, and then provides brief usage examples for all the iterators in the moduleitertools. Customize VS Code Settings – In this course, Philipp helps you customize your Visual Studio Code settings to switch from a basic cluttered look to a clean presentable look. This is not just pleasant on the eyes, but also gives you a nice user interface if you want to share on a Zoom call or screen recording. Modern Good Practices for Python Development – This is a very detailed list of best practices for developing in Python. It includes tools, language features, application design, which libraries to use and more. Asyncio Event Loop in Separate Thread – Typically, the asyncio event loop runs in the main thread, but as that is the one used by the interpreter, sometimes you want the event loop to run in a separate thread. This article talks about why and how to do just that. Python Protocols: Leveraging Structural Subtyping – In this tutorial, you’ll learn about Python’s protocols and how they can help you get the most out of using Python’s type hint system and static type checkers.Featured Links:
Why I’m Switching From pandas to Polars – Ari is switching from pandas to Polars and surprisingly (even to himself) it isn’t because of the better performance. Read on for the reasons why. Lessons Learned Reinventing the Python Notebook – Marimo is an open source alternative to Jupyter notebooks. This article is by one of marimo’s creators, talking about the design decisions made when creating it. What’s a Python Hashable Object? – You can ignore reading about hashable objects for quite a bit. But eventually, it’s worth having an idea of what they are. This post follows Winston on his first day at work to understand hashable objectsuv: Python Packaging in Rust – uv is an extremely fast Python package installer and resolver, designed as a drop-in alternative to pip and pip-tools. This post introduces you to uv and shows some of its performance numbers. Associated HN discussion. CI/CD for Python With GitHub Actions – With most software following agile methodologies, it’s essential to have robust DevOps systems in place to manage, maintain, and automate common tasks with a continually changing codebase. By using GitHub Actions, you can automate your workflows efficiently, especially for Python projects.Additional Links:
Flying High with Flutter The State of Python 2024 – This is a guest post on the PyCharm blog by Talk Python host Michael Kennedy who talks about the current state of Python in 2024. Topics include language usage, web frameworks,uv, and more. Django 2024 Year in Review – Carlton is a core contributor to Django and this post talks about what happened in 2024 with your favorite web framework. Episode #193: Wes McKinney on Improving the Data Stack & Composable Systems Episode #224: Narwhals: Expanding DataFrame Compatibility Between Libraries Episode #230: marimo: Reactive Notebooks and Deployable Web Apps in Python Episode #203: Embarking on a Relaxed and Friendly Python Coding Journey Ruff: A Modern Python Linter for Error-Free and Maintainable Code Rodrigo 🐍🚀: Python folks, here’s an update on all the Python starter packs — Bluesky Christopher Bailey (@digiglean.bsky.social) — Bluesky Christopher Trudeau (@cltrudeau.bsky.social) — Bluesky Stephen Gruppetta (@stephengruppetta.com) — BlueskyLevel up your Python skills with our expert-led courses:
Building HTTP APIs With Django REST Framework HTML and CSS Foundations for Python Developers Programming Sockets in PythonSupport the podcast & join our community of Pythonistas
Fri, 03 Jan 2025 - 233 - Exploring Modern Sentiment Analysis Approaches in Python
What are the current approaches for analyzing emotions within a piece of text? Which tools and Python packages should you use for sentiment analysis? This week, Jodie Burchell, developer advocate for data science at JetBrains, returns to the show to discuss modern sentiment analysis in Python.
Jodie holds a PhD in clinical psychology. We discuss how her interest in studying emotions has continued throughout her career.
In this episode, Jodie covers three ways to approach sentiment analysis. We start by discussing traditional lexicon-based and machine-learning approaches. Then, we dive into how specific types of LLMs can be used for the task. We also share multiple resources so you can continue to explore sentiment analysis on your own.
This week’s episode is brought to you by Sentry.
Course Spotlight: Learn Text Classification With Python and Keras
In this course, you’ll learn about Python text classification with Keras, working your way from a bag-of-words model with logistic regression to more advanced methods, such as convolutional neural networks. You’ll see how you can use pretrained word embeddings, and you’ll squeeze more performance out of your model through hyperparameter optimization.
Topics:
00:00:00 – Introduction 00:02:31 – Conference talks in 2024 00:04:23 – Background on sentiment analysis and studying feelings 00:07:09 – What led you to study emotions? 00:08:57 – Dimensional emotion classification 00:10:42 – Different types of sentiment analysis 00:14:28 – Lexicon-based approaches 00:17:50 – VADER - Valence Aware Dictionary and sEntiment Reasoner 00:19:41 – TextBlob and subjectivity scoring 00:21:48 – Sponsor: Sentry 00:22:52 – Measuring sentiment of New Year’s resolutions 00:27:28 – Lexicon-based approaches links for experimenting 00:28:35 – Multiple language support in lexicon-based packages 00:35:23 – Machine learning techniques 00:39:20 – Tools for this approach 00:42:54 – Video Course Spotlight 00:44:15 – Advantages to the machine learning models approach 00:45:55 – Large language model approach 00:48:44 – Encoder vs decoder models 00:52:09 – Comparing the concept of fine-tuning 00:56:49 – Is this a recent development? 00:58:08 – Ways to practice with these techniques 01:00:10 – Do you find this to be a promising approach? 01:07:45 – Resources to practice with all the techniques 01:11:06 – Upcoming conference talks 01:11:56 – Thanks and goodbyeShow Links:
Introduction to Sentiment Analysis in Python - The PyCharm Blog How to Do Sentiment Analysis With Large Language Models - The PyCharm Blog Talks - Jodie Burchell: Lies, damned lies and large language models - YouTube Mirror, mirror: LLMs and the illusion of humanity - Jodie Burchell - YouTube Separating fact from fiction in a world of AI fairytales - Jodie Burchell - NDC London 2024 - YouTube Hurt Feelings (Rap Version) - Flight Of The Conchords (Lyrics) - YouTube Universal Emotions - What are Emotions? - Paul Ekman Group VADER - nltk.sentiment.vader module clips/pattern: Web mining module for Python, with tools for scraping, natural language processing, machine learning TextBlob: Simplified Text Processing — TextBlob documentation Power vs. Force: The Hidden Determinants of Human Behavior by David R. Hawkins - Goodreads Episode #36: Sentiment Analysis, Fourier Transforms, and More Python Data Science – The Real Python Podcast Use Sentiment Analysis With Python to Classify Movie Reviews – Real Python Sentiment Analysis: First Steps With Python’s NLTK Library – Real Python Sentiment Analysis in DataSpell with @JetBrainsTV - YouTube Episode #119: Natural Language Processing and How ML Models Understand Text – The Real Python Podcast spaCy - Industrial-strength Natural Language Processing in Python amazon_polarity - Datasets at Hugging Face Introduction to Sentiment Analysis in Python - The PyCharm Blog Kaggle: Your Machine Learning and Data Science Community ZS BIT AI Community Day - 10 December 2024 Jodie Burchell - The JetBrains Blog Jodie Burchell’s Blog - Standard error Jodie Burchell 🇦🇺🇩🇪 (@t_redactyl) - Twitter Jodie Burchell (@t-redactyl.bsky.social) — Bluesky Jodie Burchell 🇦🇺🇩🇪 (@t_redactyl@fosstodon.org) - Fosstodon JetBrains: Essential tools for software developers and teamsLevel up your Python skills with our expert-led courses:
Data Cleaning With pandas and NumPy Learn Text Classification With Python and Keras Exploring Astrophysics in Python With pandas and MatplotlibSupport the podcast & join our community of Pythonistas
Fri, 20 Dec 2024 - 232 - Good Python Programming Practices When New to the Language
What advice would you give to someone moving from another language to Python? What good programming practices are inherent to the language? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss an older forum post from a new Python user who came from Perl. We suggest checking out PEP 8, or as it’s commonly known, “The Style Guide for Python Code.” We provide advice about installing Python, avoiding common pitfalls, learning how scope is managed, and taking advantage of a collection of Real Python resources.
We share several other articles and projects from the Python community, including a new Python release, practical NumPy examples and exercises, considering targets of for loops, exploring Python dependency management, checking package compatibility with free-threading and subinterpreters, an experimental filesystem navigator in Textual, and a background workers reference implementation in Django.
This episode is sponsored by AssemblyAI.
Course Spotlight: Writing Beautiful Pythonic Code With PEP 8
Learn how to write high-quality, readable code by using the Python style guidelines laid out in PEP 8. Following these guidelines helps you make a great impression when sharing your work with potential employers and collaborators. This course outlines the key guidelines laid out in PEP 8. It’s aimed at beginner to intermediate programmers.
Topics:
00:00:00 – Introduction 00:02:17 – Python 3.14.0 Alpha 2 Released 00:02:35 – Take the 2024 Django Developers Survey 00:03:17 – NumPy Practical Examples: Useful Techniques 00:07:09 – Loop Targets 00:09:19 – Python Dependency Management Is a Dumpster Fire 00:23:15 – Sponsor: AssemblyAI 00:24:00 – Package Compatibility With Free-Threading and Subinterpreters 00:27:02 – Suggestions for good programming practices? 00:37:59 – Video Course Spotlight 00:39:24 – terminal-tree: Experimental Filesystem Navigator in Textual 00:43:56 – django-tasks: Background Workers Reference Implementation 00:49:44 – Thanks and goodbyeNews:
Python 3.14.0 Alpha 2 Released Take the 2024 Django Developers SurveyTopics:
NumPy Practical Examples: Useful Techniques – In this tutorial, you’ll learn how to use NumPy by exploring several interesting examples. You’ll read data from a file into an array and analyze structured arrays to perform a reconciliation. You’ll also learn how to quickly chart an analysis and turn a custom function into a vectorized function. Loop Targets – Loop assignment allows you to assign to a dict item in aforloop. This post covers what that means and that it is no more costly than regular assignment. Python Dependency Management Is a Dumpster Fire – Managing dependencies in Python can be a bit of a challenge. This deep dive article shows you all the problems and how the problems are mitigated if not solved. Package Compatibility With Free-Threading and Subinterpreters – This tracker tests the compatibility of the 500 most popular packages with Python 3.13’s free-threading and subinterpreter features.Discussion:
Suggestions for good programming practices? Python Best Practices – Real Python PEP 8 – Style Guide for Python CodeProjects:
terminal-tree: Experimental Filesystem Navigator in Textual django-tasks: Background Workers Reference ImplementationAdditional Links:
Episode #146: Using NumPy and Linear Algebra for Faster Python Code – The Real Python Podcast How to Write Beautiful Python Code With PEP 8 – Real Python Writing Idiomatic Python – Real Python Namespaces and Scope in Python – Real Python How to Install Python on Your System: A Guide – Real Python Python Virtual Environments: A Primer – Real Python Sourcery - Instant Code Review for Faster Velocity Episode #183: Exploring Code Reviews in Python and Automating the Process Textual uv - An extremely fast Python package and project manager, written in Rust. DEP 0014: Background workers - GitHub PyCoder’s Weekly - Have a Project You Want to Share? - Submit a LinkLevel up your Python skills with our expert-led courses:
Navigating Namespaces and Scope in Python Writing Idiomatic Python Writing Beautiful Pythonic Code With PEP 8Support the podcast & join our community of Pythonistas
Fri, 06 Dec 2024 - 231 - marimo: Reactive Notebooks and Deployable Web Apps in Python
What are common issues with using notebooks for Python development? How do you know the current state, share reproducible results, or create interactive applications? This week on the show, we speak with Akshay Agrawal about the open-source reactive marimo notebook for Python.
Before writing any code, Akshay wrote a 2,500-word design document. He wanted to create a maintainable and reproducible tool that avoided the hidden state of traditional notebooks. We discuss solving the hidden state problem by building the notebook as a directed acyclic graph (DAG).
Akshay shares how marimo notebooks are stored as pure Python files, which makes them easy to read, importable, and git-friendly. We discuss serializing package requirements using PEP 723 inline metadata to create standalone reproducible notebooks. We also cover how marimo notebooks can be deployed as a web app or dashboard using Pyodide.
Course Spotlight: Navigating Namespaces and Scope in Python
In this course, you’ll learn about Python namespaces, the structures used to store and organize the symbolic names created during execution of a Python program. You’ll learn when namespaces are created, how they are implemented, and how they define variable scope.
Topics:
00:00:00 – Introduction 00:02:06 – Akshay’s background and studies 00:04:14 – Work at Google and PhD program 00:06:29 – Sharing notebooks 00:08:18 – Starting work on marimo 2 years ago 00:12:48 – Avoiding notebook issues and building a DAG 00:18:39 – The difference of reactivity 00:20:39 – What is a marimo notebook? 00:23:39 – Video Course Spotlight 00:24:50 – Reproducibility and managing package requirements 00:27:49 – Using decorators for cells 00:30:23 – Writing a design document before any coding 00:34:08 – Interactivity and UI widgets 00:38:20 – Design decisions and built-in widgets 00:42:05 – Creating a deployable web application 00:44:34 – Exploring examples and tutorials 00:46:13 – Supporting DataFrame libraries with narwhals 00:48:00 – Migrating from a Jupyter notebook 00:52:02 – Working with cells and not running code 00:54:30 – A couple favorite tutorials 00:56:17 – What are you excited about in the world of Python? 00:57:39 – What do you want to learn next? 00:59:34 – How can people follow the project and yourself? 01:00:12 – Thanks and goodbyeShow Links:
marimo - a next-generation Python notebook marimo: an open-source reactive notebook for Python - Akshay Agrawal (Nbpy2024) - YouTube TensorFlow Made with marimo - marimo FAQ - marimo Pluto.jl — interactive Julia programming environment Observable: Build expressive charts and dashboards with code We Downloaded 10,000,000 Jupyter Notebooks From Github – This Is What We Learned - The Datalore Blog A Large-scale Study about Quality and Reproducibility of Jupyter Notebooks Lessons learned reinventing the Python notebook - marimo Episode #226: PySheets: Spreadsheets in the Browser Using PyScript PEP 723 – Inline script metadata Inline script metadata - Python Packaging User Guide Serializing package requirements in marimo notebooks - marimo uv: Unified Python packaging marimo Newsletter 7 - Jupyter to marimo Custom UI elements - marimo anywidget - anywidget Interactive elements - marimo Episode #224: Narwhals: Expanding DataFrame Compatibility Between Libraries Calmcode - marimo: Introduction Join the marimo Discord marimo newsletter marimo on Twitter marimo on LinkedIn Akshay Agrawal’s website Aksahy on TwitterLevel up your Python skills with our expert-led courses:
Navigating Namespaces and Scope in Python Python Decorators 101 Using Jupyter NotebooksSupport the podcast & join our community of Pythonistas
Fri, 29 Nov 2024 - 230 - The Joy of Tinkering & Python Free-Threading Performance
What keeps your spark alive for developing software and learning Python? Do you like to try new frameworks, build toy projects, or collaborate with other developers? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss the joy of tinkering with Python as a way to keep your developer skills sharp. We dig into our techniques for continuing to learn and build projects.
Christopher shares an article that examines the performance of Python 3.13’s free-threading features. This piece uses a clever example to measure how the new features behave with large datasets and parallelization.
We share several other articles and projects from the Python community, including a group of new releases, common use cases and examples for Python closures, finding the opposite of cloud-native, Python’s soft keywords, a command-line utility for taking automated screenshots of websites, and putting the Django admin in the terminal with Textual.
This episode is sponsored by Windsurf.
Course Spotlight: Python Inner Functions
In this step-by-step course, you’ll learn what inner functions are in Python, how to define them, and what their main use cases are. You’ll see how to write helper functions, create closure factory functions, and how to add behavior to existing functions with decorators.
Topics:
00:00:00 – Introduction 00:02:18 – Django Bugfix Release Issued: 5.1.3 00:02:46 – Pillow Release 11.0.0 00:03:14 – Flask Version 3.1.0 00:03:30 – PyCon US 2025 (Pittsburgh) Call for Proposals 00:03:46 – Python Closures: Common Use Cases and Examples 00:09:20 – State of Python 3.13 Performance: Free-Threading 00:15:42 – Sponsor: Windsurf 00:16:32 – Opposite of Cloud Native Is…? 00:22:36 – Python’s Soft Keywords 00:24:50 – Video Course Spotlight 00:26:11 – The Joy of Tinkering 00:38:33 – shot-scraper: A command-line utility for taking automated screenshots of websites 00:41:13 – django-admin-tui: Django Admin in the Terminal! 00:42:37 – django-admin-dracula: Dracula Themes for the Django Admin 00:44:21 – Thanks and goodbyeNews:
Django Bugfix Release Issued: 5.1.3 Pillow Release 11.0.0 Flask Version 3.1.0 PyCon US 2025 (Pittsburgh) Call for ProposalsShow Links:
Python Closures: Common Use Cases and Examples – In this tutorial, you’ll learn about Python closures. A closure is a function-like object with an extended scope. You can use closures to create decorators, factory functions, stateful functions, and more. State of Python 3.13 Performance: Free-Threading – This article does a comparison between code in single threaded, threaded, and multi-process versions under Python 3.12, 3.13, and 3.13 free-threaded with the GIL on and off. Opposite of Cloud Native Is…? – Michael (from Talk Python fame) introduces the concept of “stack-native” as the opposite of “cloud-native”, and how it applies to Python web apps. Building applications with just enough full-stack building blocks to run reliably with minimal complexity, rather than relying on a multitude of cloud services. Python’s soft keywords – Python includes soft keywords: tokens that are important to the parser but can also be used as variable names. This article shows you what a soft keyword is and how to find them in Python 3.12 (both the easy and hard way).Discussion:
Habits of Great Software Engineers - The Joy of TinkeringProjects:
shot-scraper: A command-line utility for taking automated screenshots of websites django-admin-tui: Django admin in the terminal! django-admin-dracula: 🦇 Dracula themes for the Django adminAdditional Projects:
Primer on Python Decorators – Real Python We’ve moved to Hetzner - Talk Python Blog Talk Python rewritten in Quart (async Flask) - Talk Python Blog PyCoder’s Weekly - Have a Project You Want to Share? - Submit a LinkLevel up your Python skills with our expert-led courses:
Python Decorators 101 Python Inner Functions Defining and Calling Python FunctionsSupport the podcast & join our community of Pythonistas
Fri, 22 Nov 2024 - 229 - Maintaining the Foundations of Python & Cautionary Tales
How do you build a sustainable open-source project and community? What lessons can be learned from Python’s history and the current mess that the WordPress community is going through? This week on the show, we speak with Paul Everitt from JetBrains about navigating open-source funding and the start of the Python Software Foundation.
Paul has been an organizer in the Python community almost from the beginning. He shares how the project has navigated through multiple sponsors. We talk about the early governance models and the formation of the Python Software Foundation.
We contrast this journey with the current drama unfolding in the WordPress community. We discuss the potential problems of having a benevolent dictator for life. We also dig into sponsorship models and ways to get companies to give back to the open-source projects they rely on.
This episode is sponsored by Sentry.
Course Spotlight: Using pandas to Make a Gradebook in Python
With this course and Python project, you’ll build a script to calculate grades for a class using pandas. The script will quickly and accurately calculate grades from a variety of data sources. You’ll see examples of loading, merging, and saving data with pandas, as well as plotting some summary statistics.
Topics:
00:00:00 – Introduction 00:01:55 – Meeting Jodie Burchell at PyCon 2022 00:02:51 – A non-traditional path into open-source 00:07:09 – The current turmoil around WordPress 00:13:49 – Keeping things fair in the age of extraction 00:16:03 – Sponsor: Sentry 00:17:07 – Early Python organizing history and conservation 00:20:41 – The Python Software Activity precursor to PSF 00:24:14 – Creating the Python Software Foundation 00:27:24 – Keeping the perfect distance of business and project 00:28:13 – Who gets to capture the value from open-source? 00:31:07 – Sponsorships becoming more common 00:33:24 – BDFL to a steering council 00:34:58 – Video Course Spotlight 00:36:16 – What is Plone? 00:38:11 – Starting in Python and finding community 00:50:07 – Companies contributing 00:53:16 – Examples of how JetBrains contributes back 00:55:41 – Understanding the support system 00:58:09 – Talking to decision makers 01:00:07 – Python 1994 talk and continuation 01:01:49 – What are you excited about in the world of Python? 01:03:06 – What do you want to learn next? 01:04:17 – How can people follow your work online? 01:07:16 – Thanks and goodbyeShow Links:
JetBrains: Essential tools for software developers and teams PyCharm: the Python IDE for data science and web development PyCon - Join us at PyCon Benevolent dictator for life - Wikipedia The messy WordPress drama, explained - The Verge WordPress.org’s latest move involves taking control of a WP Engine plugin - The Verge WP Engine asks court to stop Matt Mullenweg from blocking access to WordPress resources - The Verge Podcast: Why the WordPress Chaos Matters - 404 Media Zope - Wikipedia Python Software Foundation PyLadies – Women Who Love Coding in Python Django Software Foundation - Django OpenCV - About Page Plone Foundation FastHTML - Modern web applications in pure Python Paul Everitt - Python 1994 - YouTube A Team at Microsoft is Helping Make Python Faster - Python Velda Kiara JetBrains Blog: The Drive to Develop Paul Everitt (@pauleveritt@fosstodon.org) - Fosstodon Guido van Rossum - Wikipedia The History of Python: Personal History - part 1, CWI Oral History of Guido van Rossum, part 1 - YouTubeLevel up your Python skills with our expert-led courses:
Building Python Project Documentation With MkDocs The pandas DataFrame: Working With Data Efficiently Using pandas to Make a Gradebook in PythonSupport the podcast & join our community of Pythonistas
Fri, 15 Nov 2024 - 228 - New PEPs: Template Strings & External Wheel Hosting
Have you wanted the flexibility of f-strings but need safety checks in place? What if you could have deferred evaluation for logging or avoiding injection attacks? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss a set of recent Python Enhancement Proposals (PEPs). The idea of template strings has been under consideration for a while, and PEP 750 describes a new way forward. PEP 759 proposes a way for projects on PyPI to safely host resources on external sites using a new package upload format called a .rim file.
We share several other articles and projects from the Python community, including what didn’t make the headlines about Python 3.13, solving Sudoku with Python packaging, what’s sweet about Python’s syntactic sugar, creating database-generated columns using SQLite and Django, a discussion about mentoring, an adaptive web scraper, and a debugging tool for HTTP(S) client requests.
This episode is sponsored by Sentry.
Course Spotlight: Using Pydantic to Simplify Python Data Validation
Discover the power of Pydantic, Python’s most popular data parsing, validation, and serialization library. In this hands-on video course, you’ll learn how to make your code more robust, trustworthy, and easier to debug with Pydantic.
Topics:
00:00:00 – Introduction 00:02:08 – Python 3.14.0 Alpha 1 Released 00:02:38 – Python 3.13, What Didn’t Make the Headlines 00:05:23 – What’s up Python? 3.13 is out, t-strings look awesome 00:10:21 – Sponsor: Sentry 00:11:25 – Sudoku in Python Packaging 00:14:29 – Syntactic Sugar: Why Python Is Sweet and Pythonic 00:22:31 – Database generated columns: Django & SQLite 00:27:14 – Video Course Spotlight 00:28:39 – Mentors 00:42:23 – Scrapling: Lightning-Fast, Adaptive Web Scraping for Python 00:44:14 – httpdbg: A tool for Python developers to easily debug the HTTP(S) client requests 00:46:04 – Request for project submissions to PyCoders 00:46:59 – Thanks and goodbyeNews:
Python 3.14.0 Alpha 1 ReleasedShow Links:
Python 3.13, What Didn’t Make the Headlines – Bite Code summarizes some of the lesser covered changes to Python in the 3.13 release, including how some of the REPL improvements made it intopdb, improvements toshutil, and small additions to the asyncio library. What’s up Python? 3.13 is out, t-strings look awesome, dep groups come in handy… Sudoku in Python Packaging – Simon writes about a Sudoku solver written by Konstin that uses the Python packaging mechanisms to do Sudoku puzzles. The results are output using a requirements.txt file, wheresudoku-0-3==5represents the (0,3) cell’s answer of 5. Syntactic Sugar: Why Python Is Sweet and Pythonic – In this tutorial, you’ll learn what syntactic sugar is and how Python uses it to help you create more readable, descriptive, clean, and Pythonic code. You’ll also learn how to replace a given piece of syntactic sugar with another syntax construct. Database generated columns: Django & SQLite – An introduction to database generated columns, using SQLite and the new GeneratedField added in Django 5.0Discussion:
Mentors – Ryan just finished his second round of mentoring with the Djangonaut.Space program. This post talks about how you can help your mentor help you and how to be a good mentor.Projects:
Scrapling: Lightning-Fast, Adaptive Web Scraping for Python httpdbg: A tool for Python developers to easily debug the HTTP(S) client requests in a Python programAdditional Links:
PEP 750 – Template Strings PEP 735 – Dependency Groups in pyproject.toml PEP 759 – External Wheel Hosting Episode #47: Unraveling Python’s Syntax to Its Core With Brett Cannon – The Real Python Podcast Episode #92: Continuing to Unravel Python’s Syntactic Sugar With Brett Cannon – The Real Python Podcast Episode #4: Learning Python Through Errors – The Real Python Podcast PyCoder’s Weekly - Have a Project You Want to Share? - Submit a LinkLevel up your Python skills with our expert-led courses:
Using Pydantic to Simplify Python Data Validation Python Type Checking Using Type Hints for Multiple Return Types in PythonSupport the podcast & join our community of Pythonistas
Fri, 08 Nov 2024 - 227 - PySheets: Spreadsheets in the Browser Using PyScript
What goes into building a spreadsheet application in Python that runs in the browser? How do you make it launch quickly, and where do you store the cells of data? This week on the show, we speak with Chris Laffra about his project, PySheets, and his book “Communication for Engineers.”
As a software engineer, Chris has worked at IBM, Google, Uber, and several financial institutions. He speaks about developer productivity and communication skills as an engineer. We begin our conversation by digging into his background, his approach to building engineering teams, and strategies for improving communication.
Chris’ idea for PySheets is to have Excel inside Python with everything running locally in your browser. He was inspired by the success of Jupyter Notebooks but wanted to develop a tool more suited to a spreadsheet’s non-linear graph structure.
PySheets is built to run locally in the user’s browser, taking advantage of PyScript. We discuss finding the right solution for storing data in the browser and developing a graphic toolkit to create the UI. Chris also shares the novel method he found to get the interface up and running while the larger assets are loading.
This episode is sponsored by Sentry.
Course Spotlight: Understanding Python’s Global Interpreter Lock (GIL)
Python’s Global Interpreter Lock, or GIL, is a mutex (or a lock) that allows only one thread to hold the control of the Python interpreter at any one time. In this video course, you’ll learn how the GIL affects the performance of your Python programs.
Topics:
00:00:00 – Introduction 00:02:25 – Background with building engineering teams 00:08:43 – Communication for Engineers book 00:16:17 – What do customers want and experiences at IBM 00:24:28 – Starting the development of PySheets 00:27:19 – Working with the DOM 00:29:41 – Success of Jupyter notebooks 00:35:46 – Sponsor: Sentry 00:36:52 – Little Toolkit for PyScript 00:43:24 – Finding funding 00:46:58 – Building a product before selling 00:52:27 – Video Course Spotlight 00:53:46 – Finding the right data storage in IndexedDB 01:01:57 – Exploring the trial page and extensibility 01:08:26 – Contributing to the project or forking 01:11:56 – What are you excited about in the world of Python? 01:16:20 – What do you want to learn next? 01:17:25 – How can people follow your work online? 01:18:05 – Thanks and goodbyeShow Links:
Chris Laffra C4E - Communication for Engineers (ePUB) PySheets - Spreadsheet UI for Python PySheets: Source for PySheets PyScript - Python in the browser - Chris Laffra - YouTube Python in Excel - Microsoft 365 pyscript/ltk: LTK is a little toolkit for writing UIs in PyScript LTK - Little Toolkit PROCOL: a parallel object language with protocols - ACM SIGPLAN IndexedDB API - MDN First steps - PyScript Pyodide — Version 0.26.3 PyScript Updates: Bytecode Alliance, Pyodide, and MicroPython MicroPython - Python for microcontrollers FreeCAD: Your own 3D parametric modeler Chris Laffra - How to become a Happy and Productive Engineer - YouTubeLevel up your Python skills with our expert-led courses:
What's New in Python 3.13 Python Plotting With Matplotlib Understanding Python's Global Interpreter Lock (GIL)Support the podcast & join our community of Pythonistas
Fri, 01 Nov 2024 - 226 - Python Getting Faster and Leaner & Ideas for Django Projects
What changes are happening under the hood in the latest versions of Python? How are these updates laying the groundwork for a faster Python in the coming years? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares an article about Python’s recent performance improvements. The piece covers the specialized adaptive interpreter and explains what those terms mean. It also includes details about the experimental feature of the Just-In-Time (JIT) compiler added in 3.13.
We dig into a collection of Django projects you can use to practice and develop your skills. The projects ramp up from detailed beginner tutorials to more advanced projects with guidelines on how to get started. We also discuss a collection of popular websites that use Django.
We share several other articles and projects from the Python community, including a batch of recent Python Enhancement Protocols (PEPs), a couple of Python releases, using DuckDB in the browser with Pyodide, building a contact book app with Textual, generating a tiny status page with a Python script, and a grep-like tool that understands code.
This episode is sponsored by AssemblyAI.
Course Spotlight: Building a Site Connectivity Checker
In this video course, you’ll build a Python site connectivity checker for the command line. While building this app, you’ll integrate knowledge related to making HTTP requests with standard-library tools, creating command-line interfaces, and managing concurrency with asyncio and aiohttp.
Topics:
00:00:00 – Introduction 00:03:11 – PEP 777: How to Re-Invent the Wheel 00:04:22 – PEP 758: Allowexceptandexcept*Expressions Without Parentheses 00:04:51 – PEP 760: No More Bare Excepts (Withdrawn) 00:05:42 – PEP 735: Dependency Groups inpyproject.toml00:06:29 – PEP 761: Deprecating PGP Signatures for CPython Artifacts 00:06:59 – Python 3.12.7 Released 00:07:12 – Incremental GC and Pushing Back the 3.13.0 Release 00:09:10 – DuckDB in the Browser With Pyodide 00:15:35 – Sponsor: AssemblyAI 00:16:18 – Build a Contact Book App With Python, Textual, and SQLite 00:21:55 – Django Project Ideas 00:28:42 – Video Course Spotlight 00:30:00 – In the Making of Python Fitter and Faster 00:35:13 – tinystatus: Tiny Status Page Generated by a Python Script 00:38:06 – srgn: Grep-Like Tool That Understands Code 00:42:01 – Thanks and goodbyeNews:
PEP 777: How to Re-Invent the Wheel – “The current wheel 1.0 specification was written over a decade ago, and has been extremely robust to changes in the Python packaging ecosystem… this PEP prescribes compatibility requirements on future wheel revisions.” PEP 758: Allowexceptandexcept*Expressions Without Parentheses – “This PEP proposes to allow unparenthesizedexceptandexcept*blocks in Python’s exception handling syntax. Currently, when catching multiple exceptions, parentheses are required around the exception types.” PEP 760: No More Bare Excepts (Withdrawn) PEP 735: Dependency Groups inpyproject.toml(Accepted) PEP 761: Deprecating PGP Signatures for CPython Artifacts – Since Python 3.11.0, CPython has provided two verifiable digital signatures for all CPython artifacts: PGP and sigstore. This PEP proposes moving to sigstore as the only way of signing artifacts. Python 3.12.7 Released Python 3.13.0 Released Incremental GC and Pushing Back the 3.13.0 Release – Some last minute performance considerations delayed the release of Python 3.13 with one of the features being backed out.Show Links:
DuckDB in the Browser With Pyodide – Learn how to run DuckDB in an in-browser Python environment to enable simple querying on remote files, interactive documentation, and easy to use training materials. Build a Contact Book App With Python, Textual, and SQLite – In this tutorial, you’ll be guided step by step through the process of building a basic contact book application. You’ll use Python and Textual to build the application’s text-based user interface (TUI), and then use SQLite to manage the database. Django Project Ideas – Looking to experiment or build your portfolio? Discover creative Django project ideas for all skill levels, from beginner apps to advanced full-stack projects. In the Making of Python Fitter and Faster – This post details how Python’s recent performance improvements work under the hood. It covers changes to the interpreter, better memory management, and the newly experimental JIT compiler.Projects:
tinystatus: Tiny Status Page Generated by a Python Script srgn: Grep-Like Tool That Understands CodeAdditional Links:
What Are Python Wheels and Why Should You Care? – Real Python Deploy your first JupyterLite website on GitHub Pages — JupyterLite 0.4.3 documentation rich: Python library for rich text and beautiful formatting in the terminal The 10 Most Popular Websites Using Django Django in Action Django and htmx Tutorial: Easier Web Development - YouTube Build a Site Connectivity Checker in Python – Real Python Refactoring Python with 🌳 Tree-sitter & Jedi | Jack’s blogLevel up your Python skills with our expert-led courses:
Building a Site Connectivity Checker How to Set Up a Django Project Building Command Line Interfaces With argparseSupport the podcast & join our community of Pythonistas
Fri, 25 Oct 2024 - 225 - Narwhals: Expanding DataFrame Compatibility Between Libraries
How does a Python tool support all types of DataFrames and their various features? Could a lightweight library be used to add compatibility for newer formats like Polars or PyArrow? This week on the show, we speak with Marco Gorelli about his project, Narwhals.
Narwhals is a project aimed at library maintainers rather than end users. We discuss how the added compatibility benefits users by supporting modern features like lazy evaluation. We cover several projects Marco has been working with to implement Narwhals, including Altair, scikit-lego, and Ibis.
We also discuss how Marco started contributing to open-source projects. Marco has contributed to both pandas and Polars, which helps explain his interest in growing compatibility between libraries. He also offers advice on making your first contribution.
This episode is sponsored by CodeRabbit.
Course Spotlight: Differences Between Python’s Mutable and Immutable Types
In this video course, you’ll learn how Python’s mutable and immutable data types work internally and how you can take advantage of mutability or immutability to power your code.
Topics:
00:00:00 – Introduction 00:02:02 – Euro SciPy 2024 and sprints 00:04:04 – How did you get involved in open source? 00:07:18 – Finding a good issue to get started 00:09:25 – Discord and open-source projects 00:11:12 – Who would you describe Narwhals? 00:16:47 – Working on Polars 00:19:17 – Apache Arrow and a data interchange protocol 00:22:55 – Sponsor: CodeRabbit 00:23:55 – Digging into eager vs lazy 00:27:04 – Ibis DataFrame library 00:28:57 – What do libraries need from Narwhals? 00:34:57 – The scikit-lego library 00:37:15 – Video Course Spotlight 00:38:45 – Other libraries interested in Narwhals 00:41:56 – Compatibility policy 00:45:18 – What should an end user expect? 00:46:32 – Have other projects that attempted this? 00:47:54 – Keeping the project light and pure Python 00:49:32 – Contributors and how to get involved 00:54:42 – What are you excited about in the world of Python? 00:57:18 – What do you want to learn next? 00:59:05 – How can people follow your work online? 00:59:27 – Thanks and goodbyeShow Links:
Narwhals EuroSciPy narwhals: Lightweight and Extensible Compatibility Layer Between DataFrame Libraries! - GitHub DataFrame Interoperability - What’s Been Achieved, and What Comes Next? - PyCon Lithuania - YouTube How Narwhals Has Many End Users … That Never Use It Directly - YouTube Polars Has a New Lightweight Plotting Backend - Altair pandas - Python Data Analysis Library Polars — DataFrames for the new era great-tables - PyPI Episode #214: Build Captivating Display Tables in Python With Great Tables Ibis Episode #201: Decoupling Systems to Get Closer to the Data Great Tables is Now BYODF (Bring Your Own DataFrame) How Narwhals and scikit-lego Came Together to Achieve DataFrame-Agnosticism Explore Using Narwhals in Plotly Express · Issue #4749 - GitHub Fairlearn Perfect Backwards Compatibility Policy - Narwhals uv: Unified Python packaging pixi - Powerful Development Environments Narwhals - Discord marcogorelli (@marcogorelli@fosstodon.org) - Fosstodon Marco Gorelli - Quansight - LinkedInLevel up your Python skills with our expert-led courses:
What's New in Python 3.13 pandas GroupBy: Grouping Real World Data in Python The pandas DataFrame: Working With Data EfficientlySupport the podcast & join our community of Pythonistas
Fri, 18 Oct 2024 - 224 - Exploring the New Features of Python 3.13
Python 3.13 is here! Our regular guests, Geir Arne Hjelle and Christopher Trudeau, return to discuss the new version. This year, Geir Arne coordinated a series of preview articles with members of the Real Python team and a showcase tutorial, “Python 3.13: Cool New Features for You to Try.” Christopher’s video course “What’s New in Python 3.13” covers the topics from the article and shows the new features in action.
Geir Arne and Christopher dug into the release to create code examples of the new features for the tutorial and course. We look at the options for disabling the Global Interpreter Lock (GIL) and enabling the Just-in-Time (JIT) compiler. We also discuss the new interactive interpreter, better error messages, multiple improvements to static typing, and additional performance improvements.
We share our thoughts on the updates and offer advice about incorporating them into your projects. We also discuss when you should start running Python 3.13.
This is episode is sponsored by Nvidia.
Course Spotlight: What’s New in Python 3.13
In this video course, you’ll learn about the new features in Python 3.13. You’ll take a tour of the new REPL and error messages and see how you can try out the experimental free threading and JIT versions of Python 3.13 yourself.
Topics:
00:00:00 – Introduction 00:03:14 – A Modern REPL 00:08:54 – Making the Global Interpreter Lock Optional in CPython 00:11:33 – JIT Compilation 00:15:48 – More improved error messages 00:18:30 – Sponsor: NVIDIA 00:19:13 – Marking deprecations using the type system 00:21:09 – Type Defaults for Type Parameters 00:22:44 – Narrowing types with TypeIs 00:25:24 – TypedDict: Read-only items 00:27:50 – Random command line interface 00:29:54 – New copy.replace() 00:33:43 – Video Course Spotlight 00:34:55 – Pathlib and globbing 00:39:33 – Stripping docstrings 00:41:28 – Import improvements 00:41:56 – Dynamically import non-code files 00:42:23 – Adding iOS as a supported platform 00:43:32 – More consistency with local namespace 00:44:30 – Support for deprecation in argparse 00:45:00 – Better entry points for breakpoint or set_trace 00:46:08 – Removing dead batteries 00:47:43 – When to upgrade to 3.13? 00:53:19 – core.py podcast 00:54:14 – Thanks and goodbyeShow Links:
Python 3.13: Cool New Features for You to Try What’s New in Python 3.13 Python 3.13 Preview: A Modern REPL Python 3.13 Preview: Free Threading and a JIT Compiler What’s New In Python 3.13 — Python 3.13.0rc2 documentation PEP 703 – Making the Global Interpreter Lock Optional in CPython PEP 744 – JIT Compilation PEP 702 – Marking deprecations using the type system PEP 696 – Type Defaults for Type Parameters PEP 742 – Narrowing types with TypeIs PEP 705 – TypedDict: Read-only items PEP 730 – Adding iOS as a supported platform PEP 738 – Adding Android as a supported platform PEP 667 – Consistent views of namespaces PEP 594 – Removing dead batteries from the standard library The Python Standard REPL: Try Out Code and Ideas Quickly Unlock IPython’s Magical Toolbox for Your Coding Journey core.py Podcast - Episode 14: Integration EventsLevel up your Python skills with our expert-led courses:
What's New in Python 3.13 Python Type Checking What's New in Python 3.12Support the podcast & join our community of Pythonistas
Fri, 11 Oct 2024 - 223 - Using Virtual Environments in Docker & Comparing Python Dev Tools
Should you use a Python virtual environment in a Docker container? What are the advantages of using the same development practices locally and inside a container? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We share a recent post by Hynek Schlawack about building Python projects using Docker containers. Hynek argues for using virtual environments for these projects, like developing a local one. He’s found that keeping your code in an isolated, well-defined location and structure avoids confusion and complexity.
We also discuss our development setups, including Python versions, code editors, virtual environment practices, terminals, and customizations. We dig into how your programming history affects the tools you use.
We share several other articles and projects from the Python community, including a group of new releases, addressing the “why” in comments, comparing a data science workflow in Python and R, removing common problems from CSV files, and a project for creating HTML tables in Django.
This episode is sponsored by InfluxData.
Course Spotlight: Advanced Python import Techniques
The Python import system is as powerful as it is useful. In this in-depth video course, you’ll learn how to harness this power to improve the structure and maintainability of your code.
Topics:
00:00:00 – Introduction 00:02:55 – Python Releases 3.12.6, 3.11.10, 3.10.15, 3.9.20, and 3.8.20 00:03:26 – Python Release Python 3.13.0rc2 00:04:07 – Django Security Releases Issued: 5.1.1, 5.0.9, and 4.2.16 00:04:36 – Polars Has a New Lightweight Plotting Backend 00:05:49 – Why I Still Use Python Virtual Environments in Docker 00:11:37 – How to Use Conditional Expressions With NumPywhere()00:15:55 – Sponsor: InfluxData 00:16:39 – PythonistR: A Match Made in Data Heaven 00:23:44 – Why Not Comments 00:26:48 – Video Course Spotlight 00:28:10 – Discussion: Personal development setups 00:51:01 – csv_trimming: Remove Common Ugliness From CSV Files 00:53:01 – django-tables2: Create HTML Tables in Django 00:54:39 – Thanks and goodbyeNews:
Python Releases 3.12.6, 3.11.10, 3.10.15, 3.9.20, and 3.8.20 Python Release Python 3.13.0rc2 Django Security Releases Issued: 5.1.1, 5.0.9, and 4.2.16Show Links:
Polars Has a New Lightweight Plotting Backend – Polars 1.6 allows you to natively create beautiful plots without pandas, NumPy, or PyArrow. This is enabled by Narwhals, a lightweight compatibility layer between dataframe libraries. Why I Still Use Python Virtual Environments in Docker – Hynek often gets challenged when he suggests the use of virtual environments within Docker containers, and this post explains why he still does. How to Use Conditional Expressions With NumPywhere()– This tutorial teaches you how to use the where() function to select elements from your NumPy arrays based on a condition. You’ll learn how to perform various operations on those elements and even replace them with elements from a separate array or arrays. PythonistR: A Match Made in Data Heaven – In data science you’ll sometimes hear a debate between R and Python. Cosima says ‘why not choose both?’ She outlines a data pipeline that uses the best tool for each job. Why Not Comments – This post talks about why you might want to include information in your code comments about why you didn’t take a particular approach.Discussion:
Editors & IDEs – Real Python Visual Studio Code - Code Editing. Redefined Project Jupyter - Home vim online: welcome home iTerm2 - macOS Terminal ReplacementProjects:
csv_trimming: Remove Common Ugliness From CSV Files django-tables2: Create HTML Tables in DjangoAdditional Links:
virtualenv Lives! - Hynek Schlawack - 2014 Production-ready Python Docker Containers with uv - Hynek Schlawack r-python-talk: 🦸🏼♀️ Contains material for talk on how to use Python and R together Download RStudio - Posit Logic for Programmers by Hillel Wayne - LeanpubLevel up your Python skills with our expert-led courses:
Using Jupyter Notebooks Absolute vs Relative Imports in Python Advanced Python import TechniquesSupport the podcast & join our community of Pythonistas
Fri, 27 Sep 2024 - 222 - Thriving as a Developer With ADHD
What are strategies for being a productive developer with ADHD? How can you help your team members with ADHD to succeed and complete projects? This week on the show, we speak with Chris Ferdinandi about his website and podcast “ADHD For the Win!”
Chris struggled with productivity early in his career as a developer. He shares systems and strategies he’s discovered to harness the focusing power of ADHD.
We discuss time management, meetings, and maintaining productivity in a hectic world. Chris also shares resources for learning more about defining ADHD, self-evaluation, and how to keep getting things done.
This episode is sponsored by InfluxData.
Course Spotlight: Build a GUI Calculator With PyQt and Python
In this video course, you’ll learn how to create graphical user interface (GUI) applications with Python and PyQt. Once you’ve covered the basics, you’ll build a fully functional desktop calculator that can respond to user events with concrete actions.
Topics:
00:00:00 – Introduction 00:02:30 – Defining ADHD and how it aligns with coding 00:05:47 – Analogy for focus 00:06:51 – Can you sense the change in focus? 00:07:46 – The challenge of meetings 00:11:45 – Tips for managing time 00:15:44 – Capturing notes and defragging 00:18:48 – Sponsor: InfluxData 00:19:33 – Downtime and interruptions 00:25:26 – Remote work and focus 00:33:16 – Sitting still and meetings 00:37:39 – Video Course Spotlight 00:39:13 – Anything worth doing is worth doing poorly 00:47:36 – Prototypes and working on interesting things 00:50:26 – Deadlines and pomodoro timers 00:54:21 – Have your symptoms changed over time? 00:56:18 – Starting ADHDftw.com 00:59:12 – Decision to keep podcast episodes short 01:00:01 – Deciding on medication 01:02:02 – Resources available 01:03:29 – What motivates you to continue to learn programming? 01:04:06 – What do you want to learn next? 01:04:55 – What are other ways to follow your work online? 01:05:28 – Thanks and goodbyeShow Links:
ADHD ftw! - Resources ADHD isn’t a deficit of attention (and doesn’t necessarily mean you’re hyperactive) Do I have ADHD? Snoot - Wikipedia Anything worth doing is worth doing poorly Getting stuff done with ADHD: defrag your notebook - ADHD ftw! Go Make Things - About Chris Ferdinandi ⚓️ (@cferdinandi@mastodon.social) - FosstodonLevel up your Python skills with our expert-led courses:
Creating PyQt Layouts for GUI Applications Build a GUI Calculator With PyQt and Python HTML and CSS Foundations for Python DevelopersSupport the podcast & join our community of Pythonistas
Fri, 20 Sep 2024 - 221 - Configuring Git Pre-Commit Hooks & Estimating Software Projects
How do you take advantage of Git pre-commit hooks? How do you build custom software checks and rules that run every time you commit your code? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We share a trio of articles by previous guest Stefanie Molin about Git pre-commit hooks. Across the series, she provides step-by-step instructions for building your own hooks, managing them, and learning how they operate.
We discuss the process of estimating software development projects. We dig into the art of “guesstimation,” rough calculation, and napkin math. Christopher shares his experience in agile scenarios and measuring projects by story counts.
We share several other articles and projects from the Python community, including a news roundup, 10 Python programming optimization techniques, and building a blog in Django using GraphQL & Vue. We also explore experimenting with Python’s preprocessor, a toolkit for writing UIs in PyScript, and a couple of projects for working with Django Admin.
This episode is sponsored by InfluxData.
Course Spotlight: Python mmap: Doing File I/O With Memory Mapping
In this video course, you’ll learn how to use Python’s mmap module to improve your code’s performance when you’re working with files. You’ll get a quick overview of the different types of memory before diving into how and why memory mapping with mmap can make your file I/O operations faster.
Topics:
00:00:00 – Introduction 00:02:28 – Python Top Language of 2024 00:02:59 – Python Developers Survey 2023 Results 00:03:46 – How Pre-Commit Works 00:10:00 – Build a Blog Using Django, GraphQL, and Vue 00:13:38 – Sponsor: InfluxData 00:14:23 – 10 Python Programming Optimization Techniques 00:22:45 – Python’s Preprocessor 00:26:42 – Video Course Spotlight 00:28:16 – You don’t have to guess to estimate 00:44:18 – LTK is a little toolkit for writing UIs in PyScript 00:49:06 – django-admin-action-forms: Forms for Django Admin 00:52:09 – django-public-admin: A Public and Read-Only Django Admin 00:53:24 – Thanks and goodbyeNews:
Python Top Language of 2024 – “Python continues to cement its overall dominance, buoyed by things like popular libraries for hot fields such as A.I.” Read the article to see where other languages have placed. Python Developers Survey 2023 Results – Official Python Developers Survey 2023 Results by Python Software Foundation and JetBrains: more than 25k responses from almost 200 countries.Show Links:
How Pre-Commit Works – As a user of pre-commit hooks, do you know what happens when you runpre-commit installor why you have to run it in the first place? How does pre-commit actually work with Git? In this article, Stefanie takes you behind the scenes of how your pre-commit setup works. How to Set Up Pre-Commit Hooks - Stefanie Molin How to Create a Pre-Commit Hook - Stefanie Molin Build a Blog Using Django, GraphQL, and Vue – In this step-by-step project, you’ll build a blog from the ground up. You’ll turn your Django blog data models into a GraphQL API and consume it in a Vue application for users to read. You’ll end up with an admin site and a user-facing site you can continue to refine for your own use. 10 Python Programming Optimization Techniques – Optimization should be your last step, but once you’re there, just what can you do? This article covers ten different techniques that address memory size and code performance. Python’s Preprocessor – Every now and then you hear outrageous claims such as “Python has no preprocessor,” well it is there if you’re willing to dig deep enough. Learn how to hack Python’s compile step.Discussion
You Don’t Have to Guess to Estimate Habits of Great Software EngineersProjects:
pyscript/ltk: LTK Is a Little Toolkit for Writing UIs in PyScript django-admin-action-forms: Forms for Django Admin django-public-admin: A Public and Read-Only Django AdminAdditional Links:
Python mmap: Doing File I/O With Memory Mapping – Real Python Caching in Python With lru_cache – Real Python Episode #128: Using a Memory Profiler in Python & What It Can Teach You Episode #172: Measuring Multiple Facets of Python Performance With Scalene – The Real Python Podcast software development - Why are estimates treated like deadlines? - Project Management Stack Exchange Software Estimation Without Guessing: Effective Planning in an Imperfect World by George Dinwiddie Guesstimation - Princeton University Press Anaconda Toolbox for Excel — Anaconda documentation Anaconda Code — Anaconda documentation PySheets - Spreadsheet UI for PythonLevel up your Python skills with our expert-led courses:
Python mmap: Doing File I/O With Memory Mapping Caching in Python With lru_cache How Python Manages MemorySupport the podcast & join our community of Pythonistas
Fri, 13 Sep 2024 - 220 - Astrophysics and Astronomy With Python & PyCon Africa 2024
Are you interested in practicing your Python skills while learning how to solve astrophysics and astronomy problems? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares a pair of his recent Real Python video courses about exploring astronomy and astrophysics with Python. Throughout the courses, you’ll get to practice using a variety of data science libraries, such as NumPy, Matplotlib, pandas, pint, and Astropy.
We speak with Mannie Young who is the Organizing Committee Chair of PyCon Africa. Real Python is excited to be a contributing sponsor of this year’s conference. Mannie discusses reinvigorating a continent-spanning conference after a multiyear hiatus. He also talks about introducing Python to students and new developers across Africa through PyClubs, PyLadies, and PyData programs.
We share several other articles and projects from the Python community, including a news roundup, logging in Python, understanding operator precedence, reconciling why it only works on your machine, a fast way to create an HTML app, and a tool for deep inspection of Python objects.
This episode is sponsored by InfluxData.
Course Spotlight: Sorting Dictionaries in Python: Keys, Values, and More
In this video course, you’ll learn how to sort Python dictionaries. By the end, you’ll be able to sort by key, value, or even nested attributes. But you won’t stop there, you’ll also measure the performance of variations when sorting and compare different key-value data structures.
Topics:
00:00:00 – Introduction 00:03:05 – PEP 750: Tag Strings for Domain-Specific Languages 00:05:19 – PEP 752: Package Repository Namespaces 00:07:32 – PyCon US 2024 Recap and Recording Release 00:08:01 – Logging in Python 00:14:57 – It Works on My Machine. Why? 00:17:33 – Python’s Operator Precedence 00:20:54 – Exploring Astrophysics in Python With pandas and Matplotlib 00:24:03 – Using Astropy for Astronomy With Python 00:26:37 – Sponsor: InfluxData 00:27:22 – fasthtml: The Fastest Way to Create an HTML App 00:32:50 – wat: Deep Inspection of Python Objects 00:38:08 – PyCon Africa 2024 00:40:47 – What goes into re-energizing a conference? 00:44:20 – Talks and speakers 00:46:58 – Video Course Spotlight 00:48:29 – How did you get involved? 00:52:19 – PyClubs and growing Python education 00:58:41 – What industries are using Python in Ghana? 01:00:20 – Sponsorship and support 01:01:51 – Travel in and outside the continent 01:04:23 – Call to action 01:05:05 – Thanks and goodbyeNews:
PEP 750: Tag Strings for Domain-Specific Languages (Added) PEP 752: Package Repository Namespaces (Added) PyCon US 2024 Recap and Recording Release – PyCon US 2024 had a record breaking attendance with over 2,700 in-person tickets sold. This article is a recap from the conference runners and links to all the available recordings.Show Links:
Logging in Python – If you use Python’sprint()function to get information about the flow of your programs, then logging is the natural next step for you. This tutorial will guide you through creating your first logs and show you ways to curate them to grow with your projects. It Works on My Machine. Why? – A list of things to check when something works on your computer but not on someone else’s. Python’s Operator Precedence – Stephen uses a story-telling style to explain how operator precedence works in Python. Exploring Astrophysics in Python With pandas and Matplotlib – This course uses three problems often covered in introductory astro-physics courses to play in Python. Along the way you’ll learn some astronomy and how to use a variety of datascience libraries like NumPy, Matplotlib, pandas, and pint. Using Astropy for Astronomy With Python – This course covers two problems from introductory astronomy to help you play with some Python libraries. You’ll use NumPy, Matplotlib, and pandas to find planet conjunctions, and graph the best viewing times for a star.Projects:
fasthtml: The Fastest Way to Create an HTML App wat: Deep Inspection of Python ObjectsAdditional Links:
PyCon Africa 2024 - Home Announcing PyCon Africa 2024 Blog: A Return to Accra and a Look Ahead Episode #65: Expanding the International Python Community With the PSF Django Girls - Start your journey with programming PyLadies Ghana - Python Ghana’s Blog PyData Ghana - Python Ghana’s Blog PyClubs - Home Quiz: Logging in Python Mannie Young - LinkedIn Mannie Young (@mawy_7) - XLevel up your Python skills with our expert-led courses:
Using Astropy for Astronomy With Python Sorting Dictionaries in Python: Keys, Values, and More Exploring Astrophysics in Python With pandas and MatplotlibSupport the podcast & join our community of Pythonistas
Fri, 06 Sep 2024 - 219 - Exploring Robotics and Python Through Electronic Projects
Are you interested in learning robotics with Python? Can physical electronics-based projects grow a child’s interest in coding? This week on the show, we speak with author Marwan Alsabbagh about his book “Build Your Own Robot - Using Python, CRICKIT, and Raspberry Pi.”
Marwan discusses his two conferences talks about building electronics projects with his children. He provides advice on equipment and techniques to make learning Python engaging.
We explore his robotics project and the literal balancing act of designing a robot around the Raspberry Pi. Marwan shares his successes and disappointments while working to incorporate computer vision, joystick controls, and voice commands.
This episode is sponsored by Mailtrap.
Course Spotlight: Python Debugging With pdb
In this hands-on course, you’ll learn the basics of using pdb, Python’s interactive source code debugger. pdb is a great tool for tracking down hard-to-find bugs, and it allows you to fix faulty code more quickly.
Topics:
00:00:00 – Introduction 00:02:14 – How did you get started with Python and electronics? 00:04:27 – Snow globe intruder alert system 00:06:57 – Things to keep in mind with a child 00:12:50 – Challenges in teaching a child Python 00:16:34 – Sponsor: Mailtrap 00:17:11 – What are other projects you’ve tried? 00:21:12 – Powering the robot project 00:24:56 – Putting together the robot librarian talk 00:29:47 – Was there any friction teaching kids robotics? 00:32:47 – Adding the complexity of a Raspberry Pi 00:38:27 – Video Course Spotlight 00:39:48 – Hardware components of the robot 00:41:51 – Thinking about access to the equipment 00:45:37 – Assembling the robot project? 00:49:14 – Various control systems 00:54:42 – What experience level is required with Python? 00:55:40 – What concepts were you excited to share? 00:57:59 – Do you think Python is a good language for robotics? 00:59:21 – MicroPython Cookbook 01:00:07 – What are projects you tried that didn’t work out? 01:03:01 – What are you excited about in the world of Python? 01:04:04 – What do you want to learn next? 01:04:56 – How can people follow your work online? 01:05:19 – Thanks and goodbyeShow Links:
Build Your Own Robot - Using Python, CRICKIT, and Raspberry PI Snow globe intruder alert system Snow globe intruder alert system - Marwan Alsabbagh - PyLondinium18 - YouTube Adafruit Industries, Unique & fun DIY electronics and kits Nina Zakharenko - Keynote - PyCon 2019 - YouTube Episode #86: The Legacy of OLPC and Charismatic Pitfalls in Teaching Programming Episode #161: Resources and Advice for Building CircuitPython Projects Episode #75: Building With CircuitPython & Constraints of Python for Microcontrollers MicroPython Cookbook: Marwan Alsabbagh - Amazon.com: Books WebAssembly </> htmx - high power tools for html Marwan Alsabbagh - personal website marwano (Marwan Alsabbagh) - GitHubLevel up your Python skills with our expert-led courses:
Using Pygame to Build an Asteroids Game in Python Debugging in Python With pdb Using Python's assert to Debug and Test Your CodeSupport the podcast & join our community of Pythonistas
Fri, 23 Aug 2024 - 218 - Packaging Data Analyses & Using pandas GroupBy
What are the best practices for organizing data analysis projects in Python? What are the advantages of a more package-centric approach to data science? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss Joshua Cook’s recent article “How I Use Python to Organize My Data Analyses.” The article covers how his process for building data analysis projects has evolved and now incorporates modern Python packaging techniques.
Christopher shares his recent video course on grouping real-world data with pandas. The course offers a quick refresher before digging into how to use pandas GroupBy to manipulate, transform, and summarize data.
We also share several other articles and projects from the Python community, including a news roundup, working with JSON data in Python, running an Asyncio event loop in a separate thread, knowing the why behind a system’s code, a retro game engine for Python, and a project for vendorizing packages from PyPI.
This episode is sponsored by Mailtrap.
Course Spotlight: pandas GroupBy: Grouping Real World Data in Python
In this course, you’ll learn how to work adeptly with the pandas GroupBy while mastering ways to manipulate, transform, and summarize data. You’ll work with real-world datasets and chain GroupBy methods together to get data into an output that suits your needs.
Topics:
00:00:00 – Introduction 00:02:18 – Setuptools Breaks Things, Then Fixes Them 00:04:57 – PEP 751: A File Format to List Python Dependencies 00:07:04 – Python 3.13.0 Release Candidate 1 Released 00:07:15 – Python Insider: Python 3.12.5 released 00:07:22 – Django 5.1 released - Django Weblog 00:07:27 – Django security releases issued: 5.0.8 and 4.2.15 00:07:49 – How I Use Python to Organize My Data Analyses 00:13:45 – Sponsor: Mailtrap 00:14:21 – pandas GroupBy: Grouping Real World Data in Python 00:20:33 – Working With JSON Data in Python 00:25:01 – Asyncio Event Loop in Separate Thread 00:30:33 – Video Course Spotlight 00:31:47 – Habits of great software engineers 00:49:17 – pyxel: A Retro Game Engine for Python 00:52:36 – python-vendorize: Vendorize Packages From PyPI 00:54:18 – Thanks and goodbyeNews:
Setuptools Breaks Things, Then Fixes Them – This post is Bite Code’s monthly summary, but the lead story happened just days ago. In line with a 7 year old deprecation, setuptools finally removed the ability to call itstestcommand. Many packages promptly broke. The following day the change was undone. PEP 751: A File Format to List Python Dependencies for Installation Reproducibility (New) – This PEP proposes a new file format for dependency specification to enable reproducible installation in a Python environment. Python 3.13.0 Release Candidate 1 Released Python Insider: Python 3.12.5 released Django 5.1 released - Django Weblog Django security releases issued: 5.0.8 and 4.2.15 - Django WeblogShow Links:
How I Use Python to Organize My Data Analyses – This is a description of how Joshua uses Python in a package-centric way to organize his approach to data analyses. This is a system he has evolved while working on his computational biology Ph.D. and working in industry. pandas GroupBy: Grouping Real World Data in Python – In this course, you’ll learn how to work adeptly with the pandas GroupBy while mastering ways to manipulate, transform, and summarize data. You’ll work with real-world datasets and chain GroupBy methods together to get data into an output that suits your needs. Working With JSON Data in Python – In this tutorial, you’ll learn how to read and write JSON-encoded data in Python. You’ll begin with practical examples that show how to use Python’s built-in “json” module and then move on to learn how to serialize and deserialize custom data. Asyncio Event Loop in Separate Thread – Typically, the asyncio event loop runs in the main thread, but as that is the one used by the interpreter, sometimes you want the event loop to run in a separate thread. This article talks about why and how to do just that.Discussion:
Habits of great software engineersProjects:
pyxel: A Retro Game Engine for Python python-vendorize: Vendorize Packages From PyPIAdditional Links:
Everyday Project Packaging With pyproject.toml – Real Python Packaging Your Python Code With pyproject.toml - Complete Code Conversation - YouTube Episode #197: Using Python in Bioinformatics and the Laboratory – The Real Python PodcastLevel up your Python skills with our expert-led courses:
Everyday Project Packaging With pyproject.toml Working With JSON in Python pandas GroupBy: Grouping Real World Data in PythonSupport the podcast & join our community of Pythonistas
Fri, 16 Aug 2024 - 217 - Learning Through Building the Black Python Devs Community
What hurdles must be cleared when starting an international organization? How do you empower others in a community by sharing responsibilities? This week on the show, we speak with Jay Miller about Black Python Devs.
Jay shares how the idea of forming a community began through attending conferences. They wanted to welcome more black developers into the Python community. We discuss the introduction of Black Python Devs as part of their PyCon 2024 keynote presentation.
Jay explains working with a few key people to build the group’s foundations. They talk about the difficulty of letting other people share in the responsibilities and ownership as the membership grew. We also discuss the advantages of partnering with a non-profit organization.
This episode is sponsored by InfluxData.
Course Spotlight: Interacting With REST APIs and Python
In this video course, you’ll learn how to use Python to communicate with REST APIs. You’ll learn about REST architecture and how to use the requests library to get data from a REST API. You’ll also explore different Python tools you can use to build REST APIs.
Topics:
00:00:00 – Introduction 00:02:50 – PyCon 2024 Keynote 00:06:02 – New role at Aiven 00:11:32 – Nobody knows what Dev Rel is 00:19:43 – Podcasting about productivity 00:24:12 – Sponsor: InfluxData 00:24:57 – Starting Black Python Devs 00:33:11 – Distinct perspectives and problems 00:37:10 – Partnering with Gnome Foundation 00:40:31 – What were hurdles in starting Black Python Devs? 00:45:31 – Video Course Spotlight 00:47:01 – What do you wish you knew before you started? 00:50:56 – What’s your latest win? 00:53:28 – Helping people prepare for jobs and new roles 00:58:03 – What’s your call to action? 01:00:26 – What are you excited about in the world of Python? 01:03:48 – How do you stay motivated to keep learning Python? 01:06:19 – What do you want to learn next? 01:09:02 – How can people follow your work online? 01:11:02 – Thanks and goodbyeShow Links:
Black Python Devs - Home PyCon 2024 Keynote Speaker - Jay Miller - YouTube PyCon 2024 Keynote Speaker - Sumana Harihareswara - YouTube Conduit - Relay FM Aiven - Your Trusted Data & AI Platform Abigail Mesrenyame Dogbe Honored with Inaugural Outstanding PyLady Award Episode #86: The Legacy of OLPC and Charismatic Pitfalls in Teaching Programming – The Real Python Podcast Black Python Devs Join the GNOME Foundation Nonprofit Umbrella – The GNOME Foundation Applying for a Hacker Initiative Grant With Bill Pollock of No Starch Press – The Real Python Podcast Jay Miller - Personal Website kjaymiller - Jay Miller’s GitHub Jay Miller (@kjaymiller@mastodon.social) - Fosstodon Jay Miller - LinkedIn Render Engine - read the docsLevel up your Python skills with our expert-led courses:
Sneaky REST APIs With Django Ninja Unleashing the Power of the Console With Rich Interacting With REST APIs and PythonSupport the podcast & join our community of Pythonistas
Fri, 09 Aug 2024 - 216 - Using GraphQL in Django With Strawberry & Prototype Purgatory
How do you integrate GraphQL into your Python web development? How about quickly building graph-based APIs inside Django’s battery-included framework? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares a recent tutorial for building GraphQL APIs in Django using the Python library Strawberry. The tutorial digs into creating a project, defining models, and creating GraphQL queries and mutations using Strawberry.
We discuss a blog post from Nat Bennet titled “Why do prototypes suck?” We dig into the common pitfalls of building prototypes and the misconceptions between developers and end users.
We also share several other articles and projects from the Python community, including a news roundup, using HTMX with FastAPI, creating an unbelievably stupid airline Wi-Fi package, extracting wisdom from conference videos, writing pixel images to the terminal, and a macOS app for Jupyter Notebooks.
This episode is sponsored by Mailtrap.
Course Spotlight: Building a URL Shortener With FastAPI and Python
In this video course, you’ll build an app to create and manage shortened URLs. Your Python URL shortener can receive a full target URL and return a shortened URL. You’ll also use the automatically created documentation of FastAPI to try out your API endpoints.
Topics:
00:00:00 – Introduction 00:02:27 – Python 3.13.0 Beta 4 Released 00:03:15 – Using HTMX With FastAPI 00:09:51 – Free, Unbelievably Stupid Wi-Fi on Long-Haul Flights 00:13:37 – Sponsor: Mailtrap 00:14:13 – “Extracting Wisdom” From Conference Videos 00:22:34 – Developing GraphQL APIs in Django With Strawberry 00:30:01 – Video Course Spotlight 00:31:33 – Why do prototypes suck? 00:42:53 – Satyrn: macOS App for Jupyter Notebooks 00:46:41 – rich-pixels: A Rich-compatible library for writing pixel images 00:48:23 – Thanks and goodbyeNews:
Python 3.13.0 Beta 4 ReleasedTopics:
Using HTMX With FastAPI – This tutorial looks at how use HTMX with FastAPI by creating a simple todo web app and deploying it on Render. Free, Unbelievably Stupid Wi-Fi on Long-Haul Flights – Deep in a need to procrastinate on a flight between London and San Francisco, Robert discovered that changing his name on an airline’s frequent flyer account was free over the plane’s WiFi. What’s a developer to do? Work on their tickets? No, create an entire TCP/IP protocol using this loophole. The result is the PySkyWiFi package. “Extracting Wisdom” From Conference Videos – There are so many conferences and so many videos, you can’t possibly watch them all. This post shows you how to extract information to summarize a talk so you can quickly decide what you want to watch. Developing GraphQL APIs in Django With Strawberry – This tutorial details how to integrate GraphQL with Django using Strawberry.Discussion:
Why do prototypes suck?Project:
Satyrn: macOS App for Jupyter Notebooks darrenburns/rich-pixels: A Rich-compatible library for writing pixel images and ASCII art to the terminal.Additional Links:
</> htmx - high power tools for html Using FastAPI to Build Python Web APIs – Real Python Ollama fabric: An open-source framework for augmenting humans using AI A modern GraphQL library for Python - 🍓 Strawberry GraphQL Satyrn DiscordLevel up your Python skills with our expert-led courses:
Sneaky REST APIs With Django Ninja Building a URL Shortener With FastAPI and Python Python REST APIs With FastAPISupport the podcast & join our community of Pythonistas
Fri, 02 Aug 2024 - 215 - Build Captivating Display Tables in Python With Great Tables
Do you need help making data tables in Python look interesting and attractive? How can you create beautiful display-ready tables as easily as charts and graphs in Python? This week on the show, we speak with Richard Iannone and Michael Chow from Posit about the Great Tables Python library.
Michael and Richard discuss the design philosophy and history behind creating display tables. We dig into the grammar of tables, the background of the project, and an ingenious way to build a collection of examples for a library.
We briefly cover how Richard and Michael started contributing to open source. We also discuss practicing data skills with challenges and resources like Tidy Tuesday.
This episode is sponsored by Mailtrap.
Course Spotlight: Graph Your Data With Python and ggplot
In this course, you’ll learn how to use ggplot in Python to build data visualizations with plotnine. You’ll discover what a grammar of graphics is and how it can help you create plots in a very concise and consistent way.
Topics:
00:00:00 – Introduction 00:02:00 – Michael’s background in open source 00:04:07 – Rich’s background in open source 00:05:27 – Advice for someone starting out 00:08:55 – What do you mean by the term “display” table 00:11:32 – What components were missing from other tables? 00:13:31 – Using examples to explain features 00:16:09 – Why was there an absence of this functionality in Python? 00:19:35 – A progressive approach and the grammar of tables 00:21:26 – Sponsor: Mailtrap 00:22:01 – The design philosophy of great tables 00:25:31 – Nanoplots, spark lines, and column spanners 00:27:06 – Building a gallery of examples 00:28:56 – Heat mapping cells and automatically adjusting text color 00:32:54 – Output formats for the tables 00:34:46 – Building in accessibility 00:36:55 – Dependencies 00:37:42 – What is the common workflow? 00:41:39 – Video Course Spotlight 00:43:15 – Adding graphics 00:46:41 – Using a table contest to get examples 00:49:47 – quartodoc and documenting the project 00:55:00 – Tidy Tuesday and data science community 01:00:29 – What are you excited about in the world of Python? 01:03:46 – What do you want to learn next? 01:08:05 – How can people follow the work you do online? 01:09:57 – Thanks and goodbyeShow Links:
Great Tables - Intro Examples – great_tables great-tables: Make awesome display tables using Python. - GitHub siuba: Python library for using dplyr like syntax with pandas and SQL The Design Philosophy of Great Tables – great_tables Richard Iannone - Using Great Tables to Make Presentable Tables in Python - YouTube Evaluation of the players of #LigaEndesa this week in Europe - Great Tables Example - X quartodoc: Generate API documentation with quarto Tidy Tuesday R Screencasts - YouTube Polars — DataFrames for the new era narwhals-dev/narwhals: Lightweight and extensible compatibility layer between dataframe libraries! A Grammar of Graphics for Python – plotnine 0.13.6 Richard Iannone - GitHub Michael Chow - GitHub) Richard Iannone - LinkedIn Michael Chow - LinkedInLevel up your Python skills with our expert-led courses:
Using Jupyter Notebooks pandas GroupBy: Grouping Real World Data in Python Graph Your Data With Python and ggplotSupport the podcast & join our community of Pythonistas
Fri, 26 Jul 2024 - 214 - Constraint Programming & Exploring Python's Built-in Functions
What are discrete optimization problems? How do you solve them with constraint programming in Python? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects
Christopher discusses an article about constraint programming using Python. He describes the fundamentals and how the problems resemble logic problems you may have experienced in school. The article shows how to solve a weekly work scheduling problem using the open-source CP-SAT package.
We discuss Leodanis Pozo Ramos’s recent tutorial, “Python’s Built-in Functions: A Complete Exploration.” These functions are available for use directly in your code without importing.
We also share several other articles and projects from the Python community, including a news roundup, spotting ships with satellites, grappling with Apple’s App Store rejecting Python applications, considering changes to Python’s security model, discussing pivoting from one development path to another, prettifying Jinja and Django templates, and generating static sites with Python.
This episode is sponsored by Sentry.
Course Spotlight: Parallel Iteration With Python’s zip() Function
In this course, you’ll learn how to use the Python zip() function to solve common programming problems. You’ll learn how to traverse multiple iterables in parallel and create dictionaries with just a few lines of code.
Topics:
00:00:00 – Introduction 00:02:35 – Polars 1.0 Released 00:03:26 – Psycopg 3.2 Released 00:04:06 – Django security releases issued: 5.0.7 and 4.2.14 00:04:40 – PyBay 2024 Call for Proposals 00:05:16 – Python’s Built-in Functions: A Complete Exploration 00:12:10 – Satellites Spotting Ships 00:16:02 – Sponsor: Sentry 00:17:09 – Python Grapples With Apple App Store Rejections 00:20:27 – Python’s Security Model After thexz-utilsBackdoor 00:25:38 – Video Course Spotlight 00:26:56 – Constraint Programming Using CP-SAT and Python 00:31:40 – Any Web Devs Successfully Pivoted to AI/ML Development? 00:43:12 – aurora: Static Site Generator Implemented in Python 00:45:14 – Running Prettier Against Django or Jinja Templates 00:46:58 – Thanks and goodbyeNews:
Polars 1.0 Released Psycopg 3.2 Released Django security releases issued: 5.0.7 and 4.2.14 PyBay 2024 Call for ProposalsShow Links:
Python’s Built-in Functions: A Complete Exploration – In this tutorial, you’ll learn the basics of working with Python’s numerous built-in functions. You’ll explore how you can use these predefined functions to perform common tasks and operations, such as mathematical calculations, data type conversions, and string manipulations. Satellites Spotting Ships – Umbra Space has released a data set consisting of satellite based radar images of shipping. This article from Mark shows you how to grab the data, visualize, and annotate it. Python Grapples With Apple App Store Rejections – A string that is part of theurllibparser module in Python references a scheme for apps that use the iTunes feature to install other apps, which is disallowed. Auto scanning by Apple is rejecting any app that uses Python 3.12 underneath. A solution has been proposed for Python 3.13. Python’s Security Model After thexz-utilsBackdoor – The backdoor introduced to thexz-utilscompression project through social engineering was one of the topics at the Python Language Summit. Participants discussed what can be done to prevent similar social engineering attacks on the Python source. Constraint Programming Using CP-SAT and Python – Constraint programming is the process of looking for solutions based on a series of restrictions, like employees over 18 who have worked the cash before. This article introduces the concept and shows you how to use open source libraries to write constraint solving code.Discussion:
Any Web Devs Successfully Pivoted to AI/ML Development?Projects:
aurora: Static Site Generator Implemented in Python Running Prettier Against Django or Jinja Templates – “Prettier” is a JavaScript based linting tool for templates. For folks not familiar with the world of npm, it can be a bit daunting to get it going. Simon fiddled with it so you don’t have to and posted how he got it working on his system.Additional Links:
Episode #209: Python’s Command-Line Utilities & Music Information Retrieval Tools – The Real Python Podcast Python Module Index — Python 3.12.4 documentation Built-in Functions — Python 3.12.4 documentation Briefcase— BeeWare Ask HN: What’s Prolog like in 2024? - Hacker News Episode #199: Leveraging Documents and Data to Create a Custom LLM Chatbot – The Real Python Podcast PEP 730 – Adding iOS as a supported platform | peps.python.orgLevel up your Python skills with our expert-led courses:
Parallel Iteration With Python's zip() Function Python Inner Functions Jinja TemplatingSupport the podcast & join our community of Pythonistas
Fri, 19 Jul 2024 - 213 - Digging Into Graph Theory in Python With David Amos
Have you wondered about graph theory and how to start exploring it in Python? What resources and Python libraries can you use to experiment and learn more? This week on the show, former co-host David Amos returns to talk about what he’s been up to and share his knowledge about graph theory in Python.
David started a Ph.D. program studying mathematics, with a focus on graph theory. Though life interrupted his pursuit after three years, he is still passionate about the subject. He’s been using these skills to create documentation and teach users as part of RelationalAI’s education team.
David has also been exploring the Julia programming language. He wrote about it on his blog, created videos, and started a podcast on the topic. He shares his excitement about learning new techniques from different languages and how these ideas can enhance your coding in Python.
This episode is sponsored by Sentry.
Course Spotlight: Defining Python Constants for Code Maintainability
In this video course, you’ll learn how to properly define constants in Python. By coding a bunch of practical example, you’ll also learn how Python constants can improve your code’s readability, reusability, and maintainability.
Topics:
00:00:00 – Introduction 00:02:09 – What have you been up to? 00:03:31 – Exploring the Julia language 00:07:24 – Where do you see Julia being used? 00:10:17 – Cross pollination of languages 00:12:45 – Connecting with RelationalAI 00:16:33 – Sponsor: Sentry 00:17:42 – Digging into graph theory 00:21:54 – Edges as connections 00:24:55 – Defining terms 00:31:30 – Storing graph information 00:41:55 – Applications once the graph is built 00:49:07 – Video Course Spotlight 00:50:40 – Additional resources to learn more 00:53:59 – What are you excited about in the world of Python? 00:58:05 – What do you want to learn next? 01:00:25 – How can people follow your work online? 01:02:55 – Thanks and goodbyeShow Links:
RelationalAI - a knowledge graph coprocessor for your data cloud. The Julia Programming Language Talk Julia - YouTube Five Minutes To Julia. David Amos - Medium Member Link Five Minutes To Julia. David Amos - Medium Friend Link Getting Started with RelationalAI - RelationalAI Docs Example Notebooks - RelationalAI Docs The Hunt for the Missing Data Type - Hillel Wayne Introduction to Graph Theory: Richard J Trudeau The Fascinating World of Graph Theory: Arthur Benjamin, Gary Chartrand, Ping Zhang NetworkX — NetworkX documentation Embeddings and Vector Databases With ChromaDB – Real Python Episode #199: Leveraging Documents and Data to Create a Custom LLM Chatbot – The Real Python Podcast Graph Theory With Python - David’s YouTube Playlist David Amos (@somacdivad@hachyderm.io) - Hachyderm.io David Amos - LinkedIn David Amos – MediumLevel up your Python skills with our expert-led courses:
Using Jupyter Notebooks Defining Python Constants for Code Maintainability Python Basics: Setting Up PythonSupport the podcast & join our community of Pythonistas
Fri, 12 Jul 2024 - 212 - Python Doesn't Round Numbers the Way You Might Think
Does Python round numbers the same way you learned back in math class? You might be surprised by the default method Python uses and the variety of ways to round numbers in Python. Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher discusses his recent video course, “Rounding Numbers in Python.” He covers rounding bias and how to avoid introducing it into your dataset. We dig into the various rounding strategies and how to implement them in Python.
We also share several other articles and projects from the Python community, including a news roundup, a fast Python linter for error-free and maintainable code, the decline of the user interface, more thoughts on Python in Excel, a discussion about calendar versioning for Python, a financial database as a Python module, and a project to prettify the colors of your terminal user interfaces.
This episode is sponsored by Sentry.
Course Spotlight: Rounding Numbers in Python
In this video course, you’ll learn about the mistakes you might make when rounding numbers and how to best manage or avoid them. It’s a great place to start for the early to intermediate Python developer who’s interested in using Python for finance, data science, or scientific computing.
Topics:
00:00:00 – Introduction 00:02:06 – NumPy 2.0.0 Release Notes 00:02:52 – Python 3.13.0 beta 3 released 00:03:05 – Announcing the PSF Board Candidates for 2024! 00:03:27 – Prohibiting Outlook Email Domains 00:04:31 – Ruff: A Python Linter for Error-Free and Maintainable Code 00:09:31 – Sponsor: Sentry 00:10:35 – The Decline of the User Interface 00:19:14 – My Thoughts on Python in Excel 00:26:30 – Rounding Numbers in Python 00:30:53 – Video Course Spotlight 00:32:13 – PEP 2026: Calendar Versioning for Python 00:42:37 – Financial Database as a Python Module 00:45:34 – prettypretty: Build Awesome Terminal User Interfaces 00:47:48 – Thanks and goodbyeNews:
NumPy 2.0.0 Release Notes — NumPy v2.0 Manual – The long awaited 2.0 release of NumPy landed this week. Not all the docs are up to date yet, but this final draft of the release notes shows you what is included. Python Insider: Python 3.13.0 beta 3 released Python Software Foundation News: Announcing the PSF Board Candidates for 2024! Prohibiting Outlook Email Domains – Due to an inordinate amount of bot accounts coming from outlook.com and hotmail.com, PyPI has disallowed new account sign-ups with email addresses from these domains.Show Links:
Ruff: A Python Linter for Error-Free and Maintainable Code – Ruff is an extremely fast, modern linter with a simple interface, making it straightforward to use. It also aims to be a drop-in replacement for other linting and formatting tools, like Pylint, isort, and Black. It’s no surprise it’s quickly becoming one of the most popular Python linters. The Decline of the User Interface – “Software has never looked cooler, but user interface design and user experience have taken a sharp turn for the worse.” My Thoughts on Python in Excel – Microsoft’s new Python in Excel functionality was released almost a year ago. Having now had time to play with it, Felix gives his take. Rounding Numbers in Python – In this video course, you’ll learn about the mistakes you might make when rounding numbers and how to best manage or avoid them. It’s a great place to start for the early to intermediate Python developer who’s interested in using Python for finance, data science, or scientific computing.Discussion:
PEP 2026: Calendar Versioning for Python – This PEP proposes updating the versioning scheme for Python to include the calendar year. This aims to make the support lifecycle clear by making it easy to see when a version was first released, and easier to work out when it will reach end of life (EOL). Associated discussion Semantic Versioning 2.0.0 - Semantic Versioning Calendar Versioning — CalVerProjects:
FinanceDatabase: Financial Database as a Python Module prettypretty: Build Awesome Terminal User InterfacesAdditional Links:
The Humane Interface - Wikipedia Python Resources for working with Excel - Working with Excel Files in Python Episode #186: Exploring Python in Excel – The Real Python Podcast Cash rounding - WikipediaLevel up your Python skills with our expert-led courses:
Python Basics: Numbers and Math Rounding Numbers in Python Editing Excel Spreadsheets in Python With openpyxlSupport the podcast & join our community of Pythonistas
Fri, 05 Jul 2024 - 211 - Creating a Guitar Synthesizer & Generating WAV Files With Python
What techniques go into synthesizing a guitar sound in Python? What higher-level programming and Python concepts can you practice while building advanced projects? This week on the show, we talk with Real Python author and core team member Bartosz Zaczyński about his recent step-by-step project, Build a Guitar Synthesizer: Play Musical Tablature in Python.
Bartosz shares how he had built an early prototype of the guitar synth using a different language. He describes recreating the Karplus-Strong algorithm in Python to create the plucked guitar sounds. We discuss teaching advanced Python concepts while guiding readers through constructing a complete project.
We also dig into reading and writing WAV files in Python, using Spotify’s pedalboard library, implementing Poetry in a project, and designing a file format for guitar tablature.
This episode is sponsored by Mailtrap.
Course Spotlight: Playing and Recording Sound in Python
In this course, you’ll learn about libraries that can be used for playing and recording sound in Python, such as PyAudio and python-sounddevice. You’ll also see code snippets for playing and recording sound files and arrays, as well as for converting between different sound file formats.
Topics:
00:00:00 – Introduction 00:02:04 – Reading and writing WAV files in Python 00:04:48 – What did you want to learn about the topic? 00:08:02 – Finding new ways to explain Python concepts 00:09:52 – Turning audio into plots and visualizations 00:12:11 – Using Python for synthesis and the guitar synth project 00:13:19 – What is your music background? 00:18:36 – Sponsor: Mailtrap 00:19:11 – First prototype of the project 00:22:23 – What does the project cover? 00:25:08 – Audio examples of the output 00:26:31 – Digging into the algorithm 00:31:40 – Convolution reverb 00:34:15 – Physical modeling and pedalboard 00:38:08 – Video Course Spotlight 00:39:31 – What Python concepts are you practicing? 00:41:11 – Using Python poetry 00:43:00 – Why use YAML for the TAB files? 00:46:13 – What does it mean to be a polyglot programmer? 00:48:37 – Potential upcoming Real Python resources 00:52:10 – How can people follow your work online? 00:52:30 – What do you want to learn next? 00:54:56 – Thanks and goodbyeShow Links:
Build a Guitar Synthesizer: Play Musical Tablature in Python – Real Python Reading and Writing WAV Files in Python – Real Python Episode #200: Avoiding Error Culture and Getting Help Inside Python – The Real Python Podcast ActionScript - Wikipedia Apache Flex® - Home Page Too Many Zooz - Official Website Watch Reverb - Watch the Sound With Mark Ronson (Season 1, Episode 3) - Apple TV+ Longest Reverb In the World - Inchindown - YouTube Karplus–Strong string synthesis - Wikipedia Physical modeling synthesis - Wikipedia pedalboard: 🎛 🔊 A Python library for audio - Spotify Poetry - Python dependency management and packaging made easy Dependency Management With Python Poetry – Real Python YAML: The Missing Battery in Python – Real Python Guitar Tabs with Rhythm - Songsterr It Starts with Food - The Whole30® Program Bartosz Zaczyński - LinkedInLevel up your Python skills with our expert-led courses:
Simulating Real-World Processes in Python With SimPy Histogram Plotting in Python: NumPy, Matplotlib, Pandas & Seaborn Playing and Recording Sound in PythonSupport the podcast & join our community of Pythonistas
Fri, 28 Jun 2024 - 210 - Python's Command-Line Utilities & Music Information Retrieval Tools
What are the built-in Python modules that can work as useful command-line tools? How can these tools add more functionality to Windows machines? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares an article by Trey Hunner about Python’s extensive collection of command-line utilities? The piece digs into general-purpose tools that format JSON data or start a simple web server and additional utilities for working with your Python code from the terminal.
We cover a set of Jupyter Notebooks for teaching and learning the art of music processing and Music Information Retrieval (MIR). The notebooks are resources for working through the textbook, “Fundamentals of Music Processing: Audio, Analysis, Algorithms, Applications.”
We also share several other articles and projects from the Python community, including a news roundup, a discussion of CRUD operations, a description of Python’s built-in bytes sequence, favorite essays on development and programming, Python resources for working with Excel, and a project for creating finite state machines in Python.
This episode is sponsored by APILayer.
Course Spotlight: Binary, Bytes, and Bitwise Operators in Python
In this course, you’ll learn how to use Python’s bitwise operators to manipulate individual bits of data at the most granular level. With the help of hands-on examples, you’ll see how you can apply bitmasks and overload bitwise operators to control binary data in your code.
Topics:
00:00:00 – Introduction 00:02:21 – Python 3.12.4 Released 00:02:52 – Python 3.13.0 Beta 2 Released 00:03:01 – PEP 712 Rejected 00:04:18 – Django in Action - Mr. Trudeau’s Book has Launched! 00:06:23 – What Are CRUD Operations? 00:10:12 – Python’s Many Command-Line Utilities 00:14:04 – Sponsor: APILayer 00:14:55 – Notebooks for Fundamentals of Music Processing 00:22:55 – bytes: The Lesser-Known Python Built-in Sequence 00:26:57 – Video Course Spotlight 00:28:34 – Essays on Programming I Think About a Lot 00:41:28 – Python Resources for Working With Excel 00:46:13 – Python Finite State Machines Made Easy 00:50:10 – Thanks and goodbyeNews:
Python 3.12.4 Released – See the full list of changes in this release Python 3.13.0 Beta 2 Released PEP 712 Rejected – This Python Enhancement Proposal “Adding a ‘converter’ parameter todataclasses.field” was determined to have an insufficient number of use cases. Django in ActionShow Links:
What Are CRUD Operations? – CRUD operations are the cornerstone of application functionality. Whether you access a database or interact with a REST API, you usually want to create, retrieve, update, and delete data. In this tutorial, you’ll explore how CRUD operations work in practice. Python’s Many Command-Line Utilities – This article describes every command-line tool included with Python, each of which can be run withpython -m module_name. Notebooks for Fundamentals of Music Processing – This is a collection of Python Notebooks for teaching and learning the fundamentals of music processing. Examples include illustrations, sound samples, math, and more.bytes: The Lesser-Known Python Built-in Sequence – Thebytesdata type looks a bit like a string, but it isn’t a string. This article explores it and also looks at the main Unicode encoding, UTF-8Discussion:
Essays on Programming I Think About a Lot – A collection of essays on software from a variety of sources. Content includes how to choose your tech stack, products, abstractions, and more. Falsehoods programmers believe about time - Infinite Undo Falsehoods programmers believe about email Falsehoods programmers believe about geography – Thias の blog awesome-falsehood: 😱 Falsehoods Programmers Believe InProjects:
Python Resources for Working With Excel Python Finite State Machines Made EasyAdditional Links:
SQLite and SQLAlchemy in Python: Move Your Data Beyond Flat Files – Real Python Unicode in Python: Working With Character Encodings – Real Python Fundamentals of Music Processing - Editions of the Book Editing Excel Spreadsheets in Python With openpyxl – Real Python My thoughts on Python in Excel The Microsoft Excel superstars throw down in VegasLevel up your Python skills with our expert-led courses:
Playing and Recording Sound in Python Binary, Bytes, and Bitwise Operators in Python Unicode in Python: Working With Character EncodingsSupport the podcast & join our community of Pythonistas
Fri, 21 Jun 2024 - 209 - Detecting Outliers in Your Data With Python
How do you find the most interesting or suspicious points within your data? What libraries and techniques can you use to detect these anomalies with Python? This week on the show, we speak with author Brett Kennedy about his book “Outlier Detection in Python.”
Brett describes initially getting involved with detecting outliers in financial data. He discusses various applications and techniques in security, manufacturing, quality assurance, and fraud. We also dig into the concept of explainable AI and the differences between supervised and unsupervised learning.
This episode is sponsored by APILayer.
Course Spotlight: Using k-Nearest Neighbors (kNN) in Python
In this video course, you’ll learn all about the k-nearest neighbors (kNN) algorithm in Python, including how to implement kNN from scratch. Once you understand how kNN works, you’ll use scikit-learn to facilitate your coding process.
Topics:
00:00:00 – Introduction 00:01:56 – Describing the book 00:03:22 – How did you get involved in outlier detection? 00:06:50 – Initially looking at the data to spot errors 00:08:22 – Amount of fraud and financial errors 00:09:50 – Understanding the nature of the outliers 00:12:15 – Industries that would be interested in detection 00:18:21 – Sponsor: APILayer.com 00:19:15 – Who is the intended audience for the book? 00:22:16 – Differences between supervised vs unsupervised learning 00:25:48 – Autonomous vehicles detecting anomalous imagery 00:29:08 – What is explainable AI? 00:36:21 – Video Course Spotlight 00:37:43 – Detecting an outlier across multiple columns 00:44:32 – Detection of LLM and bot activity 00:49:49 – Proving you are a human checkbox 00:52:25 – What are Python libraries for outlier detection? 00:53:57 – Creating synthetic data to work through examples 00:57:10 – Tools developed and described in the book 01:01:29 – How to find the book 01:02:27 – What are you excited about in the world of Python? 01:04:55 – What do you want to learn next? 01:05:52 – How can people follow your work online? 01:06:16 – Thanks and goodbyeShow Links:
Outlier Detection in Python Episode #169: Improving Classification Models With XGBoost – The Real Python Podcast XGBoost Documentation — xgboost 1.7.6 documentation SHAP (SHapley Additive exPlanations) Documentation I’m a teacher and this is the simple way I can tell if students have used AI to cheat in their essays - Daily Mail Online pyod: A Comprehensive and Scalable Python Library for Outlier Detection (Anomaly Detection) DeepOD: Deep learning-based outlier/anomaly detection scikit-learn: machine learning in Python — scikit-learn 1.5.0 documentation DataConsistencyChecker: A Python tool to examine datasets for consistency Brett Kennedy - LinkedIn Brett-Kennedy - GitHubLevel up your Python skills with our expert-led courses:
Data Cleaning With pandas and NumPy Using k-Nearest Neighbors (kNN) in Python Starting With Linear Regression in PythonSupport the podcast & join our community of Pythonistas
Fri, 14 Jun 2024 - 208 - Decomposing Software Problems & Avoiding the Trap of Clever Code
How do you effectively break a software problem into individual steps? What are signs you’re writing overly clever code? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss an article about de-warping images of book pages. We both found the piece a good study on decomposing a complex software problem.
Christopher discusses an article titled “Clever code is probably the worst code you could write.” Early in a programming career, it’s easier to write complex and difficult-to-read code. The real challenge is progressing towards writing clearer and readable code.
We also share several other articles and projects from the Python community, including a news roundup, what the
__pycache__folder is for in Python, what’s new in Django 5.1, a discussion about software engineering hiring and firing, a project for setting up repeated tasks, and a simple way to create reusable template components in Django.This episode is sponsored by Sentry.
Course Spotlight: Efficient Iterations With Python Iterators and Iterables
In this video course, you’ll learn what iterators and iterables are in Python. You’ll learn how they differ and when to use them in your code. You’ll also learn how to create your own iterators and iterables to make data processing more efficient.
Topics:
00:00:00 – Introduction 00:02:18 – PEP 667: Consistent Views of Namespaces (Accepted) 00:03:08 – PEP 649 Re-targeted to 3.14 00:03:50 – Untold Stories From 6 Years Working on Python Packaging 00:04:38 – What Is the__pycache__Folder in Python? 00:09:57 – Sponsor: Sentry 00:11:04 – What’s New in Django 5.1 00:17:48 – Page Dewarping 00:26:55 – Video Course Spotlight 00:28:26 – Clever Code Is Probably the Worst Code You Could Write 00:33:19 – Software Engineering Hiring and Firing 00:51:22 – Metronomes: An Easy Way to Set Up Regular Tasks 00:52:26 – django-web-components: Create reusable template components in Django 00:54:03 – Thanks and goodbyeNews:
PEP 667: Consistent Views of Namespaces (Accepted) PEP 649 Re-targeted to 3.14 – Python Enhancement Proposal 649: Deferred Evaluation Of Annotations Using Descriptors has been re-targeted to the Python 3.14 release Untold Stories From 6 Years Working on Python Packaging – Sumana gave the closing keynote address at PyCon US this year and this posting shares all the links and references from the talk.Show Links:
What Is the__pycache__Folder in Python? – In this tutorial, you’ll explore Python’s__pycache__folder. You’ll learn about when and why the interpreter creates these folders, and you’ll customize their default behavior. Finally, you’ll take a look under the hood of the cached .pyc files. What’s New in Django 5.1 – Django 5.1 has gone alpha so the list of features targeting this release has more or less solidified. This article introduces you to what is coming in Django 5.1. Page Dewarping – This article shows the techniques behind a page flattening algorithm. It starts with images of a book’s page which are curled from the spine of the book, and creates a resulting PDF that is a flat version. Clever Code Is Probably the Worst Code You Could Write – When you come across a clever bit of code, it is hard not to admire it, but often times, clear, readable code is the hardest code to write.Discussion:
Software Engineering Hiring and Firing – This article is a deep dive on the hiring and firing practices in the software field, and unlike most articles focuses on senior engineering roles. It isn’t a “first job” post, but a “how the decision process works” article.Projects:
Metronomes: An Easy Way to Set Up Regular Tasks django-web-components: A simple way to create reusable template components in DjangoLevel up your Python skills with our expert-led courses:
Getting Started With Django: Building a Portfolio App Efficient Iterations With Python Iterators and Iterables For Loops in Python (Definite Iteration)Support the podcast & join our community of Pythonistas
Fri, 07 Jun 2024 - 207 - Building Python Unit Tests & Exploring a Data Visualization Gallery
How do you start adding unit tests to your Python code? Can the built-in unittest framework cover most or all of your needs? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We dig into a recent tutorial by Leodanis Pozo Ramos about writing unit tests using Python’s unittest. The tutorial covers organizing your tests, exploring assert methods, creating test fixtures, and debugging failing tests.
We explore a collection of Python data visualizations and tutorials from the Python Graph Gallery. The website features hundreds of charts and graphs built using popular plotting libraries. Each chart type features a foundational tutorial that introduces the structure and application.
We also share several other articles and projects from the Python community, including a news roundup, the new REPL coming in Python 3.13, a pytest daemon to 10X test iteration speed, a discussion about software friction, a Raspberry Pi document scanner, and a project for controlling time per iteration loop.
Course Spotlight: Building a Python GUI Application With Tkinter
In this video course, you’ll learn the basics of GUI programming with Tkinter, the de facto Python GUI framework. Master GUI programming concepts such as widgets, geometry managers, and event handlers. Then, put it all together by building two applications: a temperature converter and a text editor.
Topics:
00:00:00 - Introduction 00:02:08 - Python Software Foundation Board Election Dates for 2024 00:02:35 - 2023 PSF Annual Impact Report 00:03:03 - Python’sunittest: Writing Unit Tests for Your Code 00:09:41 - What’s New in Python 3.13 00:10:38 - The New REPL in Python 3.13 00:13:39 - Best Python Chart Examples 00:15:27 - Animation with text that highlights important events 00:16:39 - Sankey Diagram with Python and Plotly 00:18:55 - Video Course Spotlight 00:20:25 - Pytest Daemon: 10X Local Test Iteration Speed 00:23:58 - Software Friction 00:35:41 - A Raspberry Pi Document Scanner 00:39:00 - pacemaker: For Controlling Time Per Iteration Loop in Python 00:41:55 - Thanks and goodbyeNews:
Python Software Foundation Board Election Dates for 2024 2023 PSF Annual Impact ReportShow Links:
Python’sunittest: Writing Unit Tests for Your Code – In this tutorial, you’ll learn how to use the unittest framework to create unit tests for your Python code. Along the way, you’ll also learn how to create test cases, fixtures, test suites, and more. What’s New in Python 3.13 – Python 3.13 has gone into beta, which means the feature freeze is now in place. This is the official listing of the new features in 3.13. This release includes changes to the REPL, new typing features, experimental support for disabling the GIL, dead battery removal, and more. The New REPL in Python 3.13 – Python 3.13 just hit feature freeze with the first beta release, and it includes a host of improvements to the REPL. Automatic indenting, block-level editing, and more make the built-in REPL more powerful and easier to use. Best Python Chart Examples Animation with text that highlights important events - Python Graph Gallery Sankey Diagram with Python and Plotly - Python Graph Gallery Pytest Daemon: 10X Local Test Iteration Speed – Discord has a large Python monolith with lots of imports, which now takes 13 seconds to start up. On the server that’s not a problem but to run a test it is. Ruby’s solution is to have a daemon that hot loads a test on a process that already has the imports completed.Discussion:
Software Friction – Friction is everywhere in software development. Two setbacks are more than twice as bad as one setback. This article discusses the sources of software friction and what you can do about it.Projects:
A Raspberry Pi Document Scanner pacemaker: For Controlling Time Per Iteration Loop in PythonAdditional Links:
unittest — Unit testing framework — Python 3.12.3 documentation Testing with Python (part 1): the basics - Bite code! Sankey Diagrams – A Sankey diagram says more than 1000 pie charts tidytuesday: Official repo for the #tidytuesday project tidytuesday - dataset_announcements Chaos Monkey OpenCV: OpenCV modules How to Train Your RobotLevel up your Python skills with our expert-led courses:
Building a Python GUI Application With Tkinter Testing Your Code With pytest Creating PyQt Layouts for GUI ApplicationsSupport the podcast & join our community of Pythonistas
Fri, 31 May 2024 - 206 - Considering Accessibility & Assistive Tech as a Python Developer
What’s it like to learn Python as a visually impaired or blind developer? How can you improve the accessibility of your Python web applications and learn current guidelines? This week on the show, Real Python community member Audrey van Breederode discusses her programming journey, web accessibility, and assistive technology.
Audrey shares her background as a system administrator and instructor. While she was learning Python, she discovered Real Python. Audrey provided some feedback about the built-in video player’s accessibility. Dan reached out and worked with Audrey on some website improvements for the visually impaired.
We discuss navigating modern websites and using assistive technology. Audrey also provides resources Python developers can use to improve the accessibility of their applications.
Course Spotlight: HTML and CSS Foundations for Python Developers
There’s no way around HTML and CSS when you want to build web apps. Even if you’re not aiming to become a web developer, knowing the basics of HTML and CSS will help you understand the Web better. In this video course, you’ll get an introduction to HTML and CSS for Python programmers.
Topics:
00:00:00 – Introduction 00:03:12 – Work background 00:08:30 – Language for assistive tools and programming 00:10:30 – What led you to learning Python? 00:13:48 – Screen readers, braille display, and white space 00:17:22 – Discovering Real Python 00:22:41 – Accessibility survey and navigating websites 00:30:04 – Digging deeper into learning Python 00:35:42 – Video Course Spotlight 00:37:03 – Navigating changes in code 00:39:53 – Working with the terminal 00:42:14 – Accessibility of Python GUI libraries 00:44:22 – Django framework 00:47:11 – Screen readers and JAWS 00:53:19 – What are you excited about in the world of assistive technology? 00:57:03 – What are you excited about in the world of Python? 00:59:11 – What do you want to learn next? 01:00:09 – Thanks and goodbyeShow Links:
JAWS® – Freedom Scientific What is JAWS? - YouTube Retinal detachment - Wikipedia Focus 80 Blue 5th Gen – Freedom Scientific WebAIM: Screen Reader User Survey #10 Results Web Content Accessibility Guidelines (WCAG) 2.2 SecureCRT - The rock-solid Telnet and SSH client for Windows, macOS, and Linux P1 Monitor docker container for smart meters - Marcel Claassen Python Basics: Introduction to Python (Learning Path) – Real Python The web framework for perfectionists with deadlines - Django Surf’s Up! Surfing the Internet with JAWS NV Access - Download NVDA Picture Smart Challenges – Freedom ScientificLevel up your Python skills with our expert-led courses:
Getting Started With Django: Building a Portfolio App Python Basics: Dictionaries HTML and CSS Foundations for Python DevelopersSupport the podcast & join our community of Pythonistas
Fri, 17 May 2024 - 205 - Querying OpenStreetMaps via API & Lazy Evaluation in Python
Would you like to get more practice working with APIs in Python? How about exploring the globe using the data from OpenStreetMap? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We share an article from the Pybites blog about building queries using the Overpass API for OpenStreetMap. The post explores the data structures, tags, query formats, and how to use Overpass in Python.
Christopher discusses a Real Python article by recent guest Stephen Gruppetta about lazy evaluation in Python. The piece covers the advantages of generator expressions or functions and the potential disadvantages of using lazy versus eager evaluation methods.
We also share several other articles and projects from the Python community, including a news roundup, handling control-c in asyncio, preventing data leakage in pandas and scikit-learn, discussing the Django developer survey results, asking developers why they aren’t shipping faster, using UV to install into isolated environments, and a couple of tools for retrying in Python.
This episode is sponsored by Sentry.
Course Spotlight: How to Set Up a Django Project
In this course, you’ll learn the necessary steps that you’ll need to take to set up a new Django project. You’ll learn the basic setup for any new Django project, which needs to happen before programming the specific functionality of your project.
Topics:
00:00:00 – Introduction 00:02:33 – PyPy v7.3.16 Release 00:02:54 – PEP 745: Python 3.14 Release Schedule 00:03:31 – The BASIC programming language turns 60 00:05:24 – Asyncio Handle Control-C (SIGINT) 00:07:37 – OpenStreetMaps, Overpass API and Python 00:11:53 – What’s Lazy Evaluation in Python? 00:16:10 – Sponsor: Sentry 00:17:17 – How to Prevent Data Leakage in pandas & scikit-learn 00:24:09 – Django Developers Survey 2023 Results 00:33:07 – Video Course Spotlight 00:34:21 – I Asked 100 Devs Why They Aren’t Shipping Faster? 00:47:03 – pipxu: Install in Isolated Environments Using UV 00:49:05 – tenacity: Retrying Library for Python 00:50:04 – stamina: Production-Grade Retries for Python 00:52:00 – Thanks and goodbyeNews:
PyPy v7.3.16 Release PEP 745: Python 3.14 Release Schedule The BASIC programming language turns 60 - Ars TechnicaShow Links:
Asyncio Handle Control-C (SIGINT) – When the user presses CTRL-C on the keyboard, the OS raises an interrupt signal to your program. When writing concurrent code this can get complicated as the signal goes to the process. This article shows you how to handle capturing CTRL-C elegantly when usingasyncio. OpenStreetMaps, Overpass API and Python – OpenStreetMaps (OSM) is an open source mapping project that allows people to browse the world map and to plan routes. Not only does it have the expected web interface, but it also has an API known as Overpass. This article shows you two ways to use Python to query Overpass. What’s Lazy Evaluation in Python? – This tutorial explores lazy evaluation in Python and looks at the advantages and disadvantages of using lazy and eager evaluation methods. By the end of this tutorial, you’ll clearly understand which approach is best for you, depending on your needs. How to Prevent Data Leakage inpandas&scikit-learn– How you impute missing values in machine learning data sets can affect the quality of your training. This article teaches you what data leakage is and what steps you should take to avoid it.Discussion
Django Developers Survey 2023 Results I Asked 100 Devs Why They Aren’t Shipping Faster? – Daksh asked 100 developers why they aren’t shipping faster and this blog post shares what he learned. Problems include dependency bugs, overly complicated code bases, waiting on requirements, and more.Projects:
pipxu: Install in Isolated Environments Using UV tenacity: Retrying Library for Python stamina: Production-Grade Retries for PythonAdditional Links:
NASA’s Voyager 1 spacecraft finally phones home after 5 months of no contact - Space Python & APIs: A Winning Combo for Reading Public Data – Real Python Loading Data from OpenStreetMap with Python and the Overpass API - Nikolai Janakiev Leakage (machine learning) - Wikipedia Djangonaut Space - Where Contributors launch! Debris That Fell Off a Boeing 767 Found Outside the House of LawyerLevel up your Python skills with our expert-led courses:
Getting Started With Django: Building a Portfolio App Python Generators 101 How to Set Up a Django ProjectSupport the podcast & join our community of Pythonistas
Fri, 10 May 2024 - 204 - Embarking on a Relaxed and Friendly Python Coding Journey
Do you get stressed while trying to learn Python? Do you prefer to build small programs or projects as you continue your coding journey? This week on the show, Real Python author Stephen Gruppetta is here to talk about his new book, “The Python Coding Book.”
Stephen has been teaching Python to adults and children for many years. With his new book, he wants to share the relaxed and friendly learning environment he’s developed. We discuss using analogies to explain programming concepts and constructing complete programs as chapter goals.
Over the last year, Stephen focused on writing. He started his newsletter, The Python Coding Stack, wrote more tutorials for Real Python and authored the book.
This episode is sponsored by Mailtrap.
Course Spotlight: Python Basics: Code Your First Python Program
In this video course, you’ll write your first Python program. Along the way, you’ll learn about errors, declare variables and inspect their values, and try your hand at writing comments.
Topics:
00:00:00 – Introduction 00:02:32 – Education and programming background 00:05:50 – Developing a teaching style 00:10:36 – A friendly and relaxed programming book 00:14:31 – Making mistakes 00:18:29 – Sponsor: Mailtrap 00:19:03 – What was your curation process like? 00:21:22 – First chapter building an actual program 00:25:08 – Glossary terms and exercises 00:27:48 – Why feature an IDE? 00:34:07 – Monty and the White Room analogy 00:37:46 – What, no turtle? 00:42:21 – Video Course Spotlight 00:44:00 – Shift toward teaching 00:46:50 – Teaching adults and children 00:51:23 – Python sequences tutorial 00:53:48 – Building community and social media 00:58:12 – What are you excited about in the world of Python? 01:00:49 – What do you want to learn next? 01:03:07 – Thanks and goodbyeShow Links:
Learn Python Coding - The Python Coding Book Rambling Reflections - Twelve Months of The Python Coding Stack On Writing: A Memoir of the Craft - Stephen King - Wikipedia Episode #4: Learning Python Through Errors – The Real Python Podcast Build a Python Turtle Game: Space Invaders Clone – Real Python Python Sequences: A Comprehensive Guide – Real Python Django in Action The Python Coding Place – The Place to Learn Python Stephen Gruppetta (@s_gruppetta_ct) / XLevel up your Python skills with our expert-led courses:
Python Basics: Setting Up Python Python Turtle for Beginners Python Basics: Code Your First Python ProgramSupport the podcast & join our community of Pythonistas
Fri, 03 May 2024 - 203 - Pydantic Data Validation & Python Web Security Practices
How do you verify and validate the data coming into your Python web application? What tools and security best practices should you consider as a developer? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss the recent Real Python tutorial “Pydantic: Simplifying Data Validation in Python.” The piece covers installing the library with optional dependencies, working with base models, validating functions, and managing environment variables.
We continue our conversation about web development with another article about Python security best practices. This article covers several Python libraries and crucial steps you can take to help make your web-based applications more secure.
We also share several other articles and projects from the Python community, including a news roundup, why Python lists multiply oddly, inline run dependencies in pipx, a discussion about open-source contribution assignments, playing sounds in Python, and a Python library to access ISO country definitions.
This episode is sponsored by Mailtrap.
Course Spotlight: Using raise for Effective Exceptions
In this video course, you’ll learn how to raise exceptions in Python, which will improve your ability to efficiently handle errors and exceptional situations in your code. This way, you’ll write more reliable, robust, and maintainable code.
Topics:
00:00:00 – Introduction 00:02:40 – Python 3.12.3, Python 3.11.9, and 3.13.0a6 Released 00:03:43 – Django Bugfix Release Issued: 5.0.4 00:04:48 – PEP 738 Accepted: Adding Android as a Supported Platform 00:05:53 – EuroPython Tickets on Sale: Prague/Remote July 8-14 00:06:38 – PyCon Portugal 2024 00:07:17 – Pydantic: Simplifying Data Validation in Python 00:15:24 – Sponsor: Mailtrap 00:15:58 – Why Do Python Lists Multiply Oddly? 00:22:21 – Best Python Security Practices for Web Developers 00:34:13 – Video Course Spotlight 00:35:38 – Inline Run Dependencies inpipx1.4.2 00:40:16 – So Your Teacher Wants You to Do Open Source 00:54:49 – nava: Play Sounds in Python 00:56:25 – pycountry: A Python library to access ISO country definitions 00:58:18 – Thanks and goodbyeNews:
Python 3.12.3 and 3.13.0a6 Released Python 3.11.9 Released Django Bugfix Release Issued: 5.0.4 PEP 738 Accepted: Adding Android as a Supported Platform PEP 742 Accepted: Narrowing Types With TypeIs EuroPython Tickets on Sale: Prague/Remote July 8-14 PyCon Portugal 2024Show Links:
Pydantic: Simplifying Data Validation in Python – Discover the power of Pydantic, Python’s most popular data parsing, validation, and serialization library. In this hands-on tutorial, you’ll learn how to make your code more robust, trustworthy, and easier to debug with Pydantic. Why Do Python Lists Multiply Oddly? – In Python you can use the multiplication operator on sequences to return a repeated version of the value. When you do this with a list containing an empty list you get what might be unexpected behavior. This article explains what happens and why. Best Python Security Practices for Web Developers – Coding on the web means you have to be more security conscious as everyone has access to your software. This article discusses key steps you can take to help make your code more secure. Inline Run Dependencies inpipx1.4.2 – PEP 723 adds the ability to specify dependencies within a Python script itself. The folks who writepipxhave added an experimental feature that takes advantage of this future language change. This article shows you how the new feature looks and what pipx does with it. Install and Execute Python Applications Usingpipx– In this tutorial, you’ll learn about a tool called pipx, which lets you conveniently install and run Python packages as standalone command-line applications in isolated environments. In a way, pipx turns the Python Package Index (PyPI) into an app marketplace for Python programmers.Discussion:
So Your Teacher Wants You to Do Open Source – Sometimes teachers or mentors ask students to contribute to an open source project, without the context of what that entails. This opinion piece covers just how much noise that causes for the projects and why you shouldn’t do it unless you truly mean to contribute. 503 Days Working Full-Time on FOSS: Lessons Learned – For a year and a half, Rodrigo worked at Textualize the company behind the popular open source Python projects Rich and Textual. This blog post talks about what he learned while he was there.Projects:
nava: Play Sounds in Python pycountry: A Python library to access ISO country, subdivision, language, currency and script definitions and their translationsAdditional Links:
Pydantic François Fleuret on X: “2h of debugging. Whatever you say, that’s counter intuitive.” bandit: Security oriented static analyzer for Python code - PyPI Dependency Management With Python Poetry – Real Python OWASP Top Ten - OWASP Foundation pipx Governance - The Pallets Projects Textual How to Contribute to Open Source - Open Source Guides Djangonaut Space - Where contributors launch!Level up your Python skills with our expert-led courses:
Lists and Tuples in Python Using raise for Effective Exceptions Sorting Data in Python With pandasSupport the podcast & join our community of Pythonistas
Fri, 26 Apr 2024 - 202 - Decoupling Systems to Get Closer to the Data
What are the benefits of using a decoupled data processing system? How do you write reusable queries for a variety of backend data platforms? This week on the show, Phillip Cloud, the lead maintainer of Ibis, will discuss this portable Python dataframe library.
Phillip contrasts Ibis’s workflow with other Python dataframe libraries. We discuss how “getting close to the data” speeds things up and conserves memory.
He describes the different approaches Ibis provides for querying data and how to select a specific backend. We discuss ways to get started with the library and how to access example data sets to experiment with the platform.
Phillip discovered Ibis while looking for a tool that allowed him to reuse SQL queries written for a specific data platform on a different one. He recounts how he got involved with the Ibis project, sharing his background in open source and learning how to contribute to a first project.
This episode is sponsored by Mailtrap.
Course Spotlight: Creating Web Maps From Your Data With Python Folium
You’ll learn how to create web maps from data using Folium. The package combines Python’s data-wrangling strengths with the data-visualization power of the JavaScript library Leaflet. In this video course, you’ll create and style a choropleth world map showing the ecological footprint per country.
Topics:
00:00:00 – Introduction 00:02:18 – How did you get started with Ibis? 00:08:10 – First contribution to open source 00:13:46 – Comparing Ibis to other dataframe libraries 00:20:09 – Sponsor: Mailtrap 00:20:43 – What goes into the selection of backend? 00:27:07 – Database connections vs SQL compilers 00:30:03 – Raw SQL approach 00:34:06 – Dataframe approach 00:38:31 – What does “getting close to the data” mean? 00:41:52 – Video Course Spotlight 00:43:24 – Phillip in the cloud - YouTube channel 00:44:56 – Access to sample data sets 00:50:11 – Additional resources 00:52:50 – What are some of the backends Ibis supports? 00:54:13 – Entry points to the platform 00:55:00 – How are you supported? 00:57:10 – Exporting a SQL query 00:59:23 – What are you excited about in the world of Python? 01:04:28 – What do you want to learn next? 01:07:12 – How can people follow your work online? 01:08:00 – Thanks and goodbyeShow Links:
Ibis - the portable Python dataframe library The Leading Designer and Builder of Enterprise Data Systems - Voltron Data PEP 249 – Python Database API Specification v2.0 sqlglot: Python SQL Parser and Transpiler - GitHub Ibis – getting_started ibis-examples: A repository of runnable examples using ibis Ibis – Reference Documentation PyScript - Run Python in your HTML pixi - Prefix.dev uv: An extremely fast Python package installer and resolver, written in Rust PyCon US 2024 LearnCraft Spanish – Fluency for Serious Learners ibis: the portable Python dataframe library - GitHub Ibis – Blog Posts Phillip in the Cloud - YouTube Phillip Cloud (@cpcloudy) / X cpcloud (Phillip Cloud) · GitHubLevel up your Python skills with our expert-led courses:
Building Python Project Documentation With MkDocs Creating Web Maps From Your Data With Python Folium Using raise for Effective ExceptionsSupport the podcast & join our community of Pythonistas
Fri, 19 Apr 2024 - 201 - Avoiding Error Culture and Getting Help Inside Python
What is error culture, and how do you avoid it within your organization? How do you navigate alert and notification fatigue? Hey, it’s episode #200! Real Python’s editor-in-chief, Dan Bader, joins us this week to celebrate. Christopher Trudeau also returns to bring another batch of PyCoder’s Weekly articles and projects.
We discuss an article series about error culture. We dig into false positives, hero culture, and the tendency to start ignoring alerts. We contrast our personal experiences and propose possible remedies. Dan describes configuring Real Python’s alert system.
We also share several other articles and projects from the Python community, including a news roundup, reading and writing WAV files in Python, moving beyond flat files toward SQLite and SQLAlchemy, getting help in Python, exploring four kinds of optimization, a framework for building web scrapers, and a project to simply subprocesses.
This week’s episode is brought to you by Sentry.
Course Spotlight: SQLite and SQLAlchemy in Python: Move Your Data Beyond Flat Files
In this video course, you’ll learn how to store and retrieve data using Python, SQLite, and SQLAlchemy as well as with flat files. Using SQLite with Python brings with it the additional benefit of accessing data with SQL. By adding SQLAlchemy, you can work with data in terms of objects and methods.
Topics:
00:00:00 – Introduction 00:02:42 – PyPI Hiring a Support Specialist 00:03:19 – PyPI Temporarily Halted New Users and Projects 00:04:14 – What we know about the xz Utils backdoor 00:05:38 – CPython, PyPI, and the backdoor of xz 00:07:18 – Episode 200 appreciation and the journey 00:09:18 – A visit from Dan 00:14:14 – Reading and Writing WAV Files in Python 00:19:56 – Sponsor: Sentry 00:21:03 – SQLite and SQLAlchemy in Python 00:27:36 – Getting Help (In Python) 00:32:49 – Laurence Tratt: Four Kinds of Optimization 00:40:54 – Video Course Spotlight 00:42:26 – Discussion: Error Culture 00:58:03 – botasaurus: The All in One Framework to Build Awesome Scrapers 01:01:04 – suby: Slightly Simplified Subprocesses 01:02:50 – Thanks and goodbyeNews:
PyPI Hiring a Support Specialist (Remote) PyPI Temporarily Halted New Users and Projects – To fend off a supply-chain attack, PyPI temporarily halted new users and projects for about 10 hours last week. This article discusses why, and the scourge of supply-chain attacks. What we know about the xz Utils backdoor that almost infected the world - Ars Technica CPython, PyPI, and many Python packages are not affected by the backdoor of xz - Core Development - Discussions on Python.orgTopics:
Reading and Writing WAV Files in Python – In this tutorial, you’ll learn how to work with WAV audio files in Python using the standard-library wave module. Along the way, you’ll synthesize sounds from scratch, visualize waveforms in the time domain, animate real-time spectrograms, and apply special effects to widen the stereo field. SQLite and SQLAlchemy in Python: Beyond Flat Files – In this video course, you’ll learn how to store and retrieve data using Python, SQLite, and SQLAlchemy as well as with flat files. Using SQLite with Python brings with it the additional benefit of accessing data with SQL. By adding SQLAlchemy, you can work with data in terms of objects and methods. How SQLite Is Tested – The page describes how SQLite is rigorously tested using four test harnesses, fuzz testing, anomaly testing like crash and I/O error simulations, and other techniques to ensure reliability. Getting Help (In Python) – When trying to remember just wheresleep()was in the Python standard library, Ishaan stumbled through the built-in help and learned how to use it to answer just these kinds of questions. Laurence Tratt: Four Kinds of Optimization – “Premature optimization might be the root of all evil, but overdue optimization is the root of all frustration. No matter how fast hardware becomes, we find it easy to write programs which run too slow.” Read on to learn what to do about it.Discussion:
Error Culture Error Culture Part II Error Culture Part IIIProjects:
botasaurus: The All in One Framework to Build Awesome Scrapers suby: Slightly Simplified SubprocessesAdditional Links:
xkcd: Exploits of a Mom How SQLite Is Tested SettingWithCopyWarning in pandas: Views vs Copies – Real Python 99% Invisible - Mini-Stories: Volume 4Level up your Python skills with our expert-led courses:
Playing and Recording Sound in Python Exploring Scopes and Closures in Python SQLite and SQLAlchemy in Python: Move Your Data Beyond Flat FilesSupport the podcast & join our community of Pythonistas
Fri, 12 Apr 2024
Podcasts semelhantes a The Real Python Podcast
El Partidazo de COPE COPE
Herrera en COPE COPE
La Linterna COPE
Panda Show - Sin Picante El Panda Zambrano
Es la Mañana de Federico esRadio
La noche de Cuesta esRadio
La Trinchera de Llamas esRadio
Hondelatte Raconte Europe 1
Affaires sensibles France Inter
LEGEND Guillaume Pley
El colegio invisible OndaCero
La Rosa de los Vientos OndaCero
Les grands dossiers de l'Histoire par Franck Ferrand Radio Classique
Entrez dans l'Histoire RTL
Les Grosses Têtes RTL
Les histoires incroyables de Pierre Bellemare RTL
L'Heure Du Crime RTL
Parlons-nous RTL
El Larguero SER Podcast
Nadie Sabe Nada SER Podcast
SER Historia SER Podcast
Todo Concostrina SER Podcast
Un Libro Una Hora SER Podcast
HISTORIAS DE LA HISTORIA VIVA RADIO
