

The Real Python Podcast
Real Python
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.
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.
Episodes
Mentioned books

Aug 4, 2023 • 1h 15min
Exploring pandas 2.0 & Targets for Apache Arrow
What are the new ways to describe your data in pandas 2.0? Will the addition of Apache Arrow to the data back end foster the growth of data interoperability? This week on the show, we talk with pandas core developer Marc Garcia about the release of pandas 2.0.
Marc shares his background and work on pandas. We discuss the history of data representation in pandas and the need to move beyond NumPy. We also talk about how Apache Arrow only solves some of the issues.
We dig into the potential of an Apache Arrow back end and how it could offer interoperability between data platforms. We also cover the moderate adoption and backward-compatibility concerns. Marc also shares his thoughts on making pandas more extensible.
Course Spotlight: The pandas DataFrame: Working With Data Efficiently
In this course, you’ll get started with pandas DataFrames, which are powerful and widely used two-dimensional data structures. You’ll learn how to perform basic operations with data, handle missing values, work with time-series data, and visualize data from a pandas DataFrame.
Topics:
00:00:00 – Introduction
00:02:07 – Getting involved with the pandas project
00:03:48 – Continued growth of the platform
00:06:49 – Parallel branch development
00:09:19 – The introduction of Apache Arrow
00:18:53 – Working with NumPy data in pandas
00:30:18 – Arrow data types and strings
00:41:23 – Video Course Spotlight
00:42:37 – Interoperability of Arrow data back end
00:50:36 – Could pandas be more extensible?
01:00:49 – Python DataFrame Summit 2023
01:08:12 – What are you excited about in the world of Python?
01:11:13 – What do you want to learn next?
01:12:12 – How can people follow your work online?
01:13:46 – Thanks and Goodbye
Show Links:
Marc Garcia - datapythonista - data engineer, data scientist and pandas core developer
pandas 2.0 and the Arrow revolution (part I)
The pandas of the future - Marc Garcia - SciPyLA 2019 - TubEdu
The deadly consequences of rounding errors - Slate
Community Blog - pandas - Python Data Analysis Library
Apache Arrow - Apache Arrow
Apache Arrow and the “10 Things I Hate About pandas” - Wes McKinney
I/O Extensions in pandas - PDEP-9
Extension Arrays for Pandas - Tom’s Blog
Python Dataframe Summit 2023
Rust Programming Language
Freediving - Wikipedia
Marc Garcia - LinkedIn
Marc Garcia (@datapythonista) - X
Level up your Python skills with our expert-led courses:
Reading and Writing Files With pandas
Explore Your Dataset With pandas
The pandas DataFrame: Working With Data Efficiently
Support the podcast & join our community of Pythonistas

