

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

Dec 24, 2021 • 1h 4min
2021 Real Python Articles Wrap Up
It’s been a year of change at Real Python! The Real Python team has written, edited, curated, illustrated, and produced a mountain of Python articles this year. We also added many new members to the team, updated the site’s features, and created new styles of tutorials and projects.
Two members of the Real Python team join us this week, Martin Breuss and Sadie Parker. We wanted to share a year-end wrap-up with a collection of articles and step-by-step projects that showcase what our team created this year.
Sadie and Martin help to shepherd articles through the multi-stage editing process. Along with the rest of the team, they make sure these resources impart crucial Python knowledge and provide a thorough didactic experience.
We hope you enjoy this review! Programming note, there won’t be an episode next week, but we will be back in January and look forward to bringing you a year full of great guests, articles, and topics.
Course Spotlight: Using Pygame to Build an Asteroids Game in Python
In this course, you’ll learn the basics of creating powerful web applications with In this course, you’ll build a clone of the Asteroids game in Python using Pygame. Step by step, you’ll add images, input handling, game logic, sounds, and text to your program.
Topics:
00:00:00 – Introduction
00:02:24 – Changes at Real Python Over 2021
00:10:11 – Build a Platform Game in Python With Arcade
00:13:40 – Make Your First Python Game: Rock, Paper, Scissors!
00:20:00 – Build a Content Aggregator in Python
00:25:30 – Video Course Spotlight
00:26:45 – Python Inner Functions: What Are They Good For?
00:30:44 – Build a Personal Diary With Django and Python
00:34:14 – Hosting a Django Project on Heroku
00:42:00 – Python & APIs: A Winning Combo for Reading Public Data
00:46:03 – Beautiful Soup: Build a Web Scraper With Python
00:52:25 – Advanced Visual Studio Code for Python Developers
00:59:55 – A Few Special Mentions, Data Science, and More
01:02:33 – Thanks and goodbye
Show Links:
Build a Platform Game in Python With Arcade – Real Python
Make Your First Python Game: Rock, Paper, Scissors! – Real Python
Build a Content Aggregator in Python – Real Python
Python Inner Functions: What Are They Good For? – Real Python
Build a Personal Diary With Django and Python – Real Python
Hosting a Django Project on Heroku – Real Python
Python & APIs: A Winning Combo for Reading Public Data – Real Python
Beautiful Soup: Build a Web Scraper With Python – Real Python
Advanced Visual Studio Code for Python Developers – Real Python
Python AI: How to Build a Neural Network & Make Predictions – Real Python
Stochastic Gradient Descent Algorithm With Python and NumPy – Real Python
Prettify Your Data Structures With Pretty Print in Python – Real Python
Additional Links:
Episode #60: Building a Platform Game With Arcade and Covering Python News Monthly – The Real Python Podcast
The Python Arcade Library
Arcade: A Primer on the Python Game Framework
Rock, Paper, Scissors With Python: A Command Line Game – Video Course
Build an Asteroids Game With Python and Pygame – Real Python
Godot Engine - Free and open source 2D and 3D game engine
Episode #87: Building a Content Aggregator and Working With RSS in Python – The Real Python Podcast
Python Inner Functions – Video Course
Host Your Django Project on Heroku – Video Course
Finding the Perfect Python Code Editor – Video Course
Episode #12: Web Scraping in Python: Tools, Techniques, and Legality – The Real Python Podcast
Web Scraping With Beautiful Soup and Python – Video Course
Level up your Python skills with our expert-led courses:
Using Pygame to Build an Asteroids Game in Python
Host Your Django Project on Heroku
Web Scraping With Beautiful Soup and Python
Support the podcast & join our community of Pythonistas

