

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

Oct 8, 2021 • 54min
Exploring the New Features of Python 3.10
Python 3.10 is here! This week on the show, two former guests and Real Python authors return to talk about the new version. Geir Arne Hjelle’s article was posted to the site Monday, and it’s titled “Python 3.10: Cool New Features for You to Try”. Christopher Trudeau’s video course came out on Tuesday, and it covers the topics from the article with multiple visual examples of Python 3.10 code.
Geir Arne and Christopher worked together to create code examples of the new features used in both. We talk about more user-friendly error messages, structural pattern matching, enhancements to Python’s type system, and much more.
Geir Arne and Christopher not only cover the new features but they offer advice about ways you might incorporate them into your code. We also discuss what you should think about before running the new version for your projects.
Course Spotlight: Cool New Features in Python 3.10
In this course, you’ll explore some of the coolest and most useful features in Python 3.10. You’ll appreciate more user-friendly error messages, learn about how you can handle complicated data structures with structural pattern matching, and explore new enhancements to Python’s type system.
Topics:
00:00:00 – Introduction
00:02:20 – Better Error Messages
00:07:14 – Structural Pattern Matching
00:14:14 – Sponsor: Snyk
00:14:55 – Type Unions, Aliases, and Guards
00:22:34 – Future Annotations
00:26:46 – Stricter Zipping of Sequences
00:28:30 – New Functions in the statistics Module
00:31:46 – Video Course Spotlight
00:32:50 – Asynchronous Iteration
00:38:59 – Default Text Encodings
00:41:33 – Context Manager Syntax
00:43:19 – Modern and Secure SSL
00:45:10 – Should you upgrade now?
00:49:59 – How to Detect Python 3.10 at Runtime
00:53:07 – Thanks and goodbye
Show Links:
About Geir Arne Hjelle: Real Python Team Profile
About Christopher Trudeau: Real Python Team Profile
Python 3.10: Cool New Features for You to Try: Real Python Article
Cool New Features in Python 3.10: Real Python Video Course
Python 3.10.0 Released: python.org
Better error messages: What’s New docs.python.org
PEP 634: Structural Pattern Matching - Specification
PEP 635: Structural Pattern Matching - Motivation and Rationale
PEP 636: Structural Pattern Matching - Tutorial
PEP 604: Allow writing union types as X | Y
PEP 613: Explicit Type Aliases
PEP 647: User-Defined Type Guards
PEP 612: Parameter Specification Variables
Using the Python zip() Function for Parallel Iteration: Real Python Article
statistics — Mathematical statistics functions: docs.python.org
PEP 525: Asynchronous Generators
Context Managers and Python’s with Statement: Real Python Article
Run Python Versions in Docker: How to Try the Latest Python Release: Real Python Article
Level up your Python skills with our expert-led courses:
Hands-On Python 3 Concurrency With the asyncio Module
Cool New Features in Python 3.10
Cool New Features in Python 3.9
Support the podcast & join our community of Pythonistas

