Episode 92: Continuing to Unravel Python's Syntactic Sugar With Brett Cannon
The Real Python Podcast
Jan 07, 2022 58m
A year ago, we had Brett Cannon on the show to discuss his blog series about unravelling Python’s syntactic sugar. Brett has written 15 more entries in the series, and he returns to the show this week to continue our conversation. We dive into unravelling ‘async’ and ‘await’ statements and their relationship with Python’s generators.
Episode Sponsor:
While working through the series, he has uncovered some issues lying under the surface of CPython. We discuss a couple of these discoveries and how the core developers resolved them.
Brett was recently re-elected to the Python Steering Council, and he talks about how the current direction of the council is shifting. We also discuss how Brett uses Twitter polls to gauge community sentiment and factors it into development decisions.
This conversation covered so many topics that we split it into two episodes. Next week’s episode will continue our discussion.
Course Spotlight: Speed Up Python With Concurrency
Learn what concurrency means in Python and why you might want to use it. You’ll see a simple, non-concurrent approach and then look into why you’d want threading, asyncio, or multiprocessing.
Topics:
- 00:00:00 – Introduction
- 00:01:54 – Python Steering Council Reelection
- 00:06:06 – Python Extension for VSCode and the Language Server Protocol (LSP)
- 00:10:38 – Using twitter polls to gauge sentiment
- 00:19:19 – Sponsor: Honeybadger
- 00:20:04 – Unravelling Python’s syntactic sugar series
- 00:25:30 – The desugar GitHub repo and unearthing problems in CPython
- 00:29:48 – Why have
__iter__()
for an iterator? - 00:32:47 – Is discovering and showcasing these “issues” stressful?
- 00:35:19 – A reverse chronology of some Python features
- 00:38:34 – How the heck does async/await work in Python
- 00:51:29 – Video Course Spotlight
- 00:52:54 – Using “spam” vs “foo” and metasyntactic variables
- 00:57:30 – Goodbye
Show Links:
- 2022 Python Steering Council Election Results - Python.org
- Official Page for Language Server Protocol
- Brett Cannon on Twitter: “If I were creating a protocol/interface for a spammy object, what naming convention would you expect?”
- Episode #88: Discussing Type Hints, Protocols, and Ducks in Python – The Real Python Podcast
- Brett Cannon - Twitter Poll: “Which of these ‘pip install’ flags to you usually specify?”
- Episode #47: Unraveling Python’s Syntax to Its Core With Brett Cannon – The Real Python Podcast
- Unravelling ‘break’ and ‘continue’
- Unravelling ‘for’ statements
- GitHub - brettcannon/desugar: Unravelling Python source code
- A reverse chronology of some Python features
- What Color is Your Function? – journal.stuffwithstuff.com
- Unravelling ‘async’ and ‘await’
- How the heck does async/await work in Python 3.5?
- Episode #39: Generators, Coroutines, and Learning Python Through Exercises – The Real Python Podcast
- How to Use Generators and yield in Python – Real Python
- Async IO in Python: A Complete Walkthrough – Real Python