15 snips
Jul 28, 2023 • 46min
Differentiating the Versions of Python & Unlocking IPython's Magic
What are all the different versions of Python? You may have heard of Cython, Brython, PyPy, or others and wondered where they fit into the Python landscape. This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares an article from the Bite Code blog about all the different forms that Python can take. CPython is the reference implementation of the language, which is what we usually discuss. He lists several alternative projects and the use cases.
We also discuss a recent Real Python tutorial about IPython. IPython is an interactive Python shell from the team that developed Jupyter Notebooks. It includes a set of IDE-like features and unique magic commands. The tutorial digs into using the tool to learn more about Python and explore your code.
We cover several other articles and projects from the Python community, including several news updates, the state of WASI support for CPython, how Python uses garbage collection, a discussion about the current AI echo chamber, an async Python web microframework, a stand-alone CSV editor, and a project for identifying unused dependencies to avoid a bloated virtual environment.
This week’s episode is brought to you by Scout APM.
Course Spotlight: Mazes in Python Part 1: Building and Visualizing
In this two-part video course project, you’ll build a maze solver in Python using graph algorithms from the NetworkX library. Along the way, you’ll design a binary file format for the maze, represent it in an object-oriented way, and visualize the solution using scalable vector graphics (SVG).
Topics:
00:00:00 – Introduction
00:02:19 – Python 3.12.0 Beta 4 Released
00:02:53 – Django in Action - Christopher’s Book
00:04:28 – State of WASI Support for CPython: June 2023
00:08:32 – What’s the Deal With CPython, PyPy, MicroPython, Jython…?
00:12:10 – Sponsor: Scout APM
00:12:57 – Unlock IPython’s Magical Toolbox for Your Coding Journey
00:18:33 – How Python Uses Garbage Collection
00:21:31 – Video Course Spotlight
00:23:04 – Are People in Tech Inside an AI Echo Chamber?
00:39:39 – quart: An Async Python Web Microframework
00:41:33 – Modern CSV: CSV Editor/Viewer
00:43:09 – creosote: Identify Unused Dependencies
00:45:09 – Thanks and Goodbye
News:
Python 3.12.0 Beta 4 Released
Django in Action - Christopher’s Book - Manning Early Access Program
Show Links:
State of WASI Support for CPython: June 2023 – This post from Brett Cannon covers the current state of WebAssembly targets in Python.
What’s the Deal With CPython, PyPy, MicroPython, Jython…? – This comprehensive article introduces you to all the different ways that you can Python. CPython isn’t the only choice. Learn what else is out there and why you might choose an alternative.
Unlock IPython’s Magical Toolbox for Your Coding Journey – IPython is a powerful tool that can prove useful on your journey to mastering Python. Its friendly interface will enable you to comfortably take control of your learning. In this tutorial, you’ll cover the basic concepts of using IPython and learn how its features can make coding efficient.
How Python Uses Garbage Collection – This article outlines how Python stores variables as references and how that relates to memory management
Discussion:
Are People in Tech Inside an AI Echo Chamber?
Inside the AI Factory: the humans that make tech seem human - The Verge
Is ChatGPT getting worse over time? Study claims yes, but others aren’t sure | Ars Technica
How Is ChatGPT’s Behavior Changing over Time?
Projects:
quart: An Async Python Web Microframework
Modern CSV: CSV Editor/Viewer
creosote: Identify unused dependencies and avoid a bloated virtual environment
Additional Links:
Episode #154: Targeting WebAssembly Platforms & Distilling a Minimum Viable Python – The Real Python Podcast
IPython 8.14.0 documentation
Level up your Python skills with our expert-led courses:
Mazes in Python Part 2: Storing and Solving
Python Basics: Object-Oriented Programming
Mazes in Python: Build, Visualize, Store, and Solve
Support the podcast & join our community of Pythonistas

19 snips
Jul 21, 2023 • 1h 1min
Leveraging the Features of Your Database With Postgres and Python
Are you getting the most out of your Postgres database? What features could you leverage to improve your Python project? This week on the show, Craig Kerstiens from Crunchy Data is here to discuss getting the most out of Postgres.
Craig shares his years of PostgreSQL expertise with advice on getting more from the platform. We talk about rich data types for describing ranges, geospatial data, and JSON.
Craig shares tools for accessing performance statistics from the command line and strategies for optimizing your terminal settings for SQL searches. He discusses Postgres extensions for customizing the database to your needs. Craig also provides multiple resources for learning more and an online tool for practicing within a playground environment.
Course Spotlight: Creating Web Maps From Your Data With Python Folium
You’ll learn how to create web maps from data using Folium. The package combines Python’s data-wrangling strengths with the data-visualization power of the JavaScript library Leaflet. In this video course, you’ll create and style a choropleth world map showing the ecological footprint per country.
Topics:
00:00:00 – Introduction
00:02:36 – What are reasons for considering Postgres?
00:07:41 – Timeline of recent features
00:11:06 – Unique data types
00:16:34 – Storing JSON information
00:20:19 – Video Course Spotlight
00:21:50 – Storing geographic information
00:25:16 – What’s the process for adding extensions?
00:31:33 – Advice for Python developers using Postgres
00:33:31 – Advice on writing SQL
00:38:06 – Command-line tools and customizations
00:48:18 – Django as an entry to Python
00:51:13 – Resources for learning and practicing with Postgres
00:53:45 – What are you excited about in the world of Python?
00:55:55 – What do you want to learn next?
00:58:34 – How can people follow your work online?
00:59:20 – Thanks and goodbye
Show Links:
Craig Kerstiens - Blog
Trusted Open Source PostgreSQL & Commercial Support for the Enterprise - Crunchy Data
Why Postgres? - Crunchy Data
Why Postgres - Craig Kerstiens - YouTube
A hands on experience with complex SQL - Craig Kerstiens - YouTube
Ingres (database) - Wikipedia
PostgreSQL specific model fields - Django documentation
Psqlrc - PostgreSQL wiki
The most useful Postgres extension - pg_stat_statements
High-compression Metrics Storage with Postgres Hyperloglog
Postgres Playground and Tutorials - Crunchy Data
PostgreSQL Blog - Crunchy Data
It’s at least once a week I talk with someone that “loves Postgres” but isn’t sure why… Craig Kerstiens on Twitter:
The Wok Book: Recipes and Techniques by J. Kenji Lopez-Alt
Level up your Python skills with our expert-led courses:
Creating Web Maps From Your Data With Python Folium
Deploying a Flask Application Using Heroku
SQLite and SQLAlchemy in Python: Moving Your Data Beyond Flat Files
Support the podcast & join our community of Pythonistas