Oct 1, 2021 • 1h 3min
Make Your Python App Interactive With a Text User Interface (TUI)
Have you wanted to create a Python application that goes further than a command-line interface? You would like it to have a friendly interface but don’t want to make a GUI (Graphical User Interface) or web application. Maybe a TUI (Text User Interface)would be a perfect fit for the project. This week on the show, we have Will McGugan to talk about his projects Textual and Rich.
Rich is a Python library for writing rich text to the terminal with color and style. It’s a great tool if you want to display advanced content such as tables, markdown, and syntax-highlighted code. We talk about how Will started on the project and how it’s developed over the years.
We also talk about Will’s new project Textual, a TUI using much of Rich at its core. He shares how the project is coming along and what are challenges in developing this type of application. We discuss how a TUI has more in common with CSS and web development than command line or graphical interfaces.
We also have a quick announcement at the top of the show from CPython Developer in Residence Łukasz Langa about next week’s release of Python 3.10.
Course Spotlight: Rock, Paper, Scissors With Python: A Command Line Game
In this course, you’ll learn to program rock paper scissors in Python from scratch. You’ll learn how to take in user input, make the computer choose a random action, determine a winner, and split your code into functions.
Topics:
00:00:00 – Introduction
00:02:08 – Python 3.10 Release Party - Announcement
00:03:32 – Will McGugan and the background of the Rich library
00:10:11 – Moya framework
00:21:38 – Sponsor: DataStax Astra DB
00:22:10 – The spark that started Textual
00:26:31 – Needing AsyncIO for a TUI
00:28:07 – Describing a TUI (Text User Interface)
00:33:57 – Scrolling, resizing, and similarities with CSS
00:36:37 – Video Course Spotlight
00:38:03 – What areas were difficult in developing Textual?
00:39:42 – Similarities to game development
00:41:47 – Testing across different terminals
00:45:01 – What were you excited to include in the project?
00:47:04 – Are there particular uses you foresee for Textual?
00:49:21 – Career changes and open source reviewing
00:54:21 – Version numbers and Textual
00:55:49 – What are you excited about in the world of Python?
00:58:27 – What do you want to learn next?
01:00:57 – Shoutouts and plugs
01:01:47 – Thanks and goodbye
Show Links
Will McGugan’s Blog
Will McGugan’s GitHub
Rich Documentation
The Python Rich Package: Unleash the Power of Console Text
Pygments: Python Syntax Highlighter
object.__repr__ (self): Python docs
Regular Expressions: Regexes in Python (Part 1) - Real Python
Moya: Open source web development platform built with Python
Building Rich terminal dashboards: Will’s blog
Textual: A TUI (Text User Interface) framework for Python inspired by modern web development
The 2021 Python Language Summit: Making CPython Faster
Episode 69: Planning a Faster Future at the Python Language Summit
Python 3.10 Release Party Announcement
Łukasz Langa’s twitter: Developer in Residence
Pablo Galindo Salgado’s twitter: Python 3.10 and 3.11 release manager
Will McGugan’s Twitter
Why I’m working on Open Source full time
Level up your Python skills with our expert-led courses:
Grow Your Python Portfolio With 13 Intermediate Project Ideas
Command Line Interfaces in Python
Rock, Paper, Scissors With Python: A Command Line Game
Support the podcast & join our community of Pythonistas

Sep 24, 2021 • 56min
Measuring Your Python Learning Progress
Where are you along the path of learning Python? Do you feel like you’re making progress? What are ways you can put the learning path into a more precise focus? This week on the show, we talk with previous guest Martin Breuss about his recent article “How Long Does It Take to Learn Python?”
Martin discusses methods for measuring your progress and the various reasons for learning the language. We talk about how different backgrounds will affect your approach. We also suggest resources to help you on your path.
We share a couple of recent Python projects to round out the episode. The first is a library to draw stylized maps from OpenStreetMap data. The other is a framework for the analysis and visualization of trees, which includes a set of phylogenomic tools.
Course Spotlight: Using the Python return Statement Effectively
In this step-by-step course, you’ll learn how to use the Python return statement when writing functions. Additionally, you’ll cover some good programming practices related to the use of return. With this knowledge, you’ll be able to write readable, robust, and maintainable functions in Python.
Topics:
00:00:00 – Introduction
00:01:44 – Real Python Core Team Member
00:03:13 – How long does it take to learn Python?
00:03:40 – Why did you want to explore this topic?
00:05:05 – Python backgrounds Martin and Christopher
00:16:39 – What area excited you?
00:19:38 – Sponsor: Rev AI
00:20:16 – What are other areas that define, why Python?
00:23:30 – Keeping the scope narrower
00:24:48 – Measuring your progress
00:32:49 – Video Course Spotlight
00:34:12 – Effective mentorship
00:39:02 – Using search engines
00:43:07 – The journey of learning Python
00:48:38 – Programming challenges and practicing
00:49:40 – pretty maps - Minimal Python library to draw customized maps
00:52:02 – ETE Toolkit - Python environment for tree exploration
00:54:30 – Thanks and goodbye
Show Links:
About Martin Breuss: Real Python Team
How Long Does It Take to Learn Python?
Four stages of competence: Wikipedia Article
The Basic Python Syntax: Links to Real Python Resources
BTW these large scary math symbols are just for-loops
Measuring the “Filter Bubble”: How Google is influencing what you click
What does Google know about me?
Ace Your Python Coding Interview: Real Python Learning Path
CodingBat: Coding Practice
Episode 4: Learning Python Through Errors
Episode 48: Stochastic Gradient Descent and Deploying Your Python Scripts on the Web
Projects:
pretty maps: A minimal Python library to draw customized maps from OpenStreetMap data
ETE Toolkit: A Python framework for the analysis and visualization of trees
NCBI: National Center for Biotechnology Information
ete-ncbiquery: Fast and handy queries to the NCBI taxonomy database
Level up your Python skills with our expert-led courses:
Using the Python return Statement Effectively
Graph Your Data With Python and ggplot
How to Set Up a Django Project
Support the podcast & join our community of Pythonistas

