Episode 160: Inheriting a Large Python Code Base & Building a GUI With Kivy
The Real Python Podcast
Jun 16, 2023 49m
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:
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