Dec 17, 2021 • 54min
A Python Journey: Cyber Security, Automating AWS, and TDD
The Python community continually grows, with many users coming from different languages and backgrounds. This week on the show, we talk with developer Hugh Tipping about his Python journey. Hugh is also a member of the Real Python community.
Hugh has a background in programming C and Perl and started to use Python in a cyber security job. He explains the way he used Python to search for malware. Hugh provides some suggestions for security packages and tools.
Recently Hugh has been working with Amazon Web Services (AWS) and using the Boto3 library to automate services and manage credentials. We also discuss his affinity for test-driven development and the use of pytest.
Course Spotlight: Host Your Django Project on Heroku
In this course, you’ll learn how to host your Django project in the cloud for free and with little hassle. You’ll use Heroku, which takes the burden of infrastructure management off your shoulders.
Topics:
00:00:00 – Introduction
00:01:44 – How did you get introduced to Python?
00:05:52 – What types of tasks were you doing in cyber security?
00:10:21 – Why do you think Python is popular for cyber security?
00:14:57 – Python libraries to check for security vulnerabilities
00:18:07 – Sponsor: Cloudsmith
00:18:52 – Boto3 for managing AWS with Python
00:25:21 – What is your background with test-driven development?
00:33:58 – Video Course Spotlight
00:35:22 – Finding Real Python and learning about Python tools
00:41:42 – Getting involved in the Real Python community
00:45:45 – What are excited about in the world of Python?
00:47:32 – What do you want to learn next?
00:53:14 – Thanks and goodbye
Show Links:
An Introduction to the PyCQA — PyCQA Meta Documentation 1.0 documentation
bandit · PyPI
safety · PyPI
Anchore • Container Security Solutions For DevSecOps
Snyk | Develop fast. Stay secure.
Single sign-on - Wikipedia
Developer guide — Boto3 Docs 1.20.24 documentation
AWS Developer Center | Python Tutorials, APIs, SDKs, Docs
What is Apache Kafka? | AWS
Test-driven development - Wikipedia
pytest: helps you write better programs — pytest documentation
Effective Python Testing With Pytest – Real Python
Build a Content Aggregator in Python – Real Python
pyenv/pyenv: Simple Python version management
Managing Multiple Python Versions With pyenv – Real Python
Poetry - Python dependency management and packaging made easy
boltons — boltons 21.0.0 documentation
Join the Real Python Community Slack – Real Python
Level up your Python skills with our expert-led courses:
Test-Driven Development With pytest
Start Managing Multiple Python Versions With pyenv
Host Your Django Project on Heroku
Support the podcast & join our community of Pythonistas

Dec 10, 2021 • 57min
Solving Advent of Code Puzzles With Python
Are you ready to break open the first days of puzzles from the annual Advent of Code challenge? Advent of Code is an advent calendar of twenty-five programming puzzles published each December. Practicing solving puzzles is a great way to build your Python skills. This week on the show, we have previous guest and Real Python author Geir Arne Hjelle to discuss his recent article titled, “Advent of Code: Solving Your Puzzles With Python.”
We discuss the history of this online Advent calendar and the creator Eric Wastl. Geir Arne covers techniques to help you organize your code and test when solving the puzzles. He shares additional Python tools for parsing text, managing puzzle data, and visualizing your program output. We also talk about even more places you can practice solving programming puzzles.
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:03 – Geir Arne’s new full-time role at Real Python
00:02:55 – Advent of Code: Solving Your Puzzles With Python
00:09:25 – Using different languages to solve the puzzles
00:12:21 – Different ways to approach the problems
00:16:31 – Sponsor: CData Software
00:17:12 – Organizing your code into reusable functions
00:19:38 – Unique user source data and managing puzzle data
00:24:40 – Additional Python tools that might be useful
00:31:13 – Video Course Spotlight
00:32:42 – Ways to enhance code output and visualization
00:34:50 – Leaderboards
00:37:52 – Real Python office hours discussion of Advent of Code
00:39:30 – Additional resources to practice solving puzzles with Python
00:50:15 – Supporting Advent of Code
00:50:40 – What are you excited about in the world of Python?
00:51:59 – What do you want to learn next?
00:55:52 – Thanks and goodbye
Show Links:
About Geir Arne Hjelle – Real Python
Advent of Code: Solving Your Puzzles With Python – Real Python
Advent of Code: Solving Puzzles With Python - Real Python
Advent of Code 2021
Python Community Interview With Eric Wastl – Real Python
Eric Wastl - Advent of Code: Behind The Scenes - Leetspeak 2019 - YouTube
r/adventofcode: Visualizations - reddit.com
About - Project Euler
Exercism: 55 languages for you to master
Codewars - Achieve mastery through coding practice and developer mentorship
HackerRank
TwilioQuest - Discover your power to change the world with code.
Data Puzzles: Sharpen your Data Science skills
makersacademy/clmystery: Command Line Murder Mystery
Learn VIM while playing a game - VIM Adventures
Support AoC - Advent of Code 2021
The Elixir programming language
Live stream with José Valim, creator of Elixir, solving AoC - josevalim - Twitch
Numerical Elixir (Nx)
Level up your Python skills with our expert-led courses:
Regular Expressions and Building Regexes in Python
Test-Driven Development With pytest
Strings and Character Data in Python
Support the podcast & join our community of Pythonistas