Sep 17, 2021 • 48min
Learning Python Through Illustrated Stories
Are you a visual learner? Does it help to have programming concepts shared with concrete examples and images? Would you like to see if your child might be interested in programming? This week on the show, we talk with author Shari Eskenas about her books, “A Day in Code - Python: Learn to Code in Python Through an Illustrated Story” and “Learn Python Through Nursery Rhymes & Fairy Tales.”
We talk about the books and what inspired her to bring programming to picture books. Shari discusses her goal of providing a fun way for beginners to experience learning to code.
Shari is also an electrical engineer with multiple patents and the founder of Sundae Electronics. We talk briefly about SoundBrake, which is an audio device that alerts headphone users to outside sounds.
Shari’s programming background is primarily in C, and we cover her path to Python. We also discuss how she is using Python and the Raspberry Pi to prototype new projects.
Course Spotlight: Reading and Writing Files With Pandas
In this course, you’ll learn about the Pandas IO tools API and how you can use it to read and write files. You’ll use the Pandas read_csv() function to work with CSV files. You’ll also cover similar methods for efficiently working with Excel, CSV, JSON, HTML, SQL, pickle, and big data files.
Topics:
00:00:00 – Introduction
00:02:05 – A Day in Code Books
00:05:32 – Showing Python classes and object oriented concepts
00:08:02 – What Python concepts did you want to cover in the book?
00:09:17 – Translating the book and concepts from C to Python
00:11:04 – Reception of the book
00:12:10 – Using real objects and names in code
00:14:05 – Sponsor: DataStax Astra DB
00:14:38 – Learn Python Through Nursery Rhymes & Fairy Tales
00:20:25 – Sundae Electronics and SoundBrake
00:26:47 – Video Course Spotlight
00:27:57 – Prototyping with Python and Raspberry Pi
00:38:19 – When did you start to learn Python?
00:39:31 – Real Python community
00:41:33 – How do you see yourself using Python in the future?
00:43:39 – What are you excited about in the world of Python?
00:45:02 – What do you want to learn next?
00:45:51 – Shout outs and plugs: Kickstarter campaign
00:46:40 – Social media connections
00:47:08 – Thanks and goodbye
Show Links:
A Day in Code - Python: Learn to code in Python through an illustrated story
A Day in Code: An illustrated story written in the C programming language
Learn Python through Nursery Rhymes & Fairy Tales: Kickstarter
Sundae Electronics
Raspberry Pi Computers and Microcontrollers
Raspberry Pi Remote Access
CircuitPython: The Easiest Way to Program Microcontrollers
Real Python Community
Level up your Python skills with our expert-led courses:
Reading and Writing Files With pandas
Getting Started With MicroPython
Python Basics: Setting Up Python
Support the podcast & join our community of Pythonistas