19 snips
Jul 14, 2023 • 51min
Constructing Python Library APIs & Tackling Jinja Templating
What principles should you consider when designing a Python library? How do you construct a library API that’s understandable and easy to use? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.
We share an article about building library APIs. The piece provides advice for package structure, naming, error handling, and more. The author guides you toward Pythonic principles by comparing clunky vs elegant design examples.
Christopher discusses his recent video course on Jinja templating. The course covers creating text files with programmatic content and employing rich templates to structure the front end of Python web applications.
We cover several other articles and projects from the Python community, including several news updates, reasons why membership tests are fast for the range() function, CLI tools hidden in the Python standard library, a thread about the right way to install Python, recipes for using the Polars library, and a project for feature flags within Django.
This week’s episode is brought to you by Snyk.
Course Spotlight: Jinja Templating
With Jinja, you can build rich templates that power the front end of your web applications. But you can use Jinja without a web framework running in the background. Anytime you want to create text files with programmatic content, Jinja can help you out.
Topics:
00:00:00 – Introduction
00:02:16 – PyLadies Conference (Dec 2023) Call for Volunteers
00:02:32 – PSF Board Election Results
00:03:47 – PSF Announces New Security Developer in Residence
00:04:39 – Django Security Releases Issued
00:04:50 – Deprecation of bdist_egg Uploads to PyPI
00:05:54 – Why Are Membership Tests So Fast for range() in Python?
00:11:51 – CLI Tools Hidden in the Python Standard Library
00:15:59 – Sponsor: Snyk
00:16:49 – Designing Pythonic Library APIs
00:28:27 – Jinja Templating
00:32:49 – Kill a Developer in 4 Words or Less
00:37:28 – Video Course Spotlight
00:38:51 – What is “the right way” to install Python on a new M2 MacBook?
00:44:11 – polars-cookbook: Recipes for Using Python’s Polars Library
00:46:48 – waffle: Feature Flags for Django
00:49:54 – Thanks and goodbye
News:
PyLadies Conference (Dec 2023) Call for Volunteers
PSF Board Election Results
PSF Announces New Security Developer in Residence
I Am the First PSF Security Developer-in-Residence – Seth was recently hired as the first security developer in residence at the PSF. His blog post talks about what his responsibilities are and how he defines success for the position.
Deputy CPython Developer in Residence - Python Software Foundation - Career Page
Django Security Releases Issued: 4.2.3, 4.1.10, and 3.2.20
Deprecation of bdist_egg Uploads to PyPI – PEP 715 has been accepted and as of August 1, 2023, the .egg format will no longer be accepted as an upload. Existing eggs on PyPI will remain in place.
Show Links:
Why Are Membership Tests So Fast for range() in Python? – In Python, range() is most commonly used in for loops. However, ranges have some other use cases too, as they share many properties with lists. In this tutorial, you’ll explore why it’s so fast to perform a membership test on a Python range.
CLI Tools Hidden in the Python Standard Library – There are several modules in Python that are directly callable from the command line, including the ability to gzip and pretty-print JSON. This article introduces you to what options are available and how Simon discovered them.
Designing Pythonic Library APIs – This article summarizes principles that Ben has found useful when designing Python library APIs. Topics include structure, naming, error handling, and type annotations.
Jinja Templating – With Jinja, you can build rich templates that power the front end of your web applications. But you can use Jinja without a web framework running in the background. Anytime you want to create text files with programmatic content, Jinja can help you out.
Discussion:
Kill a Developer in 4 Words or Less - Twitter
What is “the right way” to install Python on a new M2 MacBook? - Twitter
Projects:
polars-cookbook: Recipes for Using Python’s Polars Library
waffle: Feature Flags for Django
Additional Links:
PSF Board of Directors Nominees - 2023 - YouTube
pandas-cookbook: Recipes for using Python’s pandas library
Level up your Python skills with our expert-led courses:
Getting Started With Django: Building a Portfolio App
Deploy Your Python Script on the Web With Flask
Jinja Templating
Support the podcast & join our community of Pythonistas