Dec 3, 2021 • 1h 21min
Discussing Type Hints, Protocols, and Ducks in Python
There seem to be three kinds of Python developers: those unaware of type hints or have no opinion, ones that embrace them, and others who have an allergic reaction at the mention of them. Python is famously a dynamically typed language, but there are advantages to adding type hints to your code. This week on the show, we have Luciano Ramalho to discuss his recent talk titled, “Type hints, protocols, and good sense.”
Luciano was not a fan of type hints. He’s only recently come around to their potential with the introduction of protocols in PEP 544. Python has adopted a gradual type system that is optional at all levels. We discuss the advantages, pitfalls, and recent developments around type hinting in Python.
We also talk about the second edition of Luciano’s book Fluent Python. He researched type hints in-depth for the book, which led to his recent conference talks on the subject. He also shares his experience with adding opinionated asides to the book in a fun and unique way.
Course Spotlight: Python Type Checking
In this course, you’ll look at Python type checking. Traditionally, types have been handled by the Python interpreter in a flexible but implicit way. Recent versions of Python allow you to specify explicit type hints that can be used by different tools to help you develop your code more efficiently.
Topics:
00:00:00 – Introduction
00:02:02 – Are you interested in creative uses for Python?
00:04:41 – Protocol: The keystone of type hints
00:08:14 – What is duck typing?
00:12:44 – Protocols declaring one method and emerging from a code base
00:17:04 – An example where type hint was too lax
00:21:20 – What if Python always had a strict type system?
00:33:23 – Sponsor: Cloudsmith
00:34:09 – Bias in companies using type hints, and projects that fail checking
00:40:27 – Background on personal use of type hints and added complexity
00:45:07 – Unsuitability of type hints for checking business rules
00:52:30 – Video Course Spotlight
00:53:46 – Fluent Python, 2nd edition
00:56:05 – Who is the intended developer for the book?
00:58:12 – Soapbox sections of the book
00:59:35 – What were things you were excited to update or add to the book?
01:05:46 – Metaprogramming portion of the book
01:08:17 – What are you excited about in the world of Python?
01:10:35 – What do you want to learn next?
01:18:41 – Shoutouts, plugs, and/or social connections
01:19:47 – Thanks and goodbye
Show Links:
Fluent Python, 2nd Edition
Protocol: The keystone of type hints - Luciano Ramalho | PyCon US 2021
Type hints, protocols, and good sense: PyCon India 2021 - Speaker Deck
Generate buzz with realtime FM audio synthesis - Łukasz Langa | PyCon US 2021
Garoa Hacker Clube
Processing.py - Tutorials
PEP 544 – Protocols: Structural subtyping (static duck typing) | Python.org
typeshed: Collection of library stubs for Python, with static types
Python Type Checking (Guide) – Real Python
Protocols and structural subtyping — Mypy documentation
Dependent type - Wikipedia
microsoft/pyright: Static type checker for Python
Welcome to mypy documentation!
PEP 487 – Simpler customisation of class creation | Python.org
PEP 636 – Structural Pattern Matching: Tutorial | Python.org
What’s New In Python 3.10 — Better error messages
Flutter - Build apps for any screen
Ramalho.org/wiki
Luciano Ramalho Twitter(@ramalhoorg)
Level up your Python skills with our expert-led courses:
Using Pygame to Build an Asteroids Game in Python
Records and Sets: Selecting the Ideal Data Structure
Python Type Checking
Support the podcast & join our community of Pythonistas