Sep 10, 2021 • 1h 10min
Advantages of Completing Small Python Projects
Are you a beginner or intermediate Python programmer who has made it through some of the fundamentals? Have you tried to tackle a big project but got stuck and frustrated? Completing some small projects might be the answer. This week on the show, we have author Al Sweigart and talk about his new book, “The Big Book of Small Python Projects.”
We discuss the advantages of sometimes thinking small in terms of Python programs. We talk about completing projects and the benefits of manually copying code by typing it in yourself. Al also has suggestions about tools for beginners and intermediate developers.
Course Spotlight: Grow Your Python Portfolio With 13 Intermediate Project Ideas
Get started on 13 Python project ideas that are just right for intermediate Python developers. They’ll challenge you enough to help you become a better Pythonista.
Topics:
00:00:00 – Introduction
00:01:53 – Writing books and PyCascades 2021 Author panel
00:06:58 – Did you type in code from books as beginner?
00:10:16 – About the book
00:20:53 – Sponsor: Rev AI
00:21:30 – General instructions on how to start with the book
00:27:39 – Working with a debugger
00:30:28 – Experimenting with existing code
00:34:27 – Tools for learning touch typing
00:38:31 – Video Course Spotlight
00:39:37 – IDEs, Mu, and Python’s IDLE
00:45:42 – Online diff tool
00:47:27 – Some of the projects, games, animations
00:51:58 – Finishing things
00:54:07 – What are areas of Python you see beginners struggle with?
00:59:41 – What is something you wish you were shown as a beginner?
01:02:07 – What are you excited about in the world of Python?
01:04:34 – What do you want to learn next?
01:07:27 – Shout outs and social connections
01:08:33 – Thanks and goodbye
Show Links:
The Big Book of Small Python Projects: No Starch Press
Invent With Python
Al Sweigart Website
Everything You Need to Know About Writing Technical Python Books: PyCascades 2021
PEP 657 – Include Fine Grained Error Locations in Tracebacks
Episode 71: Start Using a Debugger With Your Python Code
Nina Zakharenko - Goodbye Print, Hello Debugger! - PyCon 2020
TypingClub: Learn Touch Typing for Free!
Typespeed: Typing Speed Testing Game for Ubuntu Linux
Code With Mu: Simple Python editor for beginner programmers
IDLE: Python’s Integrated Development and Learning Environment
90 percent of US net users don’t know from crtl-F
The Beginner’s Guide to Python Turtle: Real Python Article
Python’s dir() Built-in Function: docs.python.org
Python’s help() Built-in Function: docs.python.org
How to Get Help in Python - Your First Steps
-Announcing the Location for PyCon US 2022/2023
Episode 33: Going Beyond the Basic Stuff With Python and Al Sweigart
Focusmate: Distraction-free Productivity
Level up your Python skills with our expert-led courses:
Grow Your Python Portfolio With 13 Intermediate Project Ideas
Arduino With Python: Getting Started
Debugging in Python With pdb
Support the podcast & join our community of Pythonistas

Sep 3, 2021 • 50min
Harnessing Python's math Module and Exposing Practical Pandas Functions
How well do you know Python’s math module? Maybe you’ve used a few of the constants or arithmetic functions. You may be surprised by the amount of functionality hiding within this built-in library, and perhaps you don’t need to reach for an additional outside library. This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects.
We discuss a recent video course about the math module. David shares a recent article about implementing efficient queues and stacks with Python’s deque (double-ended queue) class. We also talk about an article that shares 25 Pandas functions you may not have known to exist.
We cover several other articles and projects from the Python community including, visualization and interactive dashboards in Python with HoloViz, designing a camera with Python and PyRayT, graphing data science with Python and networkx, another useful Python pdf library, and runtime software verification and automated testing for scientific software in Python with a project named paranoidscientist.
Course Spotlight: Exploring the Python math Module
In this step-by-step course, you’ll learn all about Python’s math module for higher-level mathematical functions. Whether you’re working on a scientific project, a financial application, or any other type of programming endeavor, you just can’t escape the need for math!
Topics:
00:00:00 – Introduction
00:02:09 – Python’s deque: Implement Efficient Queues and Stacks
00:07:31 – Visualization and Interactive Dashboard in Python
00:14:11 – Sponsor: DataStax Astra DB
00:14:42 – Design a Camera with Python and PyRayT
00:19:39 – 25 Pandas Functions You Didn’t Know Existed
00:27:03 – Graph Data Science With Python and NetworkX
00:33:01 – Exploring the Python math Module
00:40:51 – Video Course Spotlight
00:42:12 – paranoidscientist: Runtime Software Verification and Automated Testing for Scientific Software in Python
00:45:33 – borb: A Python PDF library
00:49:01 – Thanks and goodbye
Show Links:
Python’s deque: Implement Efficient Queues and Stacks – In this step-by-step tutorial, you’ll learn about Python’s deque and how to use it to perform efficient pop and append operations on both ends of your sequences. Deques are commonly used to build queues and stacks.
Visualization and Interactive Dashboard in Python – Have you ever heard of HoloViz? It’s a set of Python visualization and plotting tools for browser-based data visualization and presentation. In this article, Sophia Yang — a senior data scientist at Anaconda — explains why she loves HoloViz and what her workflow looks like when using it.
Design a Camera with Python and PyRayT – Camera lenses are more complex than you might think. If you cut open a camera to look at a cross-section, you’d see that a lens is actually made up of several smaller lenses. This article explores how camera lenses work using a new Python raytracing project called PyRayT that’s designed for designing optical systems.
25 Pandas Functions You Didn’t Know Existed – Did you know that you can style the pandas DataFrame output in a notebook? This listicle covers twenty-five pandas functions that you may not have heard of, including .explode(), .squeeze(), and the pandas DataFrame styler. There’s something in this article for everyone, so read it to find out how you can take your pandas skills to the next level.
Graph Data Science With Python and NetworkX – Graph theory network analysis can yield deep data insights that are difficult to tease out via alternative methods. Get a taste of what graph analysis can do in this quick, hands-on tutorial that uses NetworkX to create and analyze a graph.
Exploring the Python math Module – In this step-by-step course, you’ll learn all about Python’s math module for higher-level mathematical functions. Whether you’re working on a scientific project, a financial application, or any other type of programming endeavor, you just can’t escape the need for math!
Projects:
paranoidscientist: Runtime Software Verification and Automated Testing for Scientific Software in Python
borb: A Python PDF library
Additional Links:
Interactive Data Visualization in Python With Bokeh: Real Python Course
Lensbaby: Award-Winning Creative Effects Lenses & Tools
pandas - Comparison with spreadsheets
NetworkX
Creating a PDF Document in Python with borb
Creating PDF Invoices in Python with borb
Level up your Python skills with our expert-led courses:
Reading and Writing Files With pandas
Exploring the Python math Module
Editing Excel Spreadsheets in Python With openpyxl
Support the podcast & join our community of Pythonistas