26 snips
Jul 7, 2023 • 1h 14min
Python Crash Course & Learning Enough to Start Creating
How much Python do you need to learn to start creating projects? What’s a good balance of information and hands-on practice? This week on the show, Eric Matthes is here to discuss his book Python Crash Course.
As a former high school science, math, and programming teacher, Eric saw something missing in the programming publishing landscape. We discuss the guiding questions that inspired the book’s development and the title. Eric covers how the crash course takes readers through a fast-paced introduction to Python that culminates in three unique projects.
We also discuss Eric’s blog, Mostly Python, where he digs deeper into technical subjects. He also occasionally shares more topical posts and includes many exercises.
Course Spotlight: Plot With pandas: Python Data Visualization Basics
In this course, you’ll get to know the basic plotting possibilities that Python provides in the popular data analysis library pandas. You’ll learn about the different kinds of plots that pandas offers, how to use them for data exploration, and which types of plots are best for certain use cases.
Topics:
00:00:00 – Introduction
00:02:04 – Why Alaska?
00:05:33 – What do you like about Python?
00:06:40 – Becoming an author & the intended reader
00:15:56 – History of programming books
00:17:39 – Having a purpose for learning
00:20:22 – Exercising as you go
00:24:45 – Including projects in the book
00:26:32 – Is the “crash course” a book model?
00:29:20 – Video Course Spotlight
00:30:29 – How much of a topic to reveal
00:35:08 – Guiding questions
00:42:43 – Moving from functions to testing in four chapters
00:46:21 – What were you excited to update in the book?
00:50:28 – Were there doubts about preparing readers for projects?
00:53:52 – Space invaders clone pygame project
00:55:52 – Data visualization project
01:00:38 – Django web app project
01:04:15 – Cheat sheets and additional resources
01:07:54 – Python flash cards
01:09:54 – What are you excited about in the world of Python?
01:10:54 – What do you want to learn next?
01:11:46 – How can people follow the work you do?
01:13:06 – Thanks and goodbye
Show Links:
Python Crash Course, 3rd Edition - No Starch Press
Episode #105: Creating Better Error Messages for Python 3.10 & 3.11 – The Real Python Podcast
Making Python Better One Error Message At A Time - PyCon 2022
Learning Python, 2nd Edition
pytest: helps you write better programs — pytest documentation
Pygame
Matplotlib — Visualization with Python
Plotly: Low-Code Data App Development
django-simple-deploy - readthedocs.io
Cheat Sheets - Python Crash Course, Third Edition
Python Flash Cards - No Starch Press
DjangoCon US 2023 - October 16-20, 2023 - Durham, NC United States
pandas - Python Data Analysis Library
Python Crash Course, Third Edition - GitHub Resources
Mostly Python - Eric Matthes - Substack
Eric Matthes (@ehmatthes@fosstodon.org) - Fosstodon
Level up your Python skills with our expert-led courses:
Testing Your Code With pytest
Histogram Plotting in Python: NumPy, Matplotlib, Pandas & Seaborn
Plot With pandas: Python Data Visualization Basics
Support the podcast & join our community of Pythonistas