Nov 19, 2021 • 58min
Building a Content Aggregator and Working With RSS in Python
Have you wanted to work with RSS feeds in Python? Maybe you’re looking for a new project to build for your portfolio that uses Django, unit tests, and custom commands. This week on the show, we have Real Python author Ricky White to talk about his recent step-by-step project titled, “Build a Content Aggregator in Python.”
Ricky has been authoring the Real Python interview series for several years and was formerly our Community Manager. He talks about what inspired him to create this project and the Python technology and libraries to build it. He also shares advice about adding tests to personal portfolio projects.
We start the show by discussing Python’s GIL (Global Interpreter Lock) and the efforts to potentially remove it in future versions of Python. This change could make a significant impact on Python code running on multi-core processors. We talk about two recent articles covering the developments.
Course Spotlight: Get Started With Django: Build a Portfolio App
In this course, you’ll learn the basics of creating powerful web applications with Django, a Python web framework. You’ll build a portfolio website to showcase your web development projects, complete with a fully functioning blog.
Topics:
00:00:00 – Introduction
00:02:07 – Citizenship
00:03:52 – Ricky’s Real Python interviews
00:05:55 – Upcoming interview with Eric Wastl about Advent of Code
00:08:05 – Notes From the Meeting On Python GIL Removal
00:18:41 – Sponsor: Cloudsmith
00:19:26 – Build a Content Aggregator in Python
00:20:28 – Django background
00:23:37 – What web technologies were you using before Python?
00:25:07 – What motivated the project?
00:26:46 – Technical hurdles
00:30:52 – Including tests in a portfolio project
00:32:56 – Django custom commands
00:37:02 – Video Course Spotlight
00:38:16 – RSS Feeds - Really Simple Syndication and Podcasts
00:42:16 – Working with django-apscheduler
00:47:06 – Taking the project further and CSS frameworks
00:51:04 – What are you excited about in the world of Python?
00:53:58 – What do you want to learn next?
00:55:52 – Shoutouts and social connections
00:56:57 – Thanks and goodbye
Show Links:
About Ricky White – Real Python
Build a Content Aggregator in Python: Real Python project-based tutorial
About - Advent of Code 2021
A viable solution for Python concurrency: LWN.net
Notes From the Meeting On Python GIL Removal Between Python Core and Sam Gross
What Is the Python Global Interpreter Lock (GIL)? – Real Python
nogil: Python Multithreading without GIL
Walk AS One
What is Ankylosing Spondylitis?
Spondy News
Writing custom django-admin commands | Django documentation
django-apscheduler - A Django app that adds a lightweight wrapper around APScheduler
RabbitMQ - Messaging that just works
RSS: Really Simple Syndication- Wikipedia
Flipboard - Stories from 28,875 topics personalized for you
NetNewsWire: Free and Open Source RSS Reader for Mac and iOS
Welcome to Feedly
Bootstrap - The most popular HTML, CSS, and JS library in the world
Tailwind CSS - Rapidly build modern websites without ever leaving your HTML
Python Software Foundation News: 2021 End of the year fundraiser!
Structural Pattern Matching Python 3.10: Cool New Features for You to Try
Ricky’s Twitter- (@endlesstrax)
Endlesstrax: Ricky’s Website
Level up your Python skills with our expert-led courses:
Getting Started With Django: Building a Portfolio App
Test-Driven Development With pytest
How to Set Up a Django Project
Support the podcast & join our community of Pythonistas