5 snips
Aug 27, 2021 • 1h 25min
Building With CircuitPython & Constraints of Python for Microcontrollers
Can you make a version of Python that fits within the memory constraints of a microcontroller and have it still feel like Python? That is the intention behind CircuitPython. This week on the show, we have Scott Shawcroft, who is the project lead for CircuitPython.
We talk about all things CircuitPython. While working with the language on several projects I have developed many of my own questions to ask Scott. Scott answers my questions about boot loaders, packages, the bundle, and bluetooth low energy (BLE).
He also talks about the struggle of fitting the language and board specific libraries within tiny memory constraints. We discuss projects and boards for beginners, and many resources to learn more.
Course Spotlight: Getting Started With MicroPython
Are you interested in the Internet of Things, home automation, and connected devices? If so, then you’re in luck! In this course, you’ll learn about MicroPython and the world of electronics hardware. You’ll set up your board, write your code, and deploy a MicroPython project to your own device.
Topics:
00:00:00 – Introduction
00:01:56 – Background With CircuitPython
00:07:22 – Lightning talk and CircuitPython as a subset of Python
00:16:01 – Working with CircuitPython: Bootloaders and Packages
00:27:20 – Specific libraries, adding modules, and pip
00:37:21 – Sponsor: Rev.ai
00:37:57 – How to program, text editor or IDE
00:41:19 – Bluetooth Low Energy (BLE) and programming devices remotely
00:50:02 – Video Course Spotlight
00:51:06 – Do you consider yourself a Maker?
00:54:58 – Bringing CircuitPython coding to the Raspberry Pi?
00:59:56 – Suggestions for beginner hardware
01:00:55 – Suggestions for add-on boards for audio or displays
01:10:20 – Electronics Show and Tell Wednesdays
01:11:51 – Events, video streams, and Discord server
01:16:00 – What are you excited about in the world of Python?
01:17:23 – What do you want to learn next?
01:18:42 – Shoutouts and plugs
01:22:40 – Social media info
01:23:52 – Thanks and goodbye
Show Links:
CircuitPython: The easiest way to program microcontrollers
Adafruit
LadyAda.net
MicroPython: Python for Microcontrollers
2021 Python Language Summit Lightning Talks Slides: tannewt GitHub
The 2021 Python Language Summit: Lightning Talks, Round 1
Episode 69: Planning a Faster Future at the Python Language Summit
Episode 47: Unraveling Python’s Syntax to Its Core With Brett Cannon
Syntatic Sugar Series: Brett Cannon
WebAssembly - WASM
Adafruit MacroPad RP2040 Starter Kit
John Park’s Workshop: YouTube Playlist
Code With Mu: A simple Python editor for beginner programmers
BLE - Bluetooth Low Energy: Wikipedia
CircUp: A tool to manage and update libraries (modules) on a CircuitPython device
Blinka: Brings CircuitPython APIs to single board computers
Raspberry Pi 400 Desktop - Full Computer Kit
Electronics Show and Tell Wednesdays: YouTube playlist
learn.adafruit.com
AdaBox: Curated Adafruit products
tannewt GitHub
Adafruit Discord Server: Link to join
Level up your Python skills with our expert-led courses:
Reading and Writing Files With pandas
Documenting Code in Python
Getting Started With MicroPython
Support the podcast & join our community of Pythonistas