20 snips
Jun 30, 2023 • 50min
Exploring the Zen of Python & pandas Features for Finance
What advice can you extract from the Zen of Python? How can these nineteen guiding principles help you write more idiomatic Python? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares a Real Python tutorial by Bartosz Zaczyński titled “What’s the Zen of Python?” We talk about the poem’s origin and ways to access the Zen within Python. We also discuss how different sections provide contradictory advice for what makes good Python code.
We cover a recent post by previous guest Matt Harrison about using Python and pandas for finance. Matt’s article covers methods in the pandas library for aggregation, resampling, and rolling averages.
We cover several other articles and projects from the Python community, including staying up-to-date with news, solving a Legend of Zelda puzzle with Python, avoiding “simply” providing advice, displaying better stack traces, and creating files with fake data.
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:49 – Python 3.11.4, 3.10.12, 3.9.17, 3.8.17, 3.7.17, and Python 3.12.0 beta 3 released
00:02:24 – Enforcement of 2FA for PyPI Began June 1st
00:02:54 – Faster Python 3.13 Plan
00:03:14 – PyPy v7.3.12 Released
00:03:28 – Migrate to .readthedocs.yaml Configuration
00:05:14 – PyCon US 2023 and PyCascades 2023 Videos Are Up
00:05:37 – What’s the Zen of Python?
00:09:22 – Python for Finance: Pandas Resample, Groupby, and Rolling
00:15:24 – Python and the Legend of Zelda
00:17:47 – Don’t Say “Simply” Use Pyenv, Poetry or Anaconda
00:28:54 – Is Parallel Programming Hard?
00:40:54 – Video Course Spotlight
00:42:20 – pymg: A Better Display for Stack Traces
00:44:58 – faker-file: Create Files With Fake Data
00:49:14 – Thanks and goodbye
News:
Python 3.11.4, 3.10.12, 3.9.17, 3.8.17, 3.7.17, and 3.12.0 Beta 2 Released
Python Insider: Python 3.12.0 beta 3 released
Enforcement of 2FA for PyPI Began June 1st – For those accounts that have two-factor authentication turned on for PyPI uploads, the use of 2FA is now required. Users with 2FA who were only using a password in the past will now have to perform 2FA as well. This is all part of the PyPI transition to 2FA across the board.
Faster Python 3.13 Plan – This brief outline highlights the plan for the faster CPython project for the 3.13 release. It includes PEP 669, PEP 554, improved memory management, and more. Here’s the associated Hacker News discussion.
PyPy v7.3.12 Released
Migrate to .readthedocs.yaml Configuration – The Read the Docs site has announced the new requirement that all builds must move to using a .readthedocs.yaml configuration file, version 2. There are some test windows where they’ll be temporarily enforcing the change, but the final release date is September 25, 2023. Read on for details on how to migrate your project.
PyCascades 2023 Videos Are Up
PyCon US 2023 Videos Are Up
Topic Links:
What’s the Zen of Python? – In this tutorial, you’ll be exploring the Zen of Python, a collection of nineteen guiding principles for writing idiomatic Python. You’ll find out how they originated and whether you should follow them. Along the way, you’ll uncover several inside jokes associated with this humorous poem.
Python for Finance: Pandas Resample, Groupby, and Rolling – When working with time series data such as financial information, the resample, grouping, and rolling features of pandas can make your life easier.
Python and the Legend of Zelda – The Game Boy Color version of Legend of Zelda: Oracle of Ages contains a grid-based puzzle. Gaz writes about creating a brute-force program to solve the challenge using Python.
Don’t Say “Simply” Use Pyenv, Poetry or Anaconda – This article talks about the issues that newer Python coders might encounter by adopting more complicated package management mechanisms and explains why sticking with pip is often the better choice.
Discussion:
Is Parallel Programming Hard?
AsyncIO: Why I Hate It – Charles is the creator of Peewee ORM and often gets the question when will it support asyncio? In this opinion piece, he talks about why he doesn’t like asyncio and which alternatives he prefers.
Projects:
pymg: A Better Display for Stack Traces
faker-file: Create Files With Fake Data
Additional Links:
Practicality Beats Purity: The Zen of Python’s Escape Hatch - Chris Neugebauer - YouTube
Relieving your Python packaging pain
Is Parallel Programming Hard, And, If So, What Can You Do About It? - Book Download
Level up your Python skills with our expert-led courses:
Threading in Python
Hands-On Python 3 Concurrency With the asyncio Module
Speed Up Python With Concurrency
Support the podcast & join our community of Pythonistas