Nov 12, 2021 • 1h 22min
The Legacy of OLPC and Charismatic Pitfalls in Teaching Programming
Do you remember the One Laptop Per Child program? What went wrong, and what can we learn from the program’s failure? What are the potential pitfalls of charismatic technology, and how can we avoid them when introducing students to programming? This week on the show, former guest Al Sweigart and author Morgan Ames are here to talk about her book “The Charisma Machine - The Life, Death, and Legacy of One Laptop per Child.”
We discuss the OLPC program and how idealized visions of our programming backgrounds can become traps. Morgan explains how these utopian visions are still used to attempt to disrupt education. Along with this cautionary tale, we also talk about educational programs that are working and how entry points to programming are changing.
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:13 – Morgan’s background
00:02:58 – Computer Science and Information Science
00:04:46 – Early introduction of computers to schools
00:08:25 – What was the One Laptop Per Child (OLPC) Program?
00:12:32 – Turtle art and Scratch
00:16:34 – Sponsor: CData Software
00:17:15 – What is the global south?
00:19:12 – How does charisma apply to objects and technology?
00:28:30 – Python language design and Learn to Code
00:34:53 – Media technology scares and the self taught coder
00:40:35 – Video Course Spotlight
00:41:41 – Technically precocious boys and exclusion of others
00:43:47 – Minecraft and technology maintenance skills
00:49:08 – Skewed utopian visions and lack of ongoing support
00:52:54 – Shifting feminine vs masculine perceived roles in computing
01:02:41 – Changing entry points for programming
01:09:00 – The why of “learn to code” and empowerment
01:13:13 – Metaverse, nostalgia, and dystopia
01:14:45 – The Diamond Age and Code Hero Kickstarter
01:16:53 – Avoiding future charismatic traps
01:18:28 – Shoutouts and social connections
01:21:04 – Thanks and goodbyes
Show Links:
Morgan G. Ames: Personal Website
The Charisma Machine: The Life, Death, and Legacy of One Laptop per Child
Al Sweigart: Personal Website
The OLPC Wiki
Logo History: Logo Foundation
Seymour Papert: Wikipedia article
Mitchel Resnick - LEGO Papert Professor of Learning Research at the MIT Media Lab
Sounding Out with the OLPC XO: Linux Journal
Scratch: The world’s largest free coding community for kids
VR Will Make Life Better—Or Just Be an Opiate for the Masses
The Perils of Using Technology to Solve Other People’s Problems
Gender & Computing - Nathan Ensmenger
Disruptive Fixation: School Reform and the Pitfalls of Techno-Idealism
Connected Learning Lab: Research Themes
STEM vs. STEAM: Why One Letter Matters
Black Girls CODE
Code Hero: A Game That Teaches You To Make Games
Chasing Innovation: The Limits of Entrepreneurship - Online talk
Turkopticon helps the people in the ‘crowd’ of crowdsourcing watch out for each other—because nobody else seems to be.
Morgan G. Ames: Twitter profile
Invent With Python: Learn to Program
Level up your Python skills with our expert-led courses:
Using pandas to Make a Gradebook in Python
Command Line Interfaces in Python
Grow Your Python Portfolio With 13 Intermediate Project Ideas
Support the podcast & join our community of Pythonistas

Nov 5, 2021 • 1h 2min
Exploring Django Templates, Tags, and Filters
Are you getting the most out of the Django framework? It’s a powerful web framework if you’re not interested in reinventing the wheel. Django includes a useful template system with inheritance for composing reusable HTML. This week on the show, we have previous guest and Real Python author Christopher Trudeau to talk about his recent articles and courses about Django.
Christopher explains how Django templates help you avoid rewriting large portions of HTML for your web applications. His first article covers the built-in tags and filters provided by the framework. The second one dives into how customize and implement your own filters and tags. Christopher also talks about his process for choosing topics for articles and courses.
We start the episode by covering a recent article by CPython Developer in Residence, Łukasz Langa. We talked in a previous episode about his plan to study where all the Python core developer activity goes. He’s gathered several years of GitHub data, and we discuss the post.
Course Spotlight: Building With Django REST Framework
This course will get you ready to build with Django REST Framework. The Django REST framework (DRF) is a toolkit built on top of the Django web framework that reduces the amount of code you need to write to create REST interfaces.
Topics:
00:00:00 – Introduction
00:02:03 – Where does all the effort go? Looking at Python core developer activity
00:07:23 – Notes From the Meeting On Python GIL Removal Between Python Core and Sam Gross
00:08:36 – Django background
00:11:28 Flask vs Django
00:14:37 – Django Templates: Built-In Tags and Filters
00:25:26 – Sponsor: Cloudsmith
00:26:12 – Django Templates: Implementing Custom Tags and Filters
00:32:54 – Django Rest Framework - video course
00:42:09 – Video Course Spotlight
00:43:16 – What goes into picking an article to turn into a course?
00:53:18 – What are you excited about in the world of Python?
00:57:00 – Support Django development by donating to the Django Software Foundation
01:00:55 – Thanks and goodbye
Show Links:
About Christopher Trudeau: Real Python Page
arSensa: Christopher’s personal website
Where does all the effort go? Looking at Python core developer activity
Episode 82: Welcoming the CPython Developer in Residence
Notes From the Meeting On Python GIL Removal Between Python Core and Sam Gross
nogil: Python Multithreading without GIL
Django Templates: Built-In Tags and Filters - Real Python Article
Django Templates: Implementing Custom Tags and Filters - Real Python Article
Django: The web framework for perfectionists with deadlines
Asciimatics: A cross-platform package to replace curses and create ASCII animations
Asciimatics: GitHub Repo
Support Django development by donating to the Django Software Foundation
Level up your Python skills with our expert-led courses:
Building HTTP APIs With Django REST Framework
Django View Authorization: Restricting Access
Getting Started With Django: Building a Portfolio App
Support the podcast & join our community of Pythonistas

Oct 29, 2021 • 1h 2min
Creating and Manipulating PDFs in Python With borb
Have you wanted to generate PDFs from your Python project? Many of the current libraries require designing the document down at the pixel level. Would you be interested in a tool that lets you specify the page layout while it handles the specific details of laying out the text? This week on the show, we talk with Joris Schellekens about his library for creating and manipulating PDFs named borb.
borb is a pure Python library that can read, write and manipulate PDFs. You can use it to build fillable forms, invoices with attached data files, and multiple column document layouts. We discuss the extensive example repository Joris has created for the library.
Joris shares his background in working with PDFs. He talks about starting the project and the challenges he had to overcome. We also talk about licensing and maintaining an open-source library.
Course Spotlight: Writing Idiomatic Python
What are the programming idioms unique to Python? This course is a short overview for people coming from other languages and an introduction for beginners to the idiomatic practices within Python. You’ll cover truth values, looping, DRY principles, and the Zen of Python.
Topics:
00:00:00 – Introduction
00:01:58 – Articles about borb
00:03:25 – History of the project
00:07:26 – Background in PDFs and Postscript
00:09:18 – Signatures and other challenges of working in PDFs
00:11:33 – Reading from PDFs and standards of versions
00:14:54 – Features of the library and creating documents
00:18:25 – Creating layout features
00:20:42 – How are fonts handled in borb?
00:21:19 – Sponsor: Cloudsmith
00:22:04 – Why use JSON across the library?
00:22:55 – Embedding data and files within a PDF
00:25:12 – What features were crucial for you to include in borb?
00:28:48 – Why creating a separate examples repository?
00:31:04 – Article series about borb
00:32:25 – Writing a book about borb
00:33:44 – Python 3.10 and borb
00:34:19 – Video Course Spotlight
00:35:39 – Licensing borb and AGPL
00:45:14 – Other open-source projects and Stack Overflow answers
00:46:37 – Working with forms in borb
00:47:55 – Additional tools for working with PDFs
00:50:15 – Different users of the library
00:53:36 – Thoughts on the future of PDFs
00:58:10 – What are you excited about in the world of Python?
00:58:40 – What do you want to learn next?
01:00:25 – Social connection info
01:00:46 – Thanks and goodbye
Show Links:
borb: A Python PDF library
borb Examples Repository
Creating a PDF Document in Python with borb
Creating PDF Invoices in Python with borb
Creating a Form in a PDF Document in Python With borb
iText PDF
ISO 32000 (PDF): the family of ISO standards that defines the core PDF specification
XRechnung update: What you should know about electronic invoices to the German public sector!
XRechnung: Standard format for German authorities from 2020
AGPL: Affero General Public License - Wikipedia
Ghostscript: Interpreter for the PostScript language and for PDF
veraPDF: Industry Supported PDF/A Validation
Okular: The Universal Document Viewer
Keras and Tensorflow: Getting Started
Level up your Python skills with our expert-led courses:
How to Work With a PDF in Python
Documenting Code in Python
Writing Idiomatic Python
Support the podcast & join our community of Pythonistas

Oct 22, 2021 • 1h 2min
Ready to Publish Your Python Packages?
Are you interested in sharing your Python project with the broader world? Would you like to make it easily installable using pip? How do you create Python packages that share your code in a scalable and maintainable way? This week on the show, Real Python author and former guest Dane Hillard returns to talk about his new book, “Publishing Python Packages.”
Dane shares his research into creating Python packages. We talk about the tools, techniques, and potential pitfalls of publishing your packages. Dane also discusses his experiences unraveling projects and determining dependencies.
We also talk about Dane’s recent conference talk at PyGotham titled “Keeping code safe and modern with semantic searches.” He shares some security tools and practices.
Course Spotlight: Documenting Python Code: A Complete Guide
This course will get you up to speed with how to document your Python code. Documenting your code is an important step to help developers and users fully understand its usage and purpose.
Topics:
00:00:00 – Introduction
00:01:57 – PyGotham Talk: Keeping code safe and modern with semantic searches
00:06:24 – What was the driving reason for starting Publishing Pyhton Packages?
00:08:54 – What is CookieCutter?
00:11:53 – The book as a research project
00:15:20 – Sponsor: CData Software
00:16:01 – What is a package?
00:18:56 – What is a published package?
00:25:37 – What other experiences made you want to write this book?
00:28:05 – Where to start?
00:33:26 – Balance of examples and explanation
00:40:49 – Cohesion and studying the relationships between sections of code
00:46:19 – Documentation and tools like Sphinx
00:50:18 – Video Course Spotlight
00:51:30 – What were you most excited to share in the book?
00:54:06 – Additional resources for packaging
00:57:17 – What are you excited about in the world of Python?
00:57:53 – What do you want to learn next?
00:59:30 – Shout outs and plugs
01:00:28 – Thanks and goodbye
Show Links:
About Dane Hillard
Publishing Python Packages - Manning Early Access Program (MEAP)
Episode 49: The Challenges of Developing Into a Python Professional
Keeping code safe and modern with semantic searches - Dane Hillard
Semgrep: Static analysis at ludicrous speed
SonarSource: Code Quality & Code Security
Snyk: Find and automatically fix vulnerabilities in your code
CookieCutter: Better Project Templates
Obsidian: A powerful knowledge base on top of a local folder of plain text Markdown files
The Python Package Index (PyPI): A repository of software for the Python programming language
PIP: The package installer for Python
Graphviz -Open source graph visualization software
cibuildwheel - Builds and tests your wheels across all of your platforms
Sphinx: A tool that makes it easy to create intelligent and beautiful documentation
Documenting Python Code: A Complete Guide - Real Python Article
Python Packaging User Guide - Python Packaging Authority
How to Publish an Open-Source Python Package to PyPI - Real Python Article
What Are Python Wheels and Why Should You Care? - Real Python Article
PEP 517 – A build-system independent format for source trees
PEP 518 – Specifying Minimum Build System Requirements for Python Projects
PEP 440 – Version Identification and Dependency Specification
Episode 29: Resolving Package Dependencies With the New Version of Pip
Episode 80: Make Your Python App Interactive With a Text User Interface (TUI) - With Will McGugan
Webpack - Module Federation
PyGotham 2021
Publishing Python Packages - Manning Early Access Program (MEAP)
Level up your Python skills with our expert-led courses:
Using Pygame to Build an Asteroids Game in Python
Cool New Features in Python 3.10
Documenting Code in Python
Support the podcast & join our community of Pythonistas

Oct 15, 2021 • 1h 33min
Welcoming the CPython Developer in Residence
Earlier this year, the Python Software Foundation announced the creation of the Developer in Residence role. The first Visionary Sponsors of the PSF have provided funding for this new role for one year. What development responsibilities does this job address? This week on the show, we talk to previous guest Łukasz Langa about becoming the first CPython Developer in Residence.
We talk about how the first months in this role are shaping up. Łukasz discusses the need to address the backlog of open issues and pull requests. He also talks about how he is working to help the project’s volunteers move their contributions forward.
We cover his PyCon 2021 talk about generating real-time FM audio synthesis in Python. He also shares his experience developing a similar synthesis engine for an embedded hardware project.
Course Spotlight: Speech Recognition With Python
In this course, you’ll cover the fundamentals of speech recognition with Python. You’ll learn which speech recognition library gives the best results and build a full-featured “Guess The Word” game with it.
Topics:
00:00:00 – Introduction
00:01:51 – PyCon 2021 talk
00:20:54 – CPython Developer in Residence: Why did you want the role?
00:29:23 – Sponsor: DataStax Astra DB
00:29:55 – What were the expected responsibilities of the role?
00:35:47 – Working through BPO issues and GitHub pull requests
00:42:14 – Moving to migrate the systems
00:51:10 – Video Course Spotlight
00:52:26 – What trends can you see currently?
00:57:28 – Do you feel the amount of activity is increasing due to the role being in place?
01:03:46 – What skills would you look for in a person in this role?
01:07:26 – If there was a team of people how would things be different?
01:11:00 – How to follow along with the journey?
01:13:35 – Gathering and sharing data about the process
01:18:45 – What are you excited about in the world of Python?
01:25:04 – What do you want to learn next?
01:26:41 – Shout outs and plugs
01:31:36 – Thanks and goodbye
Show Links:
Generate buzz with realtime FM audio synthesis: PyCon 2021 Talk - YouTube
Limited Edition Medusa Black: Polyend
I am the new CPython Developer in Residence
Weekly Report, October 4 - 10: Łukasz Langa’s Blog
Meet the Python Developer in Residence: Lukasz Langa - Talk Python Podcast
Argument Clinic How-To: Python docs
PEP 594 – Removing dead batteries from the standard library
Datasette: An open source multi-tool for exploring and publishing data
Episode 80: Make Your Python App Interactive With a Text User Interface (TUI)
Why I’m working on Open Source full time: Will McGugan
Level up your Python skills with our expert-led courses:
Cool New Features in Python 3.10
Documenting Python Projects With Sphinx and Read The Docs - Archived
Speech Recognition With Python
Support the podcast & join our community of Pythonistas