Aug 20, 2021 • 58min
Python's Assignment Expressions and Fixing a Botched Release to PyPI
Have you started to use Python’s assignment expression in your code? Maybe you have heard them called the walrus operator. Now that the controversy over the introduction in Python 3.8 has settled down, how can you use assignment expressions effectively in your code? This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects.
David shares a recent article by previous guest Brett Cannon about what to do if you botch a release to PyPI. It’s a valuable resource to keep bookmarked for when things go sideways. We also talk about a recent project by Brett, a Python launcher for Unix based operating systems.
We cover several other articles and projects from the Python community including, a Python framework with a built-in database and authorization support from Replit, do coders learn how to use entire libraries just from the documentation, how to use sleep() to code a Python uptime bot, monitor your home’s temperature and humidity with Raspberry Pis and Prometheus, and a fast Settlers of Catan Python implementation with a strong AI player.
Course Spotlight: Using sleep() to Code a Python Uptime Bot
In this course, you’ll learn how to add time delays to your Python programs. You’ll use the built-in time module to add Python sleep() calls to your code. To practice, you’ll use time.sleep() when making an uptime bot that checks whether a website is still live.
Topics:
00:00:00 – Introduction
00:02:43 – The Walrus Operator: Python 3.8 Assignment Expressions
00:12:41 – Replit.web: Python Framework With Built-in Database and Auth
00:16:55 – Sponsor: Gather
00:17:39 – Do Coders Learn How to Use Entire Libraries Just From the Docs?
00:26:15 – Using sleep() to Code a Python Uptime Bot
00:31:53 – Monitor Home Temperature and Humidity With Raspberry Pis and Prometheus
00:39:51 – Video Course Spotlight
00:40:57 – What to Do When You Botch a Release on PyPI
00:47:25 – catanatron: Fast Settlers of Catan Python Implementation
00:50:37 – python-launcher: Python Launcher for Unix
00:56:59 – Thanks and goodbye
Show Links:
The Walrus Operator: Python 3.8 Assignment Expressions – In this tutorial, you’ll learn about assignment expressions and the walrus operator. The biggest change in Python 3.8 was the inclusion of the := operator, which you can use to assign variables in the middle of expressions. You’ll see several examples of how to take advantage of this new feature.
Replit.web: A Python Framework With Built-in Database and Auth Support – The folks over at replit have released a new Python web framework with built-in authentication and database support and, more interestingly, hosting. In a few lines of code, you can have a Python web app connected to a database, authenticating users, and hosted on replit. This could be a great tool for quickly building and hosting prototypes or experimental projects.
Do Coders Really Learn How to Use Entire Libraries Just From the Documentation? – How do you learn a new library? Do you start with the docs? What do you do if the documentation is lacking? Or do you first search for video lessons or written tutorials?
Using sleep() to Code a Python Uptime Bot – Learn how to add time delays to your Python programs. You’ll use the built-in time module to add Python sleep() calls to your code. To practice, you’ll use time.sleep() when making an uptime bot that checks whether a website is still live.
Monitor Your Home’s Temperature and Humidity With Raspberry Pis and Prometheus – Do you enjoy collecting and analyzing data, or are you looking for a fun project to improve your data skills? Do you also enjoy tinkering with hardware? Then this project might be a fun one for you to check out! Learn how to set up a RaspberryPi using Prometheus to collect and monitor temperature sensor data.
What to Do When You Botch a Release on PyPI – Mistakes happen to everyone. But what do you do if you make a mistake when releasing a package to PyPI? Don’t panic! There are a number of things you can do to fix a bad release. This article walks you through several scenarios and suggested solutions.
Projects:
catanatron: Fast Settlers of Catan Python Implementation and Strong AI Player
python-launcher: Python Launcher for Unix
Additional Links:
Python sleep(): How to Add Time Delays to Your Code: Real Python Article
Cool New Features in Python 3.8: Real Python Article
PEP 572 – Assignment Expressions: Python.org
Prometheus
Set up temperature sensors in your home with a Raspberry Pi: Opensource.com
Run Prometheus at home in a container: Opensource.com
Raspberry Pi Humidity Sensor using the DHT22: PiMyLifeUp
Episode 47: Unraveling Python’s Syntax to Its Core With Brett Cannon
Episode 43: Deep Reinforcement Learning in a Notebook With Jupylet + Gaming and Synthesis
Level up your Python skills with our expert-led courses:
How to Publish Your Own Python Package to PyPI
Cool New Features in Python 3.8
Using sleep() to Code a Python Uptime Bot
Support the podcast & join our community of Pythonistas