Jun 23, 2023 • 1h 14min
Resources and Advice for Building CircuitPython Projects
Are you looking to advance your CircuitPython projects? Would you like a collection of resources and tools to help you along your path? This week on the show, Tod Kurt is here to discuss building projects with CircuitPython.
Tod has been working with embedded electronics for a long time and has been an active member of the Arduino community. He recently started to build projects using CircuitPython, and it has become his preferred prototype method.
He shares software resources, hardware tools, and advice about working with CircuitPython and embedded electronics. We discuss several of his music hardware projects and the libraries and modules that he uses for synthesis. He also shares a powerful online prototyping tool to plan your project before spending money or plugging in a soldering iron.
Course Spotlight: Python Basics: Reading and Writing Files
In this video course, you’ll learn how to move data back and forth between your Python programs and external software by reading and writing files. You’ll practice reading and writing data stored in the CSV file format, one of the most widely supported file formats for transferring tabular data.
Topics:
00:00:00 – Introduction
00:02:17 – Tod’s background and ThingM
00:06:37 – The Bootloader Podcast
00:09:58 – Why did you move from C to Python?
00:13:47 – Starting new projects with CircuitPython instead of Arduino
00:17:14 – Advantages of the Arduino language
00:21:07 – Modules that extend CircuitPython with C
00:25:23 – Synthesis and sample playback in CircuitPython
00:32:54 – Video Course Spotlight
00:34:13 – ulab for NumPy-like functionality in CircuitPython
00:39:20 – Raspberry Pi Pico as inexpensive project board
00:46:08 – STEMMA QT and breadboards
00:48:40 – Powering projects with a USB power bank
00:51:25 – Software tools - tio, circup, and discotool
00:56:55 – CircuitPython tricks GitHub repo
00:59:44 – Wokwi simulator for CircuitPython and Raspberry Pi Pico
01:01:25 – PCB board design resources
01:03:27 – todbot projects on Tindie
01:06:11 – Hardware tools for projects
01:08:21 – What are you excited about in the world of Python?
01:09:42 – What do you want to learn next?
01:11:30 – How can people follow your work online?
01:12:50 – Thanks and goodbye
Show Links:
todbot blog – Random experiments, circuits, and code by Tod Kurt.
todbot - YouTube
ThingM
The Bootloader Podcast
The CircuitPython Show Podcast
CircuitPython
Arduino - Home
Extending CircuitPython: An Introduction - Adafruit Learning System
Adafruit Feather RP2040 with DVI - HDMI Output
Episode #75: Building With CircuitPython & Constraints of Python for Microcontrollers
displayio – Native helpers for driving displays - CircuitPython
Mozzi
synthio: Support for multi-channel audio synthesis - Adafruit
ulab: Crunch Numbers fast in CircuitPython - Adafruit Learning System
Raspberry Pi Pico RP2040 - Adafruit
What is STEMMA? - Adafruit STEMMA & STEMMA QT
USB Power bank - Current Favorite - Amazon
tio: A simple serial device I/O tool - GitHub
circup: CircuitPython library updater - GitHub
discotool: USB Arduino type boards discovery library and tool - GitHub
circuitpython-tricks: Some CircuitPython tricks, mostly reminders to myself - GitHub
Wokwi Simulator - CircuitPython on Raspberry Pi Pico Project
EAGLE - PCB Design And Electrical Schematic Software - Autodesk
KiCad EDA - Schematic Capture & PCB Design Software
Introducing KiCanvas - Stargirl (Thea) Flowers
PicoTouch - Capsense MIDI keyboard - Tindie
PicoStepSeq PCB from todbot synth toys - Tindie
USB Voltage and Current Tester - Amazon
USB Hub with Individual Power Switches - Amazon
CPython Internals Book – Real Python
ThinkDSP: Free Book on Digital Signal Processing in Python
todbot blog – Random experiments, circuits, and code by Tod Kurt.
Tod Kurt (todbot) (@todbot@mastodon.social) - Mastodon
Adafruit Discord - @todbot
Level up your Python skills with our expert-led courses:
Python Basics: Reading and Writing Files
Getting Started With MicroPython
Python Basics: File System Operations
Support the podcast & join our community of Pythonistas

