Exploring the New Features of Python 3.12
<p>Python 3.12 is here! Our regular guests, Geir Arne Hjelle and Christopher Trudeau, return to discuss the new version. Geir Arne coordinated a series of preview articles with several members of the Real Python team this year, and his showcase tutorial, “Python 3.12: Cool New Features for You to Try,” came out on October 2. Christopher’s video course was posted the next day, covering the topics from the article with visual examples of Python 3.12 in action.</p>
<p>Geir Arne and Christopher collaborated to create code examples of the new features. We discuss better error messaging, more intuitive f-strings, subinterpreters, the Linux <code>perf</code> profiler, improved typing syntax, and more.</p>
<p>We dig into the updates and offer advice on incorporating them into your projects. We also consider when you should start running Python 3.12.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/new-features-python-312/">What’s New in Python 3.12</a></p>
<p>In this video course, you’ll explore the new features that Python 3.12 brings to the table. These include improved f-strings, better error messages, changes to CPython internals, additions to static typing, and more.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:02:15 – Preview tutorials</li>
<li>00:05:08 – Ever better error messages</li>
<li>00:10:03 – More powerful f-strings</li>
<li>00:15:46 – Comprehension inlining & additional optimizations</li>
<li>00:21:24 – Support for subinterpreters</li>
<li>00:27:55 – Support for the Linux <code>perf</code> profiler</li>
<li>00:32:02 – Immortal objects</li>
<li>00:35:01 – Video Course Spotlight</li>
<li>00:36:03 – Calendar constants for days and months</li>
<li>00:38:48 – New <code>itertools.batched()</code> for grouping Items</li>
<li>00:40:53 – Improved type variable syntax</li>
<li>00:50:51 – New <code>Path.walk()</code> for listing files in subdirectories</li>
<li>00:53:04 – Override decorator for static typing</li>
<li>00:57:36 – Advice on upgrading</li>
<li>01:03:08 – Thanks to the core developer team</li>
<li>01:04:39 – Thanks to the Real Python team and goodbye</li>
</ul>
<p>Show Links:</p>
<ul>
<li><a href="https://realpython.com/python312-new-features/">Python 3.12: Cool New Features for You to Try</a></li>
<li><a href="https://www.python.org/downloads/release/python-3120/">Python Release Python 3.12.0 - Python.org</a></li>
<li><a href="https://realpython.com/python312-error-messages/">Python 3.12 Preview: Ever Better Error Messages</a></li>
<li><a href="https://realpython.com/python312-f-strings/">Python 3.12 Preview: More Intuitive and Consistent F-Strings</a></li>
<li><a href="https://peps.python.org/pep-0701/">PEP 701 – Syntactic formalization of f-strings</a></li>
<li><a href="https://peps.python.org/pep-0709/">PEP 709 – Inlined comprehensions</a></li>
<li><a href="https://realpython.com/python312-subinterpreters/">Python 3.12 Preview: Subinterpreters</a></li>
<li><a href="https://peps.python.org/pep-0554/">PEP 554 – Multiple Interpreters in the Stdlib</a></li>
<li><a href="https://peps.python.org/pep-0684/">PEP 684 – A Per-Interpreter GIL</a></li>
<li><a href="https://realpython.com/python312-perf-profiler/">Python 3.12 Preview: Support For the Linux perf Profiler</a></li>
<li><a href="https://peps.python.org/pep-0683/">PEP 683 – Immortal Objects, Using a Fixed Refcount</a></li>
<li><a href="https://peps.python.org/pep-0695/">PEP 695 – Type Parameter Syntax</a></li>
<li><a href="https://realpython.com/python312-typing/">Python 3.12 Preview: Static Typing Improvements</a></li>
<li><a href="https://peps.python.org/pep-0698/">PEP 698 – Override Decorator for Static Typing</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/python-type-checking/">Python Type Checking</a></li>
<li><a href="https://realpython.com/courses/new-features-python-312/">What's New in Python 3.12</a></li>
<li><a href="https://realpython.com/courses/new-features-python-311/">Cool New Features in Python 3.11</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>
2022 Real Python Tutorial & Video Course Wrap Up
<p>It’s been another year of changes at Real Python! The Real Python team has written, edited, curated, illustrated, and produced a mountain of Python material this year. We added some new members to the team, updated the site’s features, and created new styles of tutorials and video courses.</p>
<p>Three members of the Real Python team join us this week, Kate Finegan, Geir Arne Hjelle, and Leodanis Pozo Ramos. We wanted to share a year-end wrap-up with tutorials, step-by-step projects, and video courses that showcase what our team created this year.</p>
<p>Kate and Geir Arne 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. Leodanis’ name has been featured many times on this podcast, and it was great to talk to him about writing tutorials and diving deep into the Pythonic details.</p>
<p>We hope you enjoy this review! Programming note, there won’t be an episode next week, but we’ll be back in January and look forward to bringing you a year full of great guests, articles, and topics. </p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/building-project-documentation-mkdocs/">Building Python Project Documentation With MkDocs</a></p>
<p>In this video course, you’ll learn how to build professional documentation for a Python package using MkDocs and mkdocstrings. These tools allow you to generate nice-looking and modern documentation from Markdown files and, more importantly, from your code’s docstrings.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:03:02 – Geir Arne and RP content direction</li>
<li>00:04:31 – Kate Finegan and editing tutorials</li>
<li>00:07:35 – Leodanis Pozo Ramos and writing tutorials</li>
<li>00:09:14 – Changes for Real Python in 2022</li>
<li>00:18:56 – Your Python Coding Environment on Windows</li>
<li>00:23:32 – Sponsor: TelemetryHub</li>
<li>00:24:16 – Why Is It Important to Close Files in Python?</li>
<li>00:28:40 – Python and TOML: New Best Friends</li>
<li>00:33:47 – Sneaky REST APIs With Django Ninja</li>
<li>00:36:24 – Manage Your To-Do Lists Using Python and Django</li>
<li>00:39:52 – Python Constants: Improve Your Code’s Maintainability</li>
<li>00:42:59 – Build Your Python Project Documentation With MkDocs</li>
<li>00:49:28 – Building a URL Shortener With FastAPI and Python</li>
<li>00:51:24 – Video Course Spotlight</li>
<li>00:52:40 – Image Processing With the Python Pillow Library</li>
<li>00:57:20 – Draw the Mandelbrot Set in Python</li>
<li>01:05:01 – Using Python’s pip to Manage Your Projects’ Dependencies</li>
<li>01:11:39 – Exploring Scopes and Closures in Python</li>
<li>01:14:49 – Thanks and goodbye</li>
</ul>
<p>Show Links:</p>
<ul>
<li><a href="https://realpython.com/python-coding-setup-windows/">Your Python Coding Environment on Windows: Setup Guide</a></li>
<li><a href="https://realpython.com/why-close-file-python/">Why Is It Important to Close Files in Python?</a></li>
<li><a href="https://realpython.com/python-toml/">Python and TOML: New Best Friends</a></li>
<li><a href="https://realpython.com/courses/rest-apis-with-django-ninja/">Sneaky REST APIs With Django Ninja – Video Course</a></li>
<li><a href="https://realpython.com/django-todo-lists/">Manage Your To-Do Lists Using Python and Django</a></li>
<li><a href="https://realpython.com/python-constants/">Python Constants: Improve Your Code’s Maintainability</a></li>
<li><a href="https://realpython.com/python-project-documentation-with-mkdocs/">Build Your Python Project Documentation With MkDocs</a></li>
<li><a href="https://realpython.com/courses/url-shortener-fastapi/">Building a URL Shortener With FastAPI and Python – Video Course</a></li>
<li><a href="https://realpython.com/image-processing-with-the-python-pillow-library/">Image Processing With the Python Pillow Library</a></li>
<li><a href="https://realpython.com/mandelbrot-set-python/">Draw the Mandelbrot Set in Python</a></li>
<li><a href="https://realpython.com/what-is-pip/">Using Python’s pip to Manage Your Projects’ Dependencies</a></li>
<li><a href="https://realpython.com/courses/exploring-scopes-and-closures-in-python/">Exploring Scopes and Closures in Python – Video Course</a></li>
</ul>
<p>Additional Links:</p>
<ul>
<li><a href="https://realpython.com/courses/building-project-documentation-mkdocs/">Building Python Project Documentation With MkDocs – Video Course</a></li>
<li><a href="https://realpython.com/build-a-python-url-shortener-with-fastapi/">Build a URL Shortener With FastAPI and Python – Step-by-Step Tutorial</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/building-project-documentation-mkdocs/">Building Python Project Documentation With MkDocs</a></li>
<li><a href="https://realpython.com/courses/rest-apis-with-django-ninja/">Sneaky REST APIs With Django Ninja</a></li>
<li><a href="https://realpython.com/courses/exploring-scopes-and-closures-in-python/">Exploring Scopes and Closures in Python</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>
Exploring the New Features of Python 3.11
<p>Python 3.11 is here! Our regular guests, Geir Arne Hjelle and Christopher Trudeau, return to talk about the new version. Geir Arne wrote a series of preview tutorials earlier this year, and his annual piece, titled “Python 3.11: Cool New Features for You to Try,” was published on October 24. Christopher’s video course came out the next day, covering the topics from the tutorial with visual examples of Python 3.11 in action.</p>
<p>Geir Arne and Christopher collaborated to create code examples for the new features. We discuss better error messages, faster code execution, task and exception groups, typing features, and native TOML support.</p>
<p>We dive into the updates and offer advice about ways to incorporate them into your projects. We also consider when you should start running Python 3.11.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/new-features-python-311/">Cool New Features in Python 3.11 – Real Python</a></p>
<p>In this video course, you’ll explore what Python 3.11 brings to the table. You’ll learn how Python 3.11 is the fastest and most user-friendly version of CPython yet, and learn about improvements to the typing system and to the asynchronous features of Python.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:02:19 – Preview series</li>
<li>00:03:50 – Faster CPython project</li>
<li>00:07:10 – Specializing adaptive interpreter</li>
<li>00:11:24 – Other performance stuff</li>
<li>00:16:07 – Sponsor: Deepgram</li>
<li>00:16:51 – Improved tracebacks</li>
<li>00:21:49 – Exception groups and notes</li>
<li>00:27:22 – Self type and additional type hints</li>
<li>00:36:14 – Video Course Spotlight</li>
<li>00:37:27 – asyncio and task groups</li>
<li>00:41:25 – TOML and tomllib</li>
<li>00:46:21 – ISO date parsing</li>
<li>00:50:09 – Negative zeros</li>
<li>00:53:38 – Dead battery deprecations</li>
<li>00:56:04 – Advice on upgrading</li>
<li>01:01:01 – Thanks and goodbye</li>
</ul>
<p>Show Links:</p>
<ul>
<li><a href="https://realpython.com/python311-new-features/">Python 3.11: Cool New Features for You to Try – Real Python</a></li>
<li><a href="https://realpython.com/courses/new-features-python-311/">Cool New Features in Python 3.11 – Video Course</a></li>
<li><a href="https://github.com/markshannon/faster-cpython/blob/master/plan.md">faster-cpython/plan.md - GitHub</a></li>
<li><a href="https://peps.python.org/pep-0659/">PEP 659 – Specializing Adaptive Interpreter - peps.python.org</a></li>
<li><a href="https://en.wikipedia.org/wiki/Just-in-time_compilation">Just-in-time compilation - Wikipedia</a></li>
<li><a href="https://talkpython.fm/episodes/show/381/python-perf-specializing-adaptive-interpreter">Episode #381 Python Perf: Specializing, Adaptive Interpreter - Talk Python To Me Podcast</a></li>
<li><a href="https://talkpython.fm/episodes/show/339/making-python-faster-with-guido-and-mark">Episode #339 Making Python Faster with Guido and Mark - Talk Python To Me Podcast</a></li>
<li><a href="https://github.com/python/cpython/issues/84403">“Zero cost” exception handling · Issue #84403 · python/cpython - GitHub</a></li>
<li><a href="https://realpython.com/python311-exception-groups/">Python 3.11 Preview: Task and Exception Groups – Real Python</a></li>
<li><a href="https://docs.python.org/3.11/whatsnew/3.11.html#faster-startup">Faster Startup In Python 3.11 — Python 3.11.0 documentation</a></li>
<li><a href="https://realpython.com/python311-error-messages/">Python 3.11 Preview: Even Better Error Messages – Real Python</a></li>
<li><a href="https://peps.python.org/pep-0657/">PEP 657 – Include Fine Grained Error Locations in Tracebacks - peps.python.org</a></li>
<li><a href="https://realpython.com/podcasts/rpp/105/">Episode #105: Creating Better Error Messages for Python 3.10 & 3.11 – The Real Python Podcast</a></li>
<li><a href="https://www.youtube.com/watch?v=uARIj9eAZcQ">Exception Groups and except: Irit Katriel - YouTube</a></li>
<li><a href="https://peps.python.org/pep-0673/">PEP 673 – Self Type - peps.python.org</a></li>
<li><a href="https://peps.python.org/pep-0646/">PEP 646 – Variadic Generics - peps.python.org</a></li>
<li><a href="https://www.youtube.com/watch?v=Lfe2zsGS0Js">How Exception Groups Will Improve Error Handling in AsyncIO - Łukasz Langa | Power IT Conference - YouTube</a></li>
<li><a href="https://neopythonic.blogspot.com/2022/10/reasoning-about-asynciosemaphore.html">Neopythonic: Reasoning about asyncio.Semaphore</a></li>
<li><a href="https://peps.python.org/pep-0680/">PEP 680 – tomllib: Support for Parsing TOML in the Standard Library - peps.python.org</a></li>
<li><a href="https://toml.io/en/">TOML: Tom’s Obvious Minimal Language</a></li>
<li><a href="https://realpython.com/python311-tomllib/">Python 3.11 Preview: TOML and tomllib – Real Python</a></li>
<li><a href="https://docs.python.org/3.11/library/datetime.html#datetime.datetime.fromisoformat">datetime — Basic date and time types — Python 3.11.0 documentation</a></li>
<li><a href="https://13monthcalendar.com/">13 Month Calendar</a></li>
<li><a href="https://en.wikipedia.org/wiki/Signed_zero">Signed zero - Wikipedia</a></li>
<li><a href="https://peps.python.org/pep-0594/">PEP 594 – Removing dead batteries from the standard library - peps.python.org</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/cool-new-features-python-310/">Cool New Features in Python 3.10</a></li>
<li><a href="https://realpython.com/courses/new-features-python-311/">Cool New Features in Python 3.11</a></li>
<li><a href="https://realpython.com/courses/python-type-checking/">Python Type Checking</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>
Solving Advent of Code Puzzles With Python
<p>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.”</p>
<p>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.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/building-regexes-python/">Regular Expressions and Building Regexes in Python</a> </p>
<p>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.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:02:03 – Geir Arne’s new full-time role at Real Python</li>
<li>00:02:55 – Advent of Code: Solving Your Puzzles With Python</li>
<li>00:09:25 – Using different languages to solve the puzzles</li>
<li>00:12:21 – Different ways to approach the problems</li>
<li>00:16:31 – Sponsor: CData Software</li>
<li>00:17:12 – Organizing your code into reusable functions</li>
<li>00:19:38 – Unique user source data and managing puzzle data</li>
<li>00:24:40 – Additional Python tools that might be useful</li>
<li>00:31:13 – Video Course Spotlight</li>
<li>00:32:42 – Ways to enhance code output and visualization</li>
<li>00:34:50 – Leaderboards</li>
<li>00:37:52 – Real Python office hours discussion of Advent of Code</li>
<li>00:39:30 – Additional resources to practice solving puzzles with Python</li>
<li>00:50:15 – Supporting Advent of Code</li>
<li>00:50:40 – What are you excited about in the world of Python?</li>
<li>00:51:59 – What do you want to learn next?</li>
<li>00:55:52 – Thanks and goodbye</li>
</ul>
<p>Show Links:</p>
<ul>
<li><a href="https://realpython.com/team/gahjelle/">About Geir Arne Hjelle – Real Python</a></li>
<li><a href="https://realpython.com/python-advent-of-code/">Advent of Code: Solving Your Puzzles With Python – Real Python</a></li>
<li><a href="https://realpython.com/courses/python-advent-of-code/">Advent of Code: Solving Puzzles With Python - Real Python</a></li>
<li><a href="https://adventofcode.com/">Advent of Code 2021</a></li>
<li><a href="https://realpython.com/interview-eric-wastl/">Python Community Interview With Eric Wastl – Real Python</a></li>
<li><a href="https://www.youtube.com/watch?v=gibVyxpi-qA">Eric Wastl - Advent of Code: Behind The Scenes - Leetspeak 2019 - YouTube</a></li>
<li><a href="https://www.reddit.com/r/adventofcode/search?q=flair_name%3A%22Visualization%22&restrict_sr=1">r/adventofcode: Visualizations - reddit.com</a></li>
<li><a href="https://projecteuler.net/about">About - Project Euler</a></li>
<li><a href="https://exercism.org/tracks">Exercism: 55 languages for you to master</a></li>
<li><a href="https://www.codewars.com/">Codewars - Achieve mastery through coding practice and developer mentorship</a></li>
<li><a href="https://www.hackerrank.com/">HackerRank</a></li>
<li><a href="https://www.twilio.com/quest">TwilioQuest - Discover your power to change the world with code.</a></li>
<li><a href="https://data-puzzles.com/">Data Puzzles: Sharpen your Data Science skills</a></li>
<li><a href="https://github.com/makersacademy/clmystery">makersacademy/clmystery: Command Line Murder Mystery</a></li>
<li><a href="https://vim-adventures.com/">Learn VIM while playing a game - VIM Adventures</a></li>
<li><a href="https://adventofcode.com/2021/support">Support AoC - Advent of Code 2021</a></li>
<li><a href="https://elixir-lang.org/">The Elixir programming language</a></li>
<li><a href="https://www.twitch.tv/josevalim">Live stream with José Valim, creator of Elixir, solving AoC - josevalim - Twitch</a></li>
<li><a href="https://github.com/elixir-nx">Numerical Elixir (Nx)</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/building-regexes-python/">Regular Expressions and Building Regexes in Python</a></li>
<li><a href="https://realpython.com/courses/test-driven-development-pytest/">Test-Driven Development With pytest</a></li>
<li><a href="https://realpython.com/courses/python-strings/">Strings and Character Data in Python</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>
Exploring the New Features of Python 3.10
<p>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.</p>
<p>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.</p>
<p>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.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/cool-new-features-python-310/">Cool New Features in Python 3.10</a> </p>
<p>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.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:02:20 – Better Error Messages</li>
<li>00:07:14 – Structural Pattern Matching</li>
<li>00:14:14 – Sponsor: Snyk</li>
<li>00:14:55 – Type Unions, Aliases, and Guards </li>
<li>00:22:34 – Future Annotations</li>
<li>00:26:46 – Stricter Zipping of Sequences</li>
<li>00:28:30 – New Functions in the statistics Module</li>
<li>00:31:46 – Video Course Spotlight</li>
<li>00:32:50 – Asynchronous Iteration</li>
<li>00:38:59 – Default Text Encodings</li>
<li>00:41:33 – Context Manager Syntax</li>
<li>00:43:19 – Modern and Secure SSL</li>
<li>00:45:10 – Should you upgrade now?</li>
<li>00:49:59 – How to Detect Python 3.10 at Runtime</li>
<li>00:53:07 – Thanks and goodbye</li>
</ul>
<p>Show Links:</p>
<ul>
<li><a href="https://realpython.com/team/gahjelle/">About Geir Arne Hjelle: Real Python Team Profile</a></li>
<li><a href="https://realpython.com/team/ctrudeau/">About Christopher Trudeau: Real Python Team Profile</a></li>
<li><a href="https://realpython.com/python310-new-features/">Python 3.10: Cool New Features for You to Try: Real Python Article</a></li>
<li><a href="https://realpython.com/courses/cool-new-features-python-310/">Cool New Features in Python 3.10: Real Python Video Course</a></li>
<li><a href="https://www.python.org/downloads/release/python-3100/">Python 3.10.0 Released: python.org</a></li>
<li><a href="https://docs.python.org/3.10/whatsnew/3.10.html#better-error-messages">Better error messages: What’s New docs.python.org</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0634/">PEP 634: Structural Pattern Matching - Specification</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0635/">PEP 635: Structural Pattern Matching - Motivation and Rationale</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0636/">PEP 636: Structural Pattern Matching - Tutorial</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0604">PEP 604: Allow writing union types as X | Y</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0613">PEP 613: Explicit Type Aliases</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0647/">PEP 647: User-Defined Type Guards</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0612/">PEP 612: Parameter Specification Variables</a></li>
<li><a href="https://realpython.com/python-zip-function/">Using the Python zip() Function for Parallel Iteration: Real Python Article</a></li>
<li><a href="https://docs.python.org/3/library/statistics.html">statistics — Mathematical statistics functions: docs.python.org</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0525/">PEP 525: Asynchronous Generators</a></li>
<li><a href="https://realpython.com/python-with-statement/">Context Managers and Python’s with Statement: Real Python Article</a></li>
<li><a href="https://realpython.com/python-versions-docker/">Run Python Versions in Docker: How to Try the Latest Python Release: Real Python Article</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/python-3-concurrency-asyncio-module/">Hands-On Python 3 Concurrency With the asyncio Module</a></li>
<li><a href="https://realpython.com/courses/cool-new-features-python-310/">Cool New Features in Python 3.10</a></li>
<li><a href="https://realpython.com/courses/cool-new-features-python-39/">Cool New Features in Python 3.9</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>
Exploring the New Features of Python 3.9
<p>Python 3.9 has arrived! This week on the show, former guest and Real Python author Geir Arne Hjelle returns to talk about his recent article, “Python 3.9: Cool New Features for You to Try”. Also joining the conversation is Real Python video course instructor and author Christopher Trudeau. Christopher has created a video course, which was released this week also, based on Geir Arne’s article. We talk about time zones, merging dictionaries, the new parser, type hints, and more.</p>
<p>Geir Arne and Christopher not only cover the new features, but they also offer advice about ways you might incorporate them into your code. We discuss what you should think about before updating your code.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/cool-new-features-python-39/">Cool New Features in Python 3.9</a> </p>
<p>In this course, you’ll explore some of the coolest and most useful features in the newly released Python 3.9. You’ll learn how Python 3.9 makes it easier to work with time zones, dictionaries, decorators, and several other techniques that will make your code cleaner and more efficient.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:02:02 – Proper Time Zone support</li>
<li>00:05:38 – What to do if your OS does not have tzdata?</li>
<li>00:07:11 – How do you add time zone info to your Python code?</li>
<li>00:08:24 – Historic changes to time zones</li>
<li>00:10:48 – New operators for updating dictionaries</li>
<li>00:15:44 – Geir Arne’s PyCon 2020 decorators tutorial</li>
<li>00:18:02 – Changes to decorator syntax</li>
<li>00:24:08 – Annotated type hints</li>
<li>00:32:36 – Video Course Spotlight</li>
<li>00:33:26 – The PEG parser</li>
<li>00:37:51 – Potential for new enhancements in upcoming releases</li>
<li>00:42:40 – String methods to remove prefixes and suffixes</li>
<li>00:44:22 – Type hint lists and dictionaries directly</li>
<li>00:47:29 – Topological Sort</li>
<li>00:52:03 – Greatest Common Divisor (GCD) and Least Common Multiple (LCM)</li>
<li>00:53:50 – New HTTP status codes</li>
<li>00:58:29 – Should you upgrade?</li>
<li>01:07:58 – Potential issue with Python 3.10 versioning</li>
<li>01:10:18 – What are you excited about in the world of Python?</li>
<li>01:12:52 – What do you want to learn next?</li>
<li>01:14:08 – Thanks and goodbyes</li>
</ul>
<p>Show Links:</p>
<ul>
<li><a href="https://realpython.com/python39-new-features/#more-flexible-decorators">Python 3.9: Cool New Features for You to Try: Real Python article</a></li>
<li><a href="https://realpython.com/courses/cool-new-features-python-39/">Cool New Features in Python 3.9: Real Python video course</a></li>
<li><a href="https://dateutil.readthedocs.io/en/stable/">dateutil - Powerful extensions to datetime</a></li>
<li><a href="https://www.ganssle.io/">Paul Ganssle: Blog</a></li>
<li><a href="https://www.iana.org/time-zones">IANA - Internet Assigned Numbers Authority: Time Zone Database</a></li>
<li><a href="https://realpython.com/python-dicts/">Dictionaries in Python: Real Python article</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0584/">PEP 584 – Add Union Operators To dict: python.org</a></li>
<li><a href="https://realpython.com/primer-on-python-decorators/">Primer on Python Decorators: Real Python article</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0614/">PEP 614 – Relaxing Grammar Restrictions On Decorators: python.org</a></li>
<li><a href="https://www.youtube.com/watch?v=T8CQwGIsrx4">Introduction to Decorators: Power Up Your Python Code - PyCon 2020 Online Tutorial</a></li>
<li><a href="https://realpython.com/python-type-checking/#annotations">Python Type Checking (Guide) - Annotations:Real Python article</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0484/">PEP 484 – Type Hints: python.org</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0593/">PEP 593 – Flexible function and variable annotations: python.org</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0617/">PEP 617 – New PEG parser for CPython: python.org</a></li>
<li><a href="https://medium.com/@gvanrossum_83706/peg-parsing-series-de5d41b2ed60">PEG Parsing Series Overview: Guido van Rossum</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0622/">PEP 622 – Structural Pattern Matching: python.org</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0616/">PEP 616 – String methods to remove prefixes and suffixes: python.org</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0585/">PEP 585 – Type Hinting Generics In Standard Collections: python.org</a></li>
<li><a href="https://en.wikipedia.org/wiki/Topological_sorting">Topological sorting: Wikipedia article</a></li>
<li><a href="https://docs.python.org/3.9/library/graphlib.html">graphlib — Functionality to operate with graph-like structures: docs.python.org</a></li>
<li><a href="https://en.wikipedia.org/wiki/Greatest_common_divisor">Greatest common divisor: Wikipedia article</a></li>
<li><a href="https://en.wikipedia.org/wiki/Least_common_multiple">Least common multiple: Wikipedia article</a></li>
<li><a href="https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml">Hypertext Transfer Protocol (HTTP) Status Code Registry</a></li>
<li><a href="https://tools.ietf.org/html/rfc2324">Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0602/">PEP 602 – Annual Release Cycle for Python: Łukasz Langa - python.org</a></li>
<li><a href="https://docs.python.org/3.9/whatsnew/3.9.html#porting-to-python-3-9">Porting to Python 3.9: docs.python.org</a></li>
<li><a href="https://realpython.com/products/cpython-internals-book/">CPython Internals: Your Guide to the Python3 Interpreter</a></li>
<li><a href="https://panel.holoviz.org/">Panel: A high-level app and dashboarding solution for Python</a></li>
<li><a href="https://wiki.python.org/moin/PyQt">PyQt: GUI Library</a></li>
<li><a href="https://pandas.pydata.org/">Pandas</a></li>
<li><a href="https://realpython.com/python-pyqt-gui-calculator/">Python and PyQt: Building a GUI Desktop Calculator - Real Python article</a></li>
<li><a href="http://data-analysis-in-python.org/t_gis.html">GIS in Python</a></li>
<li><a href="https://geopandas.org/">GeoPandas</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/python-decorators-101/">Python Decorators 101</a></li>
<li><a href="https://realpython.com/courses/cool-new-features-python-39/">Cool New Features in Python 3.9</a></li>
<li><a href="https://realpython.com/courses/python-type-checking/">Python Type Checking</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>
Python Decorators and Writing for Real Python
<p>Do you want to learn more about Python decorators? Have you ever wondered what goes on behind the scenes to create a Real Python article? In this first episode, We have Geir Arne Hjelle from the Real Python team on the show.</p>
<p>You’ll learn about Geir Arne’s background as a Pythonista and PyCon speaker, the tutorials he’s written for the site, how Python decorators can help you write better code, and what Real Python’s tutorial publishing process looks like behind the scenes.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Note:</strong> This episode was recorded earlier. We discuss PyCon US 2020 and Geir Arne’s planned tutorial. At the time this episode was released <a href="https://pycon.blogspot.com/2020/03/march-12-update-on-covid-19.html#more">PyCon US 2020 was currently looking at re-scheduling or a potential cancelation</a>. Updates will be provided in upcoming episodes.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:01:39 – Geir Arne Python Background </li>
<li>00:04:16 – Real Python Background</li>
<li>00:05:55 – Real Python Editing Process</li>
<li>00:09:00 – Christopher’s Real Python Background</li>
<li>00:10:45 – Working on Decorators</li>
<li>00:13:00 – Decorators in the wild</li>
<li>00:16:30 – Pycon 2019 Talk - Plugins</li>
<li>00:19:32 – Pyplugs</li>
<li>00:20:09 – Links to talk materials</li>
<li>00:20:29 – Pycon 2020 Tutorial - Decorators</li>
<li>00:22:59 – Euro SciPy</li>
<li>00:23:47 – Real Python Meetup Pycon 2019</li>
<li>00:25:05 – More on the Decorators Article</li>
<li>00:26:18 – Slack Decorators Q&A</li>
<li>00:27:29 – More on Euro SciPy</li>
<li>00:28:12 – Current Position at Amesto NextBridge</li>
<li>00:32:09 – Decorators Examples</li>
<li>00:39:47 – What are You Excited About in Python</li>
<li>00:47:04 – PyCon 2020 Tutorial on Decorators additional</li>
<li>00:49:45 – Conclusion</li>
</ul>
<p>Links from the show:</p>
<ul>
<li>Real Python Article: <a href="https://realpython.com/primer-on-python-decorators/">Primer on Python Decorators</a></li>
<li>Real Python Course: <a href="https://realpython.com/courses/python-decorators-101/">Python Decorators 101</a></li>
<li>Real Python Article: <a href="https://realpython.com/python-timer/">Python Timer Functions: Three Ways to Monitor Your Code</a></li>
<li>Join the Real Python Team: <a href="https://realpython.com/write-for-us/">Apply to become a Tutorial Author</a></li>
<li><a href="https://pypi.org/project/codetiming/">Codetiming: PyPI Package</a></li>
<li><a href="https://pypi.org/project/pyplugs/">PyPlugs: PyPI Package</a></li>
<li><a href="https://pypi.org/project/pyconfs/">PyConfs: PyPI Package</a></li>
<li><a href="https://github.com/gahjelle/talks/tree/master/20190505_pycon_plugins">Geir Arne’s PyCon 2019 Talk on Plugins + Video</a></li>
<li><a href="https://ipython.org/">IPython: Alternative REPL</a></li>
<li><a href="https://bpython-interpreter.org">bpython: Alternative REPL</a></li>
<li><a href="https://realpython.com/bpython-alternative-python-repl/">Discover bpython: A Python REPL With IDE-Like Features</a></li>
<li><a href="https://us.pycon.org/">PyCon 2020</a></li>
<li><a href="https://us.pycon.org/2020/schedule/presentation/75/">Geir Arne’s Decorators Tutorial at PyCon 2020</a></li>
<li><a href="https://www.euroscipy.org/">EuroSciPy 2020</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/python-decorators-101/">Python Decorators 101</a></li>
<li><a href="https://realpython.com/courses/writing-beautiful-python-code-pep-8/">Writing Beautiful Pythonic Code With PEP 8</a></li>
<li><a href="https://realpython.com/courses/cool-new-features-python-38/">Cool New Features in Python 3.8</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>