Aug 13, 2021 • 1h 1min
Supporting Python Open Source Projects and Maintainers
How do you define open source software? What are the challenges an open source project and maintainers face? How do maintainers receive financial, legal, security, or other types of help? This week on the show, we have Josh Simmons from Tidelift and the Open Source Initiative to help answer these questions.
Josh does open source ecosystem strategy for Tidelift. We talk about what Tidelift is and how they support maintainers. We also discuss the types of support maintainers need and the barriers that can block that support.
Josh also serves as President of the Open Source Initiative. OSI is actively involved in open source community-building and education. He talks about how collectives and foundations can be powerful tools in the open source ecosystem.
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:01:49 – What is Tidelift?
00:03:41 – What is your role?
00:05:28 – What is a lifter?
00:06:50 – How much software used by businesses is open-source?
00:10:26 – Comparing risks of proprietary, open-source, and commercial software
00:18:52 – How to define a project as open-source
00:30:17 – Defining rights and freedoms of open-source
00:32:39 – Sponsor: Sentry
00:33:43 – Obstacles in the way for contributions
00:42:51 – Other types of support open-source contributors need
00:46:55 – A goal to work with foundations and individual maintainers
00:49:54 – Benefits of improved documentation, a force multiplier
00:51:26 – Video Course Spotlight
00:52:37 – What makes a managed open-source project?
00:54:58 – What are you excited about in the world of Python?
00:55:51 – What do you want to learn next?
00:57:10 – Shoutout and call to action
00:59:27 – Social media information
00:59:46 – Thanks and goodbye
Show Links:
Joshua R. Simmons: Website
Tidelift: A better way to manage open source
What motivates open source maintainers?: TideLift YouTube
Tidelift: Are you an open source maintainer?
Better together: cultivating an open source ecosystem that works for everyone
Open Source Initiative: Guaranteeing the ‘our’ in source
The Open Source Definition: 10 Criteria
Open Source Collective: Non-profit fiscal host promoting a healthy and sustainable open source ecosystem
Software Freedom Conservancy: A not-for-profit charity that helps promote, improve, develop, and defend Free, Libre, and Open Source Software (FLOSS) projects
Software Freedom Conservancy: Wikipedia Article
Django Software Foundation: About
Python Software Foundation: Membership
Josh Simmons Twitter
Level up your Python skills with our expert-led courses:
Python Inner Functions
Documenting Code in Python
How to Publish Your Own Python Package to PyPI
Support the podcast & join our community of Pythonistas