Jun 16, 2023 • 49min
Inheriting a Large Python Code Base & Building a GUI With Kivy
What are the unique challenges of a large Python code base? What techniques can you implement to simplify the management of a big project? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.
We discuss a recent thread on Hacker News about working with a large Python code base. Christopher advises configuring tests and using tools to keep your code consistent across an organization. He also answers several questions about code complexity, typing, and leveraging third-party libraries.
We cover several other articles and projects from the Python community, including news from the Python Language Summit, Kivy for GUI development, the power of bit manipulation, the removal of unused import statements in your code, and a Python-based iOS project for adding reminders about links from a podcast.
Course Spotlight: Build Cross-Platform GUI Apps With Kivy
In this video course, you’ll learn how to build a cross-platform mobile application with Python and the Kivy GUI framework. You’ll discover how to develop an application that can run on your desktop as well as your phone. Then, you’ll package your app for Windows, Linux, and macOS.
Topics:
00:00:00 – Introduction
00:01:43 – Python 3.13 Removes 20 Stdlib Modules
00:03:20 – Making the Global Interpreter Lock Optional
00:04:52 – What Is the Standard Library For?
00:06:14 – Python’s .__call__() Method: Creating Callable Instances
00:11:40 – The Power of Bit Manipulation
00:15:39 – Using Kivy for GUI Development
00:21:18 – Video Course Spotlight
00:22:43 – How Do You Deal With Large Python Code Bases?
00:40:50 – unimport: Remove Unused Import Statements in Your Code
00:42:36 – Update: rsync-time-machine.py
00:43:20 – memocast: Add links heard in podcasts into iOS reminders
00:47:42 – A request to listeners
00:48:20 – Thanks and goodbye
Show Links:
Python 3.13 Removes 20 Stdlib Modules – Core developers are busy working on PEP 594, removing dead batteries from Python 3.13. This long post in the discussion forum highlights what work has been completed so far.
Making the Global Interpreter Lock Optional – In the past, Sam Gross has outlined how to make the GIL optional in CPython. He presented at the Python Language Summit, providing updates on his progress and future plans for the project.
PEP 703 – Making the Global Interpreter Lock Optional in CPython | peps.python.org
PEP 703 - Discussion on Python.org
What Is the Standard Library For? – This post summarizes a conversation at the Python Language Summit proposing that guidelines be defined for when something should be added to the standard library.
Python’s .__call__() Method: Creating Callable Instances – In this tutorial, you’ll learn what a callable is in Python and how to create callable instances using the .__call__() special method in your custom classes. You’ll also code several examples of practical use cases for callable instances in Python.
The Power of Bit Manipulation – In this article, you learn about bit manipulation and how to solve problems efficiently using it in Python.
Using Kivy for GUI Development – Kivy is an open-source Python library for developing desktop and mobile GUI apps. It’s supported on Windows, Linux, macOS, Android, and iOS. This article introduces you to Kivy and teaches you how to build your first GUI with it.
Discussion:
How Do You Deal With Large Python Code Bases?
Projects:
unimport: Remove Unused Import Statements in Your Code
memocast: 🎧 A small iOS app for e.g. iPhone that allow you to add links heard in podcasts into reminders
Additional Links:
Binary, Bytes, and Bitwise Operators in Python – Real Python
Build a Mobile Application With the Kivy Python Framework – Real Python
Open Source ERP and CRM | Odoo
Moodle - Open-source learning platform | Moodle.org
rsync-time-machine.py: Time Machine-style backups using rsync
Pythonista for iOS
Level up your Python skills with our expert-led courses:
Python Basics: Object-Oriented Programming
Simplify Python GUI Development With PySimpleGUI
Build Cross-Platform GUI Apps With Kivy
Support the podcast & join our community of Pythonistas

Jun 9, 2023 • 1h 1min
Volunteering, Organizing, and Finding a Python Community
Have you thought about getting more involved in the Python community? Are you interested in volunteering for an event or becoming an organizer? This week on the show, we speak with organizers from this year’s PyCascades conference about making connections, learning new skills, and rationing your time.
We have three guests to discuss working on PyCascades 2023 and how they got involved in volunteering. Conference Chair Ben Berry, a site reliability engineer based in Seattle, is currently working on a private platform-as-a-service. Diversity Chair Madison Swain-Bowden is a senior data engineer out of Seattle, currently working at Automattic on the Openverse team. Sponsorship Chair Michael van der Kamp is a back-end engineer at Coffee Meets Bagel.
We discuss finding other volunteers, maintaining motivation, and connecting with sponsors. Our guests also share their stories of overcoming challenges, connecting with community, and finding fulfillment through volunteering.
This week’s episode is brought to you by Proxify.
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:02:34 – Conference Chair Ben Berry
00:03:58 – Diversity Chair Madison Swain-Bowden
00:06:04 – Sponsorship Chair Michael van der Kamp
00:08:28 – Scheduling of conferences around one another
00:10:41 – How did you get involved in the community?
00:20:01 – Sponsor: Proxify
00:20:57 – Workplace groups and guilds
00:27:41 – How community helps with job referrals
00:32:19 – New position and added responsibilities
00:41:24 – How would you pitch volunteering?
00:44:32 – Video Course Spotlight
00:45:45 – How do you avoid overdoing it?
00:52:46 – What are you excited about in the world of Python?
00:55:16 – What do you want to learn next?
00:59:22 – Thanks and goodbye
Show Links:
The Team - PyCascades 2023
PyCascades 2023 - YouTube
PyLadies – Women Who Love Coding in Python
Puget Sound Programming Python (PuPPy) (Seattle, WA) - Meetup
PySprings (Colorado Springs, CO) - Meetup
What is Lean Coffee? - an introduction to agenda-less meetings
Async IO in Python: A Complete Walkthrough – Real Python
Structural Pattern Matching – Real Python
Using FastAPI to Build Python Web APIs – Real Python
Rust Programming Language
Rust for Rustaceans - No Starch Press
CircuitPython
Michael van der Kamp - LinkedIn
Madison on Tumblr
Ben Berry (@benb@fosstodon.org)
Level 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 MkDocs
Support the podcast & join our community of Pythonistas

8 snips
Jun 2, 2023 • 53min
Building Python CI With Docker & Applying for a Hacker Initiative Grant
Do you need a refresher on using Docker with Python? Would you like to learn how to configure a continuous integration pipeline with modern tools and Docker? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.
We share a Real Python tutorial from Bartosz Zaczyński about building continuous integration with Docker. Docker provides consistent environments for configuring, testing, and delivering Python applications. In this tutorial, you’ll get up to speed with current Docker and CI techniques.
We also speak with Bill Pollock from No Starch Press about Hacker Initiative. The public nonprofit gives back to and strengthens the hacking community. The 2023 grant cycle is currently open until August 15. We discuss the application process and projects from previous grant recipients.
We cover several other articles and projects from the Python community, including a news update and some resources on implementing metaclasses in Python, creating time machine-style backups, and scanning your project for vulnerabilities.
Course Spotlight: Metaclasses in Python
Metaclasses are an important but mysterious behind-the-scenes mechanism for instantiating classes in Python. In this video course, you’ll learn how Python’s metaclasses work in object-oriented programming.
Topics:
00:00:00 – Introduction
00:02:26 – PyPI Temporarily Suspended New Registrations
00:03:38 – PyPI was subpoenaed
00:04:54 – Python 3.12.0 beta 1 released
00:05:19 – Build Robust Continuous Integration With Docker and Friends
00:13:02 – Metaclasses in Python
00:20:03 – Pronouncing SQL - Is there life after SQL?
00:22:52 – Video Course Spotlight
00:24:25 – pyscan: Python dependency vulnerability scanner, written in Rust
00:26:28 – rsync-time-machine.py: Time Machine-Style Backups
00:29:20 – Bill Pollock and Hacker Initiative
00:34:18 – Previous grant recipients
00:36:58 – First Tech Challenge
00:43:18 – Large vs small nonprofits
00:45:48 – Applying for the 2023 grant cycle
00:49:01 – Underserved areas
00:51:45 – Thanks and goodbye
News:
PyPI Temporarily Suspended New Registrations – Due to a large volume of traffic from malicious users, PyPI temporarily suspended new account and project registrations on May 20. The suspension was lifted thirty hours later on May 21.
PyPI was subpoenaed - The Python Package Index – The PSF received three subpoenas from the US Department of Justice for PyPI user data in March and April of 2023.
Python Insider: Python 3.12.0 beta 1 released
Show Links:
Build Robust Continuous Integration With Docker and Friends – In this tutorial, you’ll use Docker and GitHub Actions to build a robust continuous integration pipeline for a multi-container web application consisting of Flask and Redis. Along the way, you’ll learn how to dockerize a Python web application.
Metaclasses in Python - Real Python Video Course – Metaclasses are an important but mysterious behind-the-scenes mechanism for instantiating classes in Python. In this video course, you’ll learn how Python’s metaclasses work in object-oriented programming.
Is there life after SQL? - YouTube
Projects:
pyscan: Python dependency vulnerability scanner, written in Rust - GitHub
rsync-time-machine.py: Time Machine-Style Backups
Hacker Initiative Links:
Hacker Initiative – By hackers. For hackers.
Apply for the 2023 Grant Cycle – Hacker Initiative
2022 Grant Recipients – Hacker Initiative
Additional Links:
Release CPython 3.12.0b1 w/ WASI SDK 20 - brettcannon/cpython-wasi-build
Episode #149: Coding With namedtuple & Python’s Dynamic Superpowers
What is FIRST Tech Challenge? - FIRST
No Starch Press - “The finest in geek entertainment”
Level up your Python skills with our expert-led courses:
Continuous Integration With Python
Metaclasses in Python
Writing Clean, Pythonic Code With namedtuple
Support the podcast & join our community of Pythonistas


