Episode 223: Exploring the New Features of Python 3.13
The Real Python Podcast
Oct 11, 2024 55m
Python 3.13 is here! Our regular guests, Geir Arne Hjelle and Christopher Trudeau, return to discuss the new version. This year, Geir Arne coordinated a series of preview articles with members of the Real Python team and a showcase tutorial, “Python 3.13: Cool New Features for You to Try.” Christopher’s video course “What’s New in Python 3.13” covers the topics from the article and shows the new features in action.
Episode Sponsor:
Geir Arne and Christopher dug into the release to create code examples of the new features for the tutorial and course. We look at the options for disabling the Global Interpreter Lock (GIL) and enabling the Just-in-Time (JIT) compiler. We also discuss the new interactive interpreter, better error messages, multiple improvements to static typing, and additional performance improvements.
We share our thoughts on the updates and offer advice about incorporating them into your projects. We also discuss when you should start running Python 3.13.
This is episode is sponsored by Nvidia.
Course Spotlight: What’s New in Python 3.13
In this video course, you’ll learn about the new features in Python 3.13. You’ll take a tour of the new REPL and error messages and see how you can try out the experimental free threading and JIT versions of Python 3.13 yourself.
Topics:
- 00:00:00 – Introduction
- 00:03:14 – A Modern REPL
- 00:08:54 – Making the Global Interpreter Lock Optional in CPython
- 00:11:33 – JIT Compilation
- 00:15:48 – More improved error messages
- 00:18:30 – Sponsor: NVIDIA
- 00:19:13 – Marking deprecations using the type system
- 00:21:09 – Type Defaults for Type Parameters
- 00:22:44 – Narrowing types with TypeIs
- 00:25:24 – TypedDict: Read-only items
- 00:27:50 – Random command line interface
- 00:29:54 – New copy.replace()
- 00:33:43 – Video Course Spotlight
- 00:34:55 – Pathlib and globbing
- 00:39:33 – Stripping docstrings
- 00:41:28 – Import improvements
- 00:41:56 – Dynamically import non-code files
- 00:42:23 – Adding iOS as a supported platform
- 00:43:32 – More consistency with local namespace
- 00:44:30 – Support for deprecation in argparse
- 00:45:00 – Better entry points for breakpoint or set_trace
- 00:46:08 – Removing dead batteries
- 00:47:43 – When to upgrade to 3.13?
- 00:53:19 – core.py podcast
- 00:54:14 – Thanks and goodbye
Show Links:
- Python 3.13: Cool New Features for You to Try
- What’s New in Python 3.13
- Python 3.13 Preview: A Modern REPL
- Python 3.13 Preview: Free Threading and a JIT Compiler
- What’s New In Python 3.13 — Python 3.13.0rc2 documentation
- PEP 703 – Making the Global Interpreter Lock Optional in CPython
- PEP 744 – JIT Compilation
- PEP 702 – Marking deprecations using the type system
- PEP 696 – Type Defaults for Type Parameters
- PEP 742 – Narrowing types with TypeIs
- PEP 705 – TypedDict: Read-only items
- PEP 730 – Adding iOS as a supported platform
- PEP 738 – Adding Android as a supported platform
- PEP 667 – Consistent views of namespaces
- PEP 594 – Removing dead batteries from the standard library
- The Python Standard REPL: Try Out Code and Ideas Quickly
- Unlock IPython’s Magical Toolbox for Your Coding Journey
- core.py Podcast - Episode 14: Integration Events