Aug 6, 2021 • 46min
Starting With FastAPI and Examining Python's Import System
Have you heard of FastAPI? An application programming interface is vital to make your software accessible to users across the internet. FastAPI is an excellent option for quickly creating a web API that implements best practices. This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects.
We share an introduction to FastAPI written by the framework’s author, Sebastián Ramírez. The goal behind the article is to get you started creating production-ready APIs.
David covers an article about the Python import system and how it remains a mystery for many Python developers. We share some additional Real Python resources on the import system and statements.
We cover several other articles and projects from the Python community including, a buffet of specialized data types with Python’s collections module, maps with Django using GeoDjango, PostGIS, and Leaflet, moving SciPy to the Meson build system, what’s new in Python 3.11, a community-maintained Python framework for creating mathematical animations, and easily make PDFs with pdfme.
Course Spotlight: Python Modules and Packages: An Introduction
In this course, you’ll explore Python modules and Python packages, two mechanisms that facilitate modular programming. See how to write and import modules so you can optimize the structure of your own programs and make them more maintainable.
Topics:
00:00:00 – Introduction
00:02:18 – Python’s collections: A Buffet of Specialized Data Types
00:08:07 – Maps With Django: GeoDjango, PostGIS, and Leaflet
00:12:12 – Moving SciPy to the Meson Build System
00:18:16 – Sponsor: Sentry
00:19:18 – What’s New In Python 3.11
00:24:32 – Behind the Scenes: How the Python Import System Works
00:31:34 – Video Course Spotlight
00:32:40 – Using FastAPI to Build Python Web APIs
00:38:42 – manim: A Community-Maintained Python Framework for Creating Mathematical Animations
00:41:56 – pdfme: Make PDFs Easily
00:44:42 – Thanks and goodbye
Show Links:
Python’s collections: A Buffet of Specialized Data Types – Python has a number of useful data types beyond the built-in lists, tuples, dicts, and sets. In this tutorial, you’ll learn all about the series of specialized container data types in the collections module from the Python standard library. Learning the collections module is a great way to level up your Python programming knowledge!
Maps With Django: GeoDjango, PostGIS, and Leaflet – This quickstart guide shows you how to create a web map using Django’s GeoDjango module. Data for the map is stored in a PostgreSQL database using the PostGIS extension, and Leaflet, a lightweight JavaScript library for interactive maps, is used on the front-end. You’ll not only learn how to set up the Django application and display the map but also add markers to the map and automatically center the map on the application user’s location.
Moving SciPy to the Meson Build System – In accordance with PEP 632, distutils will be deprecated in Python 3.10 and in Python 3.12 it will be removed. This posed a big problem for SciPy, since it’s build system depends on NumPy’s distutils module — an extension of Python’s built-in distutils. The SciPy maintainers set out to find a new build system and settled on Meson, which solves a number of build issues and even scores a 4x speed-up on build times!
What’s New In Python 3.11 – Python 3.10 is still in beta, but work on Python 3.11 has already begun. Big changes include some major improvements to tracebacks as well as a new cube root function in the math module.
Behind the Scenes: How the Python Import System Works – Importing a Python module is probably one of the most used language features. But Python’s import system remains a mystery to many Python developers, even folks with years of experience. This in-depth article explores how the import system works from the top down. You’ll learn everything from the difference is between absolute and relative imports to how Python searches for modules and packages and resolves naming conflicts.
Using FastAPI to Build Python Web APIs – In this guide, written by FastAPI creator Sebastián Ramírez, you’ll learn the main concepts of FastAPI and how to use it to quickly create web APIs that implement best practices by default. By the end of it, you will be able to start creating production-ready web APIs.
Projects:
manim: A Community-Maintained Python Framework for Creating Mathematical Animations
pdfme: Make PDFs Easily
Additional Links:
Common Python Data Structures (Guide): Real Python
OrderedDict vs dict in Python: The Right Tool for the Job: Real Python Article
Python’s Counter: The Pythonic Way to Count Objects: Real Python Article
Make a Location-Based Web App With Django and GeoDjango: Real Python Article
Make a Location-Based Web App With Django and GeoDjango: Real Python Course
Python import: Advanced Techniques and Tips: Real Python Article
Absolute vs Relative Imports in Python: Real Python Article
Python Modules and Packages: An Introduction - Real Python Course
Level up your Python skills with our expert-led courses:
Building HTTP APIs With Django REST Framework
Build a Location-Based Web App With Django and GeoDjango
Python Modules and Packages: An Introduction
Support the podcast & join our community of Pythonistas