Episode 225: Python Getting Faster and Leaner & Ideas for Django Projects
The Real Python Podcast
Oct 25, 2024 43m
What changes are happening under the hood in the latest versions of Python? How are these updates laying the groundwork for a faster Python in the coming years? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Episode Sponsor:
Christopher shares an article about Python’s recent performance improvements. The piece covers the specialized adaptive interpreter and explains what those terms mean. It also includes details about the experimental feature of the Just-In-Time (JIT) compiler added in 3.13.
We dig into a collection of Django projects you can use to practice and develop your skills. The projects ramp up from detailed beginner tutorials to more advanced projects with guidelines on how to get started. We also discuss a collection of popular websites that use Django.
We share several other articles and projects from the Python community, including a batch of recent Python Enhancement Protocols (PEPs), a couple of Python releases, using DuckDB in the browser with Pyodide, building a contact book app with Textual, generating a tiny status page with a Python script, and a grep-like tool that understands code.
This episode is sponsored by AssemblyAI.
Course Spotlight: Building a Site Connectivity Checker
In this video course, you’ll build a Python site connectivity checker for the command line. While building this app, you’ll integrate knowledge related to making HTTP requests with standard-library tools, creating command-line interfaces, and managing concurrency with asyncio and aiohttp.
Topics:
- 00:00:00 – Introduction
- 00:03:11 – PEP 777: How to Re-Invent the Wheel
- 00:04:22 – PEP 758: Allow
except
andexcept*
Expressions Without Parentheses - 00:04:51 – PEP 760: No More Bare Excepts (Withdrawn)
- 00:05:42 – PEP 735: Dependency Groups in
pyproject.toml
- 00:06:29 – PEP 761: Deprecating PGP Signatures for CPython Artifacts
- 00:06:59 – Python 3.12.7 Released
- 00:07:12 – Incremental GC and Pushing Back the 3.13.0 Release
- 00:09:10 – DuckDB in the Browser With Pyodide
- 00:15:35 – Sponsor: AssemblyAI
- 00:16:18 – Build a Contact Book App With Python, Textual, and SQLite
- 00:21:55 – Django Project Ideas
- 00:28:42 – Video Course Spotlight
- 00:30:00 – In the Making of Python Fitter and Faster
- 00:35:13 – tinystatus: Tiny Status Page Generated by a Python Script
- 00:38:06 – srgn: Grep-Like Tool That Understands Code
- 00:42:01 – Thanks and goodbye
News:
- PEP 777: How to Re-Invent the Wheel – “The current wheel 1.0 specification was written over a decade ago, and has been extremely robust to changes in the Python packaging ecosystem… this PEP prescribes compatibility requirements on future wheel revisions.”
- PEP 758: Allow
except
andexcept*
Expressions Without Parentheses – “This PEP proposes to allow unparenthesizedexcept
andexcept*
blocks in Python’s exception handling syntax. Currently, when catching multiple exceptions, parentheses are required around the exception types.” - PEP 760: No More Bare Excepts (Withdrawn)
- PEP 735: Dependency Groups in
pyproject.toml
(Accepted) - PEP 761: Deprecating PGP Signatures for CPython Artifacts – Since Python 3.11.0, CPython has provided two verifiable digital signatures for all CPython artifacts: PGP and sigstore. This PEP proposes moving to sigstore as the only way of signing artifacts.
- Python 3.12.7 Released
- Python 3.13.0 Released
- Incremental GC and Pushing Back the 3.13.0 Release – Some last minute performance considerations delayed the release of Python 3.13 with one of the features being backed out.
Show Links:
- DuckDB in the Browser With Pyodide – Learn how to run DuckDB in an in-browser Python environment to enable simple querying on remote files, interactive documentation, and easy to use training materials.
- Build a Contact Book App With Python, Textual, and SQLite – In this tutorial, you’ll be guided step by step through the process of building a basic contact book application. You’ll use Python and Textual to build the application’s text-based user interface (TUI), and then use SQLite to manage the database.
- Django Project Ideas – Looking to experiment or build your portfolio? Discover creative Django project ideas for all skill levels, from beginner apps to advanced full-stack projects.
- In the Making of Python Fitter and Faster – This post details how Python’s recent performance improvements work under the hood. It covers changes to the interpreter, better memory management, and the newly experimental JIT compiler.
Projects:
- tinystatus: Tiny Status Page Generated by a Python Script
- srgn: Grep-Like Tool That Understands Code
Additional Links:
- What Are Python Wheels and Why Should You Care? – Real Python
- Deploy your first JupyterLite website on GitHub Pages — JupyterLite 0.4.3 documentation
- rich: Python library for rich text and beautiful formatting in the terminal
- The 10 Most Popular Websites Using Django
- Django in Action
- Django and htmx Tutorial: Easier Web Development - YouTube
- Build a Site Connectivity Checker in Python – Real Python
- Refactoring Python with 🌳 Tree-sitter & Jedi | Jack’s blog