Filtrer par genre
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.
- 314 - Python 3.15: Exploring the New Features
Python 3.15 is (almost*) here! Christopher Trudeau and Bartosz Zaczyński return to discuss the new version. Bartosz coordinated the series of preview articles with members of the Real Python team and wrote the showcase tutorial, “Python 3.15: Cool New Features for You to Try.” Christopher’s video course “What’s New in Python 3.15” covers the topics from the article and shows the new features in action.
Christopher and Bartosz dug into the release to create code examples of the new features for the tutorial and course. We cover the new built-in types, unpacking in comprehensions, and developer experience enhancements. We also look into the performance improvements, including lazy imports, the upgraded JIT compiler, and a new sampling profiler.
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.15.
Course Spotlight: What’s New in Python 3.15
Explore the new features in Python 3.15, including lazy imports, frozendict, sentinel values, a sampling profiler, and a faster JIT.
Topics:
00:00:00 – Introduction 00:00:02 – * NOTE: Python 3.15 release delayed! 00:03:35 – Real Python 3.15 Preview Articles and Video Course 00:04:40 – Sentinel Values 00:08:55 – Lazy Imports 00:14:48 – Unpacking in Comprehensions 00:17:12 – Mathematical functions 00:20:07 – Sampling Profiler 00:27:43 – Video Course Spotlight 00:29:18 – frozendict 00:33:12 – The speed round of features 00:36:04 – Continued work on free-threaded Python and upgrading the JIT 00:39:34 – Upgrading to 3.15 00:44:35 – Thanks and goodbyeShow Links:
* Python 3.15: following tradition, let’s have a surprise rc3! - Core Development - Discussions on Python.org Python 3.15: Cool New Features for You to Try – Real Python Python 3.15 Preview: Sentinel Values – Real Python Python 3.15 Preview: Lazy Imports – Real Python Unpacking in Comprehensions -What’s new in Python 3.15 — Python 3.15 documentation math — Mathematical functions — Python 3.15 documentation Python 3.15 Preview: Sampling Profiler PEP 799 – A dedicated profiling package for organizing Python profiling tools Python 3.15 Preview: frozendict PEP 814 – Add frozendict built-in type More color - What’s new in Python 3.15 Improved error messages - What’s new in Python 3.15 Python 3.15 Preview: UTF-8 by Default PEP 803: Stable ABI for free-threaded builds - What’s new in Python 3.15 Python 3.15 Preview: Upgraded JIT CompilerAdditional Links:
PEP 810 – Explicit lazy imports Implement native PEP 0810 lazy loading by hebaalazzeh - google-cloud-python PEP 798 – Unpacking in Comprehensions PEP 448 – Additional Unpacking Generalizations Tachyon: Python 3.15’s sampling profiler is faster…- Pablo Galindo Salgado, Laszlo Kiss Kollar - YouTube The amazing and varied life of Tachyon particles in Star Trek TNG - YouTube Episode #128: Using a Memory Profiler in Python & What It Can Teach You Episode #172: Measuring Multiple Facets of Python Performance With Scalene Upgraded experimental JIT compiler - What’s new in Python 3.15 What’s new in Python 3.15 — Python 3.15 documentationLevel up your Python skills with our expert-led courses:
Understanding Python List Comprehensions What's New in Python 3.14 What's New in Python 3.15Support the podcast & join our community of Pythonistas
Fri, 02 Oct 2026 - 313 - Navigating AI in Open Source: Insights From Wagtail
How should you manage AI contributions to an open-source project? How do you measure the impact of using AI tools for development, and what generative features do end users want from a content management system? This week on the show, we speak with Thibaud Colas and Meagen Voss from Wagtail about the complex considerations software organizations are currently facing.
Meagen is the Wagtail community manager, and Thibaud is a member of the core team. We discuss the impact of AI on a popular open-source project. We reference multiple articles they’ve written about managing these challenges.
We dig into wrangling AI-assisted contributions to the project. They share how they research options for open-weight AI models and inference providers. We also discuss building AI features into the Wagtail CMS. Finally, we touch on the recent release of Wagtail 8.0.
Course Spotlight: Using the Claude API in Python
Learn how to use the Claude API in Python to send prompts, control responses with system instructions, and get structured output.
Topics:
00:00:00 – Introduction 00:01:49 – What is Wagtail? 00:08:35 – Flood of AI submissions to open-source projects 00:11:38 – Guidance for AI-led contributions 00:20:43 – Security submissions 00:21:56 – Ethical decisions about internal use of AI 00:26:31 – Resurgence of web sites 00:27:41 – Measuring benefits and performance 00:32:49 – Models understanding your framework 00:38:05 – Video Course Spotlight 00:39:42 – Adding AI features to Wagtail for creators 00:48:47 – Balancing the use of AI internally and the cost of inference 00:55:29 – Advice for other open-source projects 01:00:00 – Wagtail 8.0 01:02:10 – What are you excited about in the world of Python? 01:04:10 – What do you want to learn next? 01:05:56 – How can people follow your work online? 01:06:43 – Thanks and goodbyeShow Links:
Wagtail CMS - Django Content Management System Wagtail Space 2026 - Wagtail CMS Showcase - Wagtail CMS Guidance for AI-led contributions - Wagtail CMS What I learned from two days of hanging out with AI experts - Wagtail CMS AI saved me 10 minutes on a blog post: Was it worth it? - Wagtail CMS What AI tools get right and wrong with Wagtail - Wagtail CMS Comparing open weight AI models and providers - Wagtail CMS AI in the CMS: steering the ecosystem - Wagtail CMS The carbon footprint of Wagtail AI - Wagtail CMS Open source AI we use to work on Wagtail - Wagtail CMS Results of the 2026 Wagtail DX with AI survey - Wagtail CMS open-code-review: Secure, fast, efficient, battle-tested - hybrid architecture code review tool CMS with AI, not AI CMS: Wagtail 8.0’s new API Roadmap - Wagtail CMS Executive Director Search Extended to September 22 - Django Weblog git-worktree Documentation Wagtail newsletter Meagen Voss (@vossisboss@fosstodon.org) - Fosstodon Thibaud Colas (@thibaudcolas@fosstodon.org) - FosstodonLevel up your Python skills with our expert-led courses:
How to Set Up a Django Project Getting Started With Google Gemini CLI Using the Claude API in PythonSupport the podcast & join our community of Pythonistas
Fri, 25 Sep 2026 - 312 - Django Developers Survey Results & Reproducible Python Builds
What are the latest trends uncovered in the 2026 Django Developers Survey? How are Django users employing LLMs in their development process? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
We discuss a summary by Will Vincent about this year’s Django Developers Survey. The survey draws on responses from nearly 3,500 developers across more than 40 countries. It provides a look at how developers are adapting to AI workflows and which tools they’re embracing.
We dig into a post from Brett Cannon about reproducible builds in Python. It covers the importance of creating an independently verifiable, repeatable build of CPython and other associated tools. The post explains why Python isn’t there yet and outlines the direction of the work still needed.
We also share other articles and projects from the Python community, including recent releases, upcoming PSF elections, Polars vs SQL differences nobody is talking about, creating Django unsubscribe links without a Login, a library to make measurement units easier through Pydantic, and a tool to convert
if-elsecode tomatchstatements.This episode is sponsored by Six Feet Up.
Video Course Spotlight: How to Get Started With Ollama
Learn how to install Ollama, pull local models, and connect them to your Python code using the chat and text generation interfaces.
Topics:
00:00:00 – Introduction 00:02:46 – Python 3.15.0 candidate 2 is here! 00:03:10 – Django 6.1.1 release notes 00:03:20 – Wagtail 8.0 release notes 00:04:27 – RISC-V Is Now Officially Supported by CPython 00:05:19 – PEP 843: Export Statement for DRY Re-Exports 00:06:27 – 2026 PSF Board Election Interviews 00:07:07 – Up and Running with Rust Course 00:07:56 – Guido Comment on PEP 805: Safe Parallel Python 00:09:56 – The Polars vs SQL Differences Nobody Is Talking About 00:16:55 – Sponsor: Six Feet Up 00:17:50 – Unsubscribe Links Without a Login: Django Signing 00:20:56 – What’s Missing to Have Reproducible Builds on PyPI 00:27:09 – Video Course Spotlight 00:28:44 – The Python Community’s Institutional Response to the Astral Acquisition Has Begun 00:29:57 – The State of Django 2026: Boring Is So Back 00:40:13 – matchify: Convertsif-elseCode tomatchStatements 00:43:14 – pydantic-pint: Pydantic Pint Quantities 00:45:16 – Thanks and goodbye - Submit topics to PyCoders LinkNews:
Python 3.15.0 candidate 2 is here! - Python Insider Django 6.1.1 release notes - Django documentation CMS With AI, Not AI CMS: Wagtail 8.0’s New API – Wagtail 8 includes a new API built on Django Ninja and Pydantic, to automate common admin tasks with and without agents. 50+ operations derived from projects’ existing Python/Django code, mimicking the admin panel but via endpoints and an official CLI. Wagtail 8.0 release notes — Wagtail Documentation 8.0 documentation RISC-V Is Now Officially Supported by CPython PEP 843: Export Statement for DRY Re-Exports (Draft) PEP 842: Module Exports (Withdrawn) 2026 PSF Board Election Interviews – This is a collection of interviews of the various candidates running for the Python Software Foundation Board. Many of the posts also include links to AMA sessions. Python Software Foundation News: The 2026 PSF Board Election is Open! Python Software Foundation News: Inaugural Python Packaging Council Election: Voting is now open! Up and Running with Rust Course Guido Comment on PEP 805: Safe Parallel PythonShow Links:
The Polars vs SQL Differences Nobody Is Talking About – Some problems can be attacked with either SQL or Polars, but subtle differences in how the two mechanisms work can run you into trouble. Learn more about these potential gotchas. Unsubscribe Links Without a Login: Django Signing – Django has a signing module that makes it easy to build an unsubscribe link that works with no login and no session:token = signing.dumps(recipient.pk, salt=UNSUBSCRIBE_SALT). The token itself is the credential, and it ships with Django out of the box. What’s Missing to Have Reproducible Builds on PyPI – A reproducible build is a way of creating an independently verifiable, repeatable build of CPython and other associated tools. This post explains why Python isn’t there yet and why it is important. The Python Community’s Institutional Response to the Astral Acquisition Has Begun – Brett Cannon posted on discuss.python.org (March 23): a PEP is coming, thepython/prebuilt-cpythonrepo already exists, and the PSF has been building an official prebuilt relocatable CPython distribution since October 2025. Covers what’s actually being built, what it means for uv/ruff/python-build-standalone, and why the Astral upstream patches and PSF alternative aren’t in conflict. The State of Django 2026: Boring Is So Back – A summary of this year’s State of Django report which draws on responses from nearly 3,500 developers across more than 40 countries: from students in their first year to veterans with decades of experience.Projects:
matchify: Convertsif-elseCode tomatchStatements pydantic-pint: Pydantic Pint QuantitiesAdditional Links:
Episode #224: Narwhals: Expanding DataFrame Compatibility Between Libraries Mastering DuckDB when you’re used to pandas or Polars Episode #297: Improving Python Through PEPs and Protocols PEP 770 – Improving measurability of Python packages with Software Bill-of-Materials Phantom Dependencies: is your requirements.txt haunted? - Seth Michael Larson - YouTube prebuilt-cpython - GitHub </> htmx - high power tools for html Pint: makes units easy — pint 0.25.3rc1.dev1+g5e79411e1 documentation Exploring Astrophysics in Python With pandas and Matplotlib – Real Python PyCoder’s Weekly - Submit a LinkLevel up your Python skills with our expert-led courses:
Exploring Astrophysics in Python With pandas and Matplotlib Connecting LLMs to Your Data With Python MCP Servers How to Get Started With OllamaSupport the podcast & join our community of Pythonistas
Fri, 11 Sep 2026 - 311 - Performance Engineering: Profiling and Making Apps Fast by Default
How do you plan for the performance of your Python applications? What does a performance budget entail, and where should you spend your resources? This week on the show, we speak with Den Odell about his new book “Fast by Default: Practical Performance Engineering.”
Den has 25 years of experience in building web systems for companies with hundreds of millions of users. Working on public-facing tools has honed his skills in understanding where performance is vital and in guiding decisions based on data from actual users.
Den shares details of his performance framework that works across any platform or stack. We discuss the need for budgeting performance during the planning phase, measuring performance through consistent profiling, and keeping systems fast even as your codebase and user base grow.
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:39 – Modern systems run across multiple languages 00:03:52 – What lead you toward performance engineering? 00:12:54 – Frameworks and balancing performance against developer experience 00:17:45 – Measuring performance and profiling 00:24:28 – What is Fast by Default? 00:36:34 – Video Course Spotlight 00:38:16 – Breaking into the methodology 00:42:10 – Performance budget 00:48:27 – End user pain points 00:51:21 – Microservices and monoliths 00:54:01 – Performance questionnaire 01:00:31 – What is easier about performance planning upfront? 01:01:50 – Discoveries during the writing process 01:07:01 – Do LLMs write performant code? 01:12:37 – What are you excited about in the world of Python? 01:13:41 – What do you want to learn next? 01:15:02 – How can people follow your work online? 01:15:43 – Thanks and goodbyeShow Links:
Fast by Default - Den Odell - Manning Discount Link Fast by Default Constraints and the Lost Art of Optimization - Den Odell Python 3.15 Preview: Sampling Profiler Tachyon: High frequency statistical sampling profile Profiling in Python: How to Find Performance Bottlenecks Episode #128: Using a Memory Profiler in Python & What It Can Teach You Episode #172: Measuring Multiple Facets of Python Performance With Scalene Running Python code in a sandbox with MicroPython and WASM Syntorial: The Ultimate Synthesizer Course Den Odell - LinkedIn Den Odell – Author. Staff Web Engineer.Level up your Python skills with our expert-led courses:
Speed Up Python With Concurrency Profiling Performance in Python Testing Your Code With Python's unittestSupport the podcast & join our community of Pythonistas
Fri, 04 Sep 2026 - 310 - Exploring Complex Systems & Maintainable Data Science Pipelines
What are the key characteristics of complex systems, and what are practical patterns for tackling complex coding problems? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
Christopher covers an article about working on complex systems. The piece explores the distinction between complicated and complex problems. Each requires a fundamentally different approach to solve.
We dig into a couple of tutorials about creating repeatable data science pipelines. One covers validating DataFrames and tables with the pointblank library to build into a continuous integration workflow. The other explores how to use configuration files to build modular pipelines that avoid the pitfalls of hardcoded paths and parameters.
We also share other articles and projects from the Python community, including recent releases, three Python Enhancement Proposals (PEPs), the difficulties with breaking up lines of text, a static site generator for marimo notebooks, and a static analyzer for malicious Python code.
Course Spotlight: Sending Emails Using Python
Learn how to send emails with Python using SMTP and smtplib, attach files, format HTML messages, and personalize bulk emails.
Topics:
00:00:00 – Introduction 00:02:24 – Python 3.12.14, 3.11.16 and 3.10.21 Released 00:03:02 – Django Is Moving to an Annual Release Cycle 00:04:17 – PEP 828: Supporting ‘Yield From’ in Asynchronous Generators 00:04:56 – PEP 841: Adding Frozen Syntax to Optimize Immutable Types 00:07:04 – PEP 844:publicandprivateBuiltins 00:10:09 – Validating Data With Pointblank in Python 00:18:22 – Working on Complex Systems: Patterns I Learned at Google 00:22:14 – Video Course Spotlight 00:23:58 – Hydra for Python Configuration: Build Modular and Maintainable Pipelines 00:29:29 – Breaking Up (Lines) Is Hard to Do 00:35:00 – marimo-book: Static Site Generator formarimoNotebooks 00:38:06 – marimo-lsp: A language server and VS Code extension for marimo 00:38:31 – hexora: Static analysis of malicious Python code 00:40:01 – Thanks and goodbyeNews:
Python 3.12.14, 3.11.16 and 3.10.21 Released Django Is Moving to an Annual Release Cycle PEP 828: Supporting ‘Yield From’ in Asynchronous Generators (Accepted) PEP 841: Adding Frozen Syntax to Optimize Immutable Types (Draft) PEP 844:publicandprivateBuiltins (Draft)Show Links:
Validating Data With Pointblank in Python – Learn how to validate data in Python with Pointblank: declare quality checks, split clean from failing rows, and rerun validation plans from YAML. Working on Complex Systems: Patterns I Learned at Google – Explore the key characteristics of complex systems and learn practical patterns for tackling complex problems The Coder Cafe - Teiva Harsanyi – The Coder Cafe introduces vital software engineering concepts that will upgrade your day-to-day practice, regardless of your skill level. Discount Code (CODERCAFE40) Expires November 21st 2026. Hydra for Python Configuration: Build Modular and Maintainable Pipelines – Hardcoded paths and parameters can quickly drift out of sync across a data science project’s scripts. This article shows how to move them into Hydra configuration files, access values with dot notation, override settings from the command line, swap entire configuration groups, and run experiment sweeps with a single multi-run flag. Breaking Up (Lines) Is Hard to Do – Here’s a seemingly simple question: given a chunk of multi-line text, how do you split it and return an array? Unicode makes everything harder than it might first seem.Projects:
marimo-book: Static Site Generator formarimoNotebooks marimo-lsp: A language server and VS Code extension for marimo hexora: Static analysis of malicious Python codeAdditional Links:
pointblank - PyPI Episode #274: Preparing Data Science Projects for Production With Khuyen Tran marimo-book DartBrains - How can we understand how the brain works? marimo - Visual Studio MarketplaceLevel up your Python skills with our expert-led courses:
Getting Started With marimo Notebooks Managing Imports With Python's all Sending Emails Using PythonSupport the podcast & join our community of Pythonistas
Fri, 28 Aug 2026 - 309 - Navigating Silent Failures in AI: Strategies for Effective Oversight
Why do AI systems silently fail? How can you set up a system that produces results while also reviewing and validating the work? This week on the show, Calvin Hendryx-Parker returns to discuss his recent talk “Orchestrate Agentic AI: Context, Checklists, and No-Miss Reviews.”
Calvin describes how silent failures can occur when handing a large document to an LLM for parsing. He describes it as the tragedy of context, where the LLM is confident, but you have no idea what it didn’t read. We discuss issues with file formats, dropped attachments, and silent truncation.
Calvin shares the example project from his talk, which includes Markdown files for the agents, hooks, skills, and scripts. He also discusses a variety of coding agents, skill frameworks, and CLI tools.
Course Spotlight: Coding With OpenCode: AI-Assisted Python
Learn how to use OpenCode for AI-assisted Python coding, using a free Gemini API key to analyze and refactor code right in your terminal.
Topics:
00:00:00 – Introduction 00:02:19 – Co-hosting Python Bytes 00:03:43 – Why AI Fails Silently talk 00:11:07 – Digging into silent failures and an audit trail 00:18:44 – How would you define hooks? 00:20:48 – Document extraction, embeddings, and Cowork 00:30:38 – Stripping the noise from file formats 00:34:43 – Things that are now baked into models 00:45:53 – Video Course Spotlight 00:47:23 – Leveraging agents to pick models 00:51:44 – GitHub repo for the project 00:54:57 – The current market around tokens 01:00:12 – What are you excited about in the world of Python? 01:03:02 – What do you want to learn next? 01:04:21 – The content the LLMs are trained on 01:07:36 – Upcoming events 01:08:38 – Thanks and goodbyeShow Links:
Why AI Fails Silently and How to Fix It Claude Cowork - Claude by Anthropic List of All Oblique Strategies - Matt Rickard Pi Coding Agent goose - Your open source AI agent Codex CLI - ChatGPT Learn 2026 All Things Open AI: Orchestrate Agentic AI: Context, Checklists, and No-Miss Reviews - GitHub scaf: A template manager that simplifies bootstrapping and updating projects. Tau - Learn how coding agents are built. superpowers: An agentic skills framework & software development methodology that works. Hermes Agent — Open-Source AI Agent That Grows With You PyOhio 2026 - PyOhio 2026 AWS re:Invent 2026 - Nov 30-Dec 4, Las Vegas Python Bytes - Python News Podcast beats the hell out of me - painfully - YouTubeLevel up your Python skills with our expert-led courses:
Getting Started With Claude Code Use Codex CLI to Enhance Your Python Projects Coding With OpenCode: AI-Assisted PythonSupport the podcast & join our community of Pythonistas
Fri, 21 Aug 2026 - 308 - Improving NumPy Performance on Free-Threaded Python
What bottlenecks were preventing NumPy from scaling on free-threaded Python? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
Christopher shares a recent article on the work done in NumPy to make multi-threaded workloads scale on the free-threaded build of CPython. It covers how removing the Global Interpreter Lock (GIL) is not enough on its own and how profiling revealed hidden bottlenecks in NumPy and CPython.
We also share other articles and projects from the Python community, including recent releases, a pair of announcements from PyPI, a tool for crawling your Django project, SIMD in pure Python, managing wildcard imports, a publication-quality Python Data Visualization library, and a tool to review your Django schema.
Spotlight: Modern Object-Oriented Python Book
Master classes, Python’s data model, and object-oriented design with Modern Object-Oriented Python. The best of Real Python’s OOP tutorials, curated into one book and fully up to date for modern Python.
Topics:
00:00:00 – Introduction 00:02:26 – Python 3.15.0 candidate 1 is here! 00:02:47 – Python 3.14.7 and 3.13.15 are now available! 00:03:00 – Django 6.1 released 00:03:39 – Planned Updates to the PyPI User Interface 00:04:13 – PyPI Releases Now Reject New Files After 14 Days 00:05:07 – PEP 837 – Extensible JSON serialization 00:06:20 – PEP 842: Module Exports 00:07:51 – Introducingdjango-crawl00:12:02 – SIMD in Pure Python 00:18:29 – Managing Imports With Python’s__all__00:29:34 – Spotlight: Modern Object-Oriented Python Book 00:30:53 – Scaling NumPy on Free-Threaded Python 00:37:53 – cnsplots: Python Data Visualization for Complex Datasets 00:42:19 – django-orm-lens: Django Schema Review 00:45:14 – Thanks and goodbyeNews:
Python 3.15.0 candidate 1 is here! - Python Insider Python 3.14.7 and 3.13.15 are now available! - Python Insider Django 6.1 released - Weblog - Django Planned Updates to the PyPI User Interface – Over the next few months a new user interface will be rolled out for the Python packaging website, PyPI. The rollout will be done in phases to make sure it is rock solid and to get community feedback. This post talks about the history of PyPI’s UI and what is changing. PyPI Releases Now Reject New Files After 14 Days – “The Python Package Index (PyPI) now rejects new files being uploaded to releases that are older than 14 days. This restriction was put in place to prevent old and long-stable releases from being poisoned” PEP 837 – Extensible JSON serialization PEP 842: Module ExportsShow Links:
Introducingdjango-crawl– During a recent site migration, Adam used the Django test harness to crawl his site looking for missing security headers. In the process he uncovered seven other bugs for a project that had 100% code coverage. He has consolidated the crawling technique for testing into a library:django-crawl. SIMD in Pure Python – SIMD is Single Instruction, Multiple Data, an approach that does calculations with vectors of data sets. Python doesn’t support it natively, but libraries like NumPy allow you to code this way. Thoughts on “SIMD in Pure Python” - purplesyringa’s blog Managing Imports With Python’s__all__– Learn how Python’s dunder all variable controls wildcard imports and shapes the public API your packages and modules expose. Scaling NumPy on Free-Threaded Python – A recap on the work done in NumPy and CPython to make multi-threaded NumPy workloads scale on the free-threaded build of CPython.Projects:
cnsplots: Python Data Visualization for Complex Datasets django-orm-lens: Django Schema ReviewAdditional Links:
What’s up Python?__json__,__export__and Astral stuff Episode #97: Improving Your Django and Python Developer Experience Python’s__all__: Packages, Modules, and Wildcard Imports – Tutorial Quiz: Managing Imports With Python’s__all__Smoke - The Amazing Hamster, Storing Food - YouTube Modern Object-Oriented Python Book – Real PythonLevel up your Python skills with our expert-led courses:
Python Modules and Packages: An Introduction NumPy Techniques and Practical Examples Managing Imports With Python's allSupport the podcast & join our community of Pythonistas
Fri, 14 Aug 2026 - 307 - Programmatically Developing LLM Prompts With DSPy
How can you move from manually writing prompts for an LLM application toward defining them programmatically? This week on the show, Brett Kennedy returns to discuss his new book “Building LLM Applications with DSPy.”
With large language models becoming embedded in production software, manual prompt engineering becomes brittle, time-consuming, and difficult to maintain. Brett shares how DSPy replaces manually writing and adjusting prompts with structured prompt programming.
We dig into how DSPy uses declarative signatures to define inputs and outputs. We also discuss how developers programmatically compile, tune, and optimize prompts for specific LLM-based tasks within an application.
Course Spotlight: Using LlamaIndex for RAG in Python
Learn how to set up LlamaIndex, load your data, build and persist an index, and run queries to get grounded answers with RAG in Python.
Topics:
00:00:00 – Introduction 00:01:50 – Working on a new book 00:02:53 – Writing with a partner 00:04:16 – Building LLM Applications with DSPy 00:05:22 – What is DSPy? 00:06:58 – Working with signatures and typing 00:09:53 – Prompt engineering failing to work for a new model 00:13:43 – What is an optimizer? 00:19:04 – Moving toward a new level of abstraction in prompting 00:23:19 – Prompts for the LLM within a consumer facing application 00:28:26 – Video Course Spotlight 00:30:21 – Example of using with RAG 00:38:45 – Example of a business plan tool 00:43:06 – The Bitter Lesson 00:46:03 – Structure of the book 00:49:55 – Advice on starting with DSPy 00:54:15 – Example of a transformed prompt 00:59:37 – What are you excited about in the world of Python? 01:01:47 – What do you want to learn next? 01:04:11 – What’s the best way to follow your work online? 01:04:40 – Thanks and goodbyeShow Links:
Building LLM Applications with DSPy - Serj Smorodinsky and Brett Kennedy DSPy DSPy: The framework for programming—not prompting—language models - GitHub Tutorials Overview - DSPy GEPA optimization - DSPy Let the LLM Write the Prompts: An Intro to DSPy in Compound AI Pipelines - YouTube Episode #208: Detecting Outliers in Your Data With Python Tabular Models Benchmark: Performance Across 19 Datasets 2026 Brett Kennedy on Manning Serj Smorodinsky on Manning W Brett Kennedy – Medium Brett Kennedy - LinkedInLevel up your Python skills with our expert-led courses:
Building Type-Safe LLM Agents With Pydantic AI Accessing Multiple AI Models With the OpenRouter API Using LlamaIndex for RAG in PythonSupport the podcast & join our community of Pythonistas
Fri, 07 Aug 2026 - 306 - Should You Understand Your Entire Python Codebase?
Should you understand the entirety of your codebase? How familiar are you with Python’s built-in functions? 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 Sean Goedecke titled “In Defense of Not Understanding Your Codebase.” We dig into the differences in the scale of software projects and the factors that can obscure understanding of an entire codebase. We cover how opinions and practices people often argue for are based on the development practices from decades ago.
Christopher shares his recent video course that explores Python’s built-in functions. The course is divided into sections to help you find the right built-in for tasks involving math, data types, iterables, and I/O. We discuss which of these functions are frequently used in our code.
We also share other articles and projects from the Python community, including recent releases, querying with f-expressions in Django, replacing
if-elsechains, a Rust-based replacement for Python’sjsonmodule, and a couple of Python cheat sheet resources.This episode is sponsored by HydraDB.
Course Spotlight: Exploring Python’s Built-in Functions
Learn Python’s built-in functions for math, data types, iterables, and I/O, and when to use each to write more Pythonic code.
Topics:
00:00:00 – Introduction 00:02:29 – Christopher’s Python News Song 00:03:18 – Python 3.15.0 Beta 4 Released 00:03:39 – PEP 838: Addingpython-versiontopyvenv.cfg00:04:59 – PEP 840: Name Resolution in Class Namespaces 00:06:42 – Stop Usingif-elseChains 00:13:46 – Sponsor: HydraDB 00:14:44 – Nifty Django Feature: F Expressions 00:20:23 – In Defense of Not Understanding Your Codebase 00:34:13 – Exploring Python’s Built-in Functions 00:45:26 – Video Course Spotlight 00:46:57 – Python strftime/strptime Directive Cheat Sheet 00:50:22 – Itertools Cheatsheet 00:52:59 – Introducingdjango-orjson00:55:33 – Thanks and goodbyeNews:
Python 3.15.0 Beta 4 Released PEP 838: Addingpython-versiontopyvenv.cfg(Added) PEP 840: Name Resolution in Class Namespaces (Added)Show Links:
Stop Usingif-elseChains – Learn a cleaner, more extensible way to dispatch logic in Python using dictionaries and function pointers instead of long if-else chains. Nifty Django Feature: F Expressions – Django’s F-Expression provides a way of querying fields from the ORM. They’re particularly handy to traverse relationships in more complex queries. F() Expressions - Django Documentation In Defense of Not Understanding Your Codebase – In this opinion piece, Sean argues that there is a difference in the thought process between maintaining smaller software projects vs larger ones, and that the former is over represented in engineering discussion in the internet. Exploring Python’s Built-in Functions – Learn Python’s built-in functions for math, data types, iterables, and I/O, and when to use each to write more Pythonic code.Projects:
Python strftime/strptime Directive Cheat Sheet Itertools Cheatsheet – Cheatsheet with visual diagrams that explain how the iterables from itertools work. Introducingdjango-orjson–orjsonis a Rust-based replacement for Python’sjsonmodule. So what would Adam Johnson do with it? Make it easier to use in Django of course. orjson: Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy django-orjson documentationAdditional Links:
Primer on Python Decorators - Registering Plugins Python Built-in Functions: A Complete Guide Python Cheat Sheet – Real Python What’s in which Python - Ned BatchelderLevel up your Python skills with our expert-led courses:
Using Python's datetime Module Python Basics: Conditional Logic and Control Flow Exploring Python's Built-in FunctionsSupport the podcast & join our community of Pythonistas
Fri, 31 Jul 2026 - 305 - Configuring a Versatile LLM Harness & Scraping the Web With Scrapy
Which is more important, the model or the “harness” around an LLM? What are ways to assemble an efficient agentic developer workflow? This week on the show, Ayan Pahwa joins us to discuss harnessing, web scraping, and self-hosting Python applications.
Ayan is a developer advocate at Zyte and an experienced project builder. We discuss a recent article he wrote about creating an extension for the web scraping tool Scrapy. He also digs into his self-hosting setup for Python applications and tools.
Our discussion extends to the complexities of developing effective harnesses. Ayan shares his setup and how he navigated shifting from prompt engineering to context and loop engineering.
This episode is sponsored by HydraDB.
Course Spotlight: Introduction to Web Scraping With Python
In this video course, you’ll learn all about web scraping in Python. You’ll see how to parse data from websites and interact with HTML forms using tools such as Beautiful Soup and MechanicalSoup.
Topics:
00:00:00 – Introduction 00:02:01 – Scrapy and building an extension 00:08:46 – Zyte and the web scraping API 00:11:19 – Sponsor: HydraDB 00:12:22 – noalgotube project 00:15:49 – Homelab & self hosting projects 00:22:19 – What goes into a harness? 00:32:33 – Where did you start exploring LLM tools? 00:36:13 – Local models & edge computing 00:39:31 – ExtractPod and discussing Apple’s AI 00:43:35 – Video Course Spotlight 00:44:54 – Managing token use and tools 00:52:37 – What are you excited about in the world of Python? 00:55:10 – What do you want to learn next? 00:56:38 – What is the best way to follow your work online? 00:56:58 – Thanks and goodbyeShow Links:
How to build your first Scrapy extension Web Scraping API - All-in-one Web Scraper - Zyte API Web Scraping With Scrapy and MongoDB – Real Python noalgotube: I Built My Own YouTube Feed Because the Algorithm Stopped Working for Me - CodeNSolder noalgotube: A personal content aggregator for YouTube channels and blog RSS feeds Why homelab? Building a proper self-hosted setup from scratch - CodeNSolder OPNsense: Open source, feature rich firewall and routing platform, offering cutting-edge network protection Proxmox - Powerful open-source server solutions Pi-hole – Network-wide Ad Blocking omni-tools: Self-hosted collection of powerful web-based tools for everyday tasks Frigate NVR Harness Engineering, part 1: What is an agent harness and why it matters My agentic coding setup: Claude Code, multi-agent orchestration, and how I actually work ExtractPod EP07 - AI Harnesses, our model usage and a Scottish dinner staple. - YouTube OpenCode - The open source AI coding agent OpenRouter Gemma 4 — Google DeepMind LM Studio Bionic - Agent for Open Models GLM-5.2: Built for Long-Horizon Tasks caveman: 🪨 why use many token when few token do trick — Claude Code skill ponytail: Makes your AI agent think like the laziest senior dev in the room Episode #301: Running Python Locally in a Sandbox Aillio – Bullet R2 - Coffee Roaster CodeNSolder Ayan Pahwa - Zyte HydraDBLevel up your Python skills with our expert-led courses:
Introduction to Web Scraping With Python Getting Started With Claude Code Testing MCP Servers With a Python MCP ClientSupport the podcast & join our community of Pythonistas
Fri, 24 Jul 2026 - 304 - Free-Threaded Python's History & uv in Production
How many attempts have been made to remove Python’s Global Interpreter Lock (GIL)? How do they compare to the current approach? 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 Thomas Wouters’ talk at PyCon US 2026. The talk, titled “Free-threaded Python: past, present, and future,” covers the efforts to remove the GIL starting in 1996. He explains that threads are complex, but they allow multiple tasks to run concurrently within a single process and its address space.
The GIL is how CPython implements threading. The GIL protects Python objects and their reference counts, which determine the current objects in use. The talk also looks forward and shares the current work to remove the GIL, now named free-threaded Python, and the goals for the near future.
We also share other articles and projects from the Python community, including community announcements, a roundup of recent Real Python tutorials and video courses, using
uvin Production, employing Wagtail as Django admin on steroids, managing and measuring Python code quality, a pure-Python implementation ofjq, and a project to bring interactivity to plotnine.This episode is sponsored by AURI by Endor Labs
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:03:08 – PEP 836: JIT Go Brrr: The Path to a Supported JIT Compiler for CPython 00:04:34 – PyCon US 2026 Videos Are Up 00:04:53 – Thinking About Running for the PSF Board? Let’s Talk! 00:05:30 – How to Get Started With the GitHub Copilot CLI 00:06:27 – Python 3.15 Preview: Upgraded JIT Compiler 00:07:23 – Testing MCP Servers With a Python MCP Client 00:08:10 – How to Use GitHub 00:08:50 – Why I Wrote PEP 832: Virtual Environment Discovery 00:09:46 – Free-Threaded Python: Past, Present, and Future 00:16:51 – Sponsor: AURI by EndorLabs 00:17:38 –uvin Production: The Speed Is Real, the Integration Isn’t Free 00:26:18 – Wagtail as Django Admin on Steroids 00:29:52 – Video Course Spotlight 00:31:11 – Managing and Measuring Python Code Quality 00:43:10 – purejq: A Pure-Python Implementation ofjq00:46:41 – ninejs: Bringing ✨interactivity✨ to plotnine 00:49:15 – Thanks and goodbyeNews:
PEP 836: JIT Go Brrr: The Path to a Supported JIT Compiler for CPython (Draft) The Path to a Supported JIT Compiler for CPython PyCon US 2026 Videos Are Up Thinking About Running for the PSF Board? Let’s Talk! – The Python Software Foundation Board has announced two office-hour sessions dedicated to giving information on running for the PSF Board. If you’re thinking of running in the upcoming election, these sessions can help you understand the ins and outs.Real Python News:
How to Get Started With the GitHub Copilot CLI – Tutorial Managing and Measuring Python Code Quality – Video CoursePython 3.15 Preview: Upgraded JIT Compiler – Tutorial Testing MCP Servers With a Python MCP Client – Video Course How to Use GitHub – Real PythonShow Links:
Why I Wrote PEP 832: Virtual Environment Discovery – PEP 832 proposes a way to describe where your virtual environment is so that your tools can look in the right place. Although a relatively simple proposal it has caused some contention in the community. This post by Brett, the PEP’s author, describes his reasoning. Free-Threaded Python: Past, Present, and Future – This post summarizes a talk by core developer Thomas Wouters at PyCon US 2026 on Free-threaded Python: the attempt to remove the GIL. It describes why it is being done and what future work looks like. Free threaded Python past, present and future - YouTubeuvin Production: The Speed Is Real, the Integration Isn’t Free – Oleg’s work moved their tooling frompiptouvand lived with it for ~90 days. They discovered that the speed is real, but that doesn’t mean there aren’t complications. Wagtail as Django Admin on Steroids – Wagtail can do pretty much everything the Django Admin can do, but includes a much more modern UI and more features. This article shows you how to use Wagtail as an Admin alternative. Managing and Measuring Python Code Quality – Master Python code quality tools like linters, formatters, type checkers, and profilers to measure, manage, and improve the code you write. Python Code Quality: Best Practices and Tools – Real PythonProjects:
purejq: A Pure-Python Implementation ofjqninejs: Bringing ✨interactivity✨ to plotnine ninejs - DocumentationAdditional Links:
Episode #297: Improving Python Through PEPs and Protocols PEP 766 PEP 8 – Style Guide for Python Code | peps.python.org How to Write Beautiful Python Code With PEP 8 AURI for Developers - AI-Native AppSec Platform - Endor LabsLevel up your Python skills with our expert-led courses:
Threading in Python Thread Safety in Python: Locks and Other Techniques Testing MCP Servers With a Python MCP ClientSupport the podcast & join our community of Pythonistas
Fri, 17 Jul 2026 - 303 - Constructing and Judging Modern Agentic Workflows
How can you improve your LLM agent systems through specification enrichment? What are the advantages of having an LLM act as a judge within an agent system? This week on the show, Senior IEEE Member and Quality Engineer Suneet Malhotra joins us to discuss building and evaluating agentic architecture.
Suneet Malhotra is an independent practitioner-researcher with 18 years of experience in Quality Engineering (QE) and test automation for consumer-scale platforms. He discusses building specification-enrichment loops, monitoring performance, and using Cohen’s kappa to measure agreement between LLM judgments.
Suneet is currently publishing multiple papers that are under peer review on these topics. He also provides links to his work and GitHub projects if you want to experiment with these concepts and methods yourself.
Quick Survey: Get more out of the podcast show notes
Video Course Spotlight: Testing MCP Servers With a Python MCP Client
Learn how to build a Python MCP client that tests MCP servers from your terminal. List their tools, prompts, and resources, then call each one.
Topics:
00:00:00 – Introduction 00:00:56 – Survey: RP Podcast show notes 00:02:11 – How did you get into testing? 00:05:04 – Has working for large public-facing corporations changed how you approach testing? 00:07:06 – Writing a paper on LLM-as-Judge 00:09:22 – Looking across the Software Development Lifecycle 00:14:46 – Agentic AI: theater vs methodology 00:17:23 – Specification enrichment 00:27:52 – Video Course Spotlight 00:29:18 – Saving the specifications 00:31:27 – Using the LLM as a judge & Cohen’s kappa 00:39:31 – How can people try out the project? 00:43:35 – What are some of the failure modes you’ve seen? 00:50:26 – What’s an inexpensive way to try these ideas out? 00:54:04 – What are you excited about in the world of Python? 00:56:14 – What do you want to learn next? 00:57:14 – How can people follow your work online? 00:57:32 – Thanks and goodbyeShow Links:
Suneet Malhotra - AI-Driven Quality Engineering Leader SuneetMalhotra - GitHub Suneet Malhotra - ORCID Cross-Layer Observability for LLM-Assisted Test Automation — Reference Implementation and Evaluation Data - Zenodo Specification Enrichment v28 (EISEJ submission) — Reference implementation and empirical evaluation - Zenodo Visual Oracle Bench — Two-Judge Synthetic-HTML Pilot for LLM-as-Judge Visual Regression Detection with Specificity Reporting - Zenodo Cohen’s kappa - Wikipedia Suneet Malhotra - LinkedIn Survey: Get more out of every Real Python Podcast episodeLevel up your Python skills with our expert-led courses:
Improving Your Tests With the Python Mock Object Library Building Type-Safe LLM Agents With Pydantic AI Testing MCP Servers With a Python MCP ClientSupport the podcast & join our community of Pythonistas
Fri, 10 Jul 2026 - 302 - Running Python Locally in a Sandbox
How do you avoid the risk of running a Python application locally that could be malicious, break your code, or leak private data? How can you create a sandboxed local environment using WASM and MicroPython? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
We cover a recent article by previous guest Simon Willison titled “Running Python code in a sandbox with MicroPython and WASM.” Simon has been experimenting for years on how to run Python code in a sandbox to reduce the risk of trying out new software, untrusted libraries, and wild ideas. He’s developed a solution using WASM and MicroPython and is sharing it as an alpha package on PyPI.
We also share other articles and projects from the Python community, including new releases, community announcements, a roundup of recent Real Python tutorials and video courses, a plugin case study using Pluggy, a look at whether you’re expected to run five type-checkers now, wrapping programs using the subprocess module, a project for star charts and maps, and a tool for trend detection in Python.
This episode is sponsored by DataDriven.
Spotlight: Codex for Python Developers: Hands-On Agentic Coding Course
Most Python developers use AI as fancy autocomplete. This 2-day live course teaches you to build entire projects with Codex, an AI agent that works inside your codebase.
Topics:
00:00:00 – Introduction 00:02:48 – PSF Board Election Dates for 2026 00:03:28 – Python 3.15.0 beta 3 is here! 00:03:58 – PEP 835: Shorthand Syntax for Annotated Type Metadata 00:05:13 – Announcing the Search for a DSF Executive Director 00:05:53 – Django 6.1 beta 1 released 00:06:24 – PyData London 26 Videos Released 00:06:50 – Implementing Interfaces in Python: ABCs and Protocols 00:07:36 – Building Python Skills for the Job Market 00:08:21 – Context Engineering for Python Codebases 00:09:14 – Python for Data Analysis: A Practical Guide 00:09:47 – Using LlamaIndex for RAG in Python 00:10:07 – Django Tasks: Exploring the Built-in Tasks Framework 00:10:59 – Plugins Case Study: Pluggy 00:15:10 – Sponsor: DataDriven 00:15:57 – Pyodide 314.0 Release 00:18:54 – Python in a Sandbox With MicroPython and WASM 00:22:35 – The subprocess Module: Wrapping Programs With Python 00:30:08 – Spotlight: Codex for Python Developers 00:31:51 – Are You Expected to Run 5 Type-Checkers Now? 00:39:41 – starplot: ✨ Star charts and maps in Python 00:42:01 – marimo-tutorials: Collection of Marimo Tutorials 00:42:48 – pytrendy: Trend Detection in Python 00:44:35 – Thanks and goodbyeNews:
PSF Board Election Dates for 2026 Python 3.15.0 beta 3 is here! - Python Insider PEP 835: Shorthand Syntax for Annotated Type Metadata (Added) Announcing the Search for a DSF Executive Director Django 6.1 beta 1 released - Django Weblog PyData London 26 Videos ReleasedReal Python News:
Implementing Interfaces in Python: ABCs and Protocols Building Python Skills for the Job Market Context Engineering for Python Codebases Python for Data Analysis: A Practical Guide Using LlamaIndex for RAG in Python Django Tasks: Exploring the Built-in Tasks FrameworkTopics:
Plugins Case Study: Pluggy – Pluggy is an open source plugin system used by frameworks such as pytest and tox. This article introduces you to how it works and what you can do with it. Pyodide 314.0 Release – This post announces the Pyodide 314.0 release and describes its features, including a focus on standardization and packaging. You can now build Pyodide wheels and post them to PyPI. Python in a Sandbox With MicroPython and WASM – Simon’s been in search of the perfect code sandbox. This article is about his latest attempt and covers why he wants a sandbox and what tech he’s used to achieve it. The subprocess Module: Wrapping Programs With Python – Python’ssubprocessmodule allows you to run shell commands and manage external processes directly from your Python code. By usingsubprocess, you can execute shell commands likelsordir, launch applications, and handle both input and output streams. Are You Expected to Run 5 Type-Checkers Now? – Library maintainers may feel overwhelmed by the plurality of type checkers that exist. We offer some guidance on how to focus their efforts where they matter most.Projects:
starplot: ✨ Star charts and maps in Python marimo-tutorials: Collection of Marimo Tutorials pytrendy: Trend Detection in PythonAdditional Links:
Episode #226: PySheets: Spreadsheets in the Browser Using PyScript Datasette: An open source multi-tool for exploring and publishing data Exploring Astrophysics in Python With pandas and Matplotlib Using Astropy for Astronomy With Python Investigating Quasar Data With Polars and Interactive marimo Notebooks JupyterLite — JupyterLite 0.8.0 documentation DataDriven - Data Engineer Interview Practice ProblemsLevel up your Python skills with our expert-led courses:
Using Astropy for Astronomy With Python Using LlamaIndex for RAG in Python Building Python Skills for the Job MarketSupport the podcast & join our community of Pythonistas
Fri, 03 Jul 2026 - 301 - Maintaining Your Python Developer Instincts While Using LLM Tools
Do you feel like your Python skills are atrophying after using LLM coding tools? How do you add the right kind of friction into your coding routine to keep your developer instincts sharp? 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 previous guest Bob Belderbos about developers keeping their instincts when AI is writing the code. He stresses the importance of the right kind of friction for maintaining skills and scheduling a deliberate coding practice routine.
We also share other articles and projects from the Python community, including new releases, a roundup of recent Real Python tutorials and video courses, sending emails with Python, libraries to enhance your Python Polars workflows, exploring Django Integrity-Policy, a next-generation HTTP client for Python, and a project to detect lazy imports incompatibilities.
This episode is sponsored by AURI by Endor Labs
Course Spotlight: Accessing Multiple AI Models With the OpenRouter API
Access models from popular AI providers in Python through OpenRouter’s unified API with smart routing, fallbacks, and cost controls.
Topics:
00:00:00 – Introduction 00:02:53 – Python 3.14.6, 3.13.14, and 3.15.0b2 Released 00:03:20 – Django Security Releases Issued: 6.0.6 and 5.2.15 00:03:35 – PyPy v7.3.23 Released 00:04:25 – Python sleep(): How to Add Time Delays to Your Code 00:04:59 – Structuring Your Python Script 00:05:36 – How to Use GitHub Copilot Code Review in Pull Requests 00:06:13 – Accessing Multiple AI Models With the OpenRouter API 00:07:25 – Cursor vs Windsurf: Which AI Code Editor Is Best for Python? 00:08:28 – Sending Emails With Python 00:16:31 – Sponsor:AURI from Endor Labs 00:17:17 – Announcing Polars 1.41 00:19:43 – Libraries for Your Python Polars Workflows 00:23:42 – Django: Introducing Django-Integrity-Policy 00:28:39 – Video Course Spotlight 00:30:21 – Keep Your Developer Instincts When AI Writes the Code 00:39:58 – Lifeguard: Detect Lazy Imports Incompatibilities 00:42:46 – httpx2: A Next Generation HTTP Client for Python 00:45:34 – Thanks and goodbyeNews:
Python 3.14.6 and 3.13.14 Released Python 3.15.0b2 Released Django Security Releases Issued: 6.0.6 and 5.2.15 PyPy v7.3.23 ReleasedReal Python News:
Python sleep(): How to Add Time Delays to Your Code - Tutorial Structuring Your Python Script - Video Course How to Use GitHub Copilot Code Review in Pull Requests – Tutorial Accessing Multiple AI Models With the OpenRouter API – Video Course Cursor vs Windsurf: Which AI Code Editor Is Best for Python? – TutorialShow Links:
Sending Emails With Python – Learn how to send emails with Python using SMTP, attach files, format HTML messages, and personalize bulk emails for your contact list. Announcing Polars 1.41 – Polars 1.41 is out and this post covers the new features it includes. Learn about faster parquet metadata decoding, nested subplan elimination, and more. Libraries for Your Python Polars Workflows – Four excellent libraries for your data science workflow with support for Polars DataFrames Django: Introducing Django-Integrity-Policy – Recently, browsers have added support for the new Integrity-Policy response header (Firefox 145+, Chrome 138+). Adam quickly went to work to build a library that enables your Django project to take advantage of the feature. How to Keep Your Developer Instincts When AI Writes the Code – The promise was less friction. The cost, it turns out, is instinct, a high price to pay. Bob’s answer: add deliberate practice to your routine, and keep the struggle.Projects:
Lifeguard: Detect Lazy Imports Incompatibilities httpx2: A Next Generation HTTP Client for PythonAdditional Links:
OpenRouter Episode #214: Build Captivating Display Tables in Python With Great Tables Using ggplot in Python: Visualizing Data With plotnine – Tutorial Learning Rust Made Me a Better Python Developer HTTPXYZ AURI for Developers - AI-Native AppSec Platform - Endor LabsLevel up your Python skills with our expert-led courses:
Graph Your Data With Python and ggplot Structuring Your Python Script Accessing Multiple AI Models With the OpenRouter APISupport the podcast & join our community of Pythonistas
Fri, 26 Jun 2026 - 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:
Building Command Line Interfaces With argparse Structuring Your Python Script Accessing Multiple AI Models With the OpenRouter APISupport 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:
Writing Beautiful Pythonic Code With PEP 8 uv vs pip: Python Packaging and Dependency Management Tapping Into the Zen of PythonSupport 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:
Using Pydantic to Simplify Python Data Validation Getting Started With Claude Code Building Type-Safe LLM Agents With Pydantic AISupport 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:
Graph Your Data With Python and ggplot Efficient Iterations With Python Iterators and Iterables Use Codex CLI to Enhance Your Python ProjectsSupport 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:
Getting Started With marimo Notebooks Investigating Quasar Data With Polars and Interactive marimo Notebooks Getting Started With Claude CodeSupport 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:
NumPy Techniques and Practical Examples Thread Safety in Python: Locks and Other Techniques 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:
Getting Started With Claude Code Getting Started With Google Gemini CLI Vector Databases and Embeddings With ChromaDBSupport 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 Getting Started With marimo Notebooks Investigating Quasar Data With Polars and Interactive 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:
Context Managers and Using Python's with Statement Creating Asynchronous Tasks With Celery and Django Modern Python Linting With RuffSupport 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:
Python Basics: Code Your First Python Program Getting Started With Claude Code Write Python Docstrings EffectivelySupport 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:
Testing Your Code With pytest Using Python's assert to Debug and Test Your Code Improving Your Tests With the Python Mock Object LibrarySupport 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 Tips for Using the AI Coding Editor Cursor Getting Started With Google Gemini CLISupport 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:
Introduction to Git and GitHub for Python How to Set Up a Django Project Python Continuous Integration and Deployment Using GitHub ActionsSupport 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 Jinja Templating Creating a Scalable Flask Web Application From ScratchSupport 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 NumPy Techniques and Practical Examples Using Functional Programming in PythonSupport 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:
Building a Neural Network & Making Predictions With Python AI First Steps With LangChain Getting Started With Claude CodeSupport 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:
NumPy Techniques and Practical Examples Profiling Performance in Python 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:
Speed Up Python With Concurrency Python REST APIs With FastAPI Python DescriptorsSupport 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:
Design and Guidance: Object-Oriented Programming in Python Modern Python Linting With Ruff 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:
Speed Up Python With Concurrency Deploy Your Python Script on the Web With Flask 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:
Documenting Python Projects With Sphinx and Read the Docs Building a Python GUI Application With Tkinter 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:
Python Basics: Code Your First Python Program Python Deep Learning: PyTorch vs Tensorflow Building a Python GUI Application With TkinterSupport 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.12 What's New in Python 3.13 What's New in Python 3.14Support 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:
Graph Your Data With Python and ggplot Exploring Astrophysics in Python With pandas and Matplotlib Using Astropy for Astronomy With PythonSupport 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:
Interacting With REST APIs and Python Using Pydantic to Simplify Python Data Validation A History of Python Versions and FeaturesSupport 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 Exploring Python Closures: Examples and Use Cases A History of Python Versions and FeaturesSupport 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:
Stacks and Queues: Selecting the Ideal Data Structure Data Cleaning With pandas and NumPy 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 Inheritance and Internals: Object-Oriented Programming in Python Single and Double Underscore Naming Conventions 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:
Graph Your Data With Python and ggplot Working With Python Polars 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:
Testing Your Code With pytest Using Python's assert to Debug and Test Your Code Working With Python's Built-in ExceptionsSupport 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() Building Enumerations With Python's enum Sorting Dictionaries in Python: Keys, Values, and MoreSupport 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:
Data Visualization Interfaces in Python With Dash Defining Python Functions With Optional Arguments 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:
Django Admin Customization SQLite and SQLAlchemy in Python: Move Your Data Beyond Flat Files Execute Your Python Scripts With a ShebangSupport 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:
Managing Dependencies With Python Poetry First Steps With LangChain Python Continuous Integration and Deployment Using GitHub ActionsSupport 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:
Testing Your Code With pytest Python mmap: Doing File I/O With Memory Mapping Python Continuous Integration and Deployment Using GitHub ActionsSupport 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 Python Basics Exercises: Installing Packages With pip Thread Safety in Python: Locks and Other TechniquesSupport 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 How to Set Up a Django Project Sneaky REST APIs With Django NinjaSupport 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:
Everyday Project Packaging With pyproject.toml Python Basics Exercises: Installing Packages With pip 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:
Python Basics: Installing Packages With pip Creating a Scalable Flask Web Application From Scratch 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:
Debugging in Python With pdb Python Assignment Expressions and Using the Walrus Operator Creating a Python Dice Roll ApplicationSupport 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:
Python Decorators 101 Python's map() Function: Transforming Iterables Efficient Iterations With Python Iterators and IterablesSupport 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 Publishing Python Packages to PyPI Working With Python PolarsSupport 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:
Testing Your Code With pytest Everyday Project Packaging With pyproject.toml 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:
Test-Driven Development With pytest Regular Expressions and Building Regexes in Python 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:
Writing Beautiful Pythonic Code With PEP 8 Python Basics: Installing Packages With pip Python Basics Exercises: Installing Packages With pipSupport 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 Plotting With Matplotlib Testing Your Code With pytest Python mmap: Doing File I/O With Memory MappingSupport 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:
Absolute vs Relative Imports in Python Building HTTP APIs With Django REST Framework Advanced Python import TechniquesSupport 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 Exploring Scopes and Closures in Python Managing Dependencies With Python PoetrySupport 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:
Using raise for Effective Exceptions Python Basics Exercises: Scopes Handling or Preventing Errors in Python: LBYL vs EAFPSupport 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:
Learn Text Classification With Python and Keras Data Cleaning With pandas and NumPy 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:
Writing Beautiful Pythonic Code With PEP 8 Navigating Namespaces and Scope in Python Writing Idiomatic PythonSupport 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:
Using Jupyter Notebooks Python Decorators 101 Navigating Namespaces and Scope in PythonSupport 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:
Using pandas to Make a Gradebook in Python The pandas DataFrame: Working With Data Efficiently Building Python Project Documentation With MkDocsSupport 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:
Python Type Checking Using Pydantic to Simplify Python Data Validation 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:
Python Plotting With Matplotlib Understanding Python's Global Interpreter Lock (GIL) What's New in Python 3.13Support 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:
How to Set Up a Django Project Building a Site Connectivity Checker 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:
The pandas DataFrame: Working With Data Efficiently pandas GroupBy: Grouping Real World Data in Python What's New in Python 3.13Support 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:
Python Type Checking What's New in Python 3.12 What's New in Python 3.13Support 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 HTML and CSS Foundations for Python Developers Build a GUI Calculator With PyQt and PythonSupport 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:
How Python Manages Memory Python mmap: Doing File I/O With Memory Mapping Caching in Python With lru_cacheSupport 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:
Sorting Dictionaries in Python: Keys, Values, and More Exploring Astrophysics in Python With pandas and Matplotlib Using Astropy for Astronomy With PythonSupport 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:
Debugging in Python With pdb Using Pygame to Build an Asteroids Game in Python 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:
Working With JSON in Python Everyday Project Packaging With pyproject.toml 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:
Python REST APIs With FastAPI Building a URL Shortener With FastAPI and Python Sneaky REST APIs With Django NinjaSupport 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 Graph Your Data With Python and ggplot pandas GroupBy: Grouping Real World Data in PythonSupport the podcast & join our community of Pythonistas
Fri, 26 Jul 2024
Podcasts similaires à The Real Python Podcast
El Partidazo de COPE COPE
Herrera en COPE COPE
La Linterna COPE
Dante Gebel Live Dante Gebel
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
Espacio en blanco Radio Nacional
Enquêtes criminelles RTL
Entrez dans l'Histoire RTL
Le grand récit RTL
Les Grosses Têtes RTL
L'Heure Du Crime RTL
Parlons-nous RTL
El Larguero SER Podcast
SER Historia SER Podcast
Todo Concostrina SER Podcast
Un Libro Una Hora SER Podcast
