Episode 105: Creating Better Error Messages for Python 3.10 & 3.11
The Real Python Podcast
Apr 08, 2022 1h 21m
What goes into creating those enhanced error messages in the latest versions of Python? How does the new PEG parser help to pinpoint where errors have occurred? This week on the show, Pablo Galindo Salgado talks about the work that goes into creating these improvements.
Episode Sponsor:
Pablo is a core CPython developer and is the release manager for Python versions 3.10 and 3.11. He is also serving his second term on the Python Steering Council.
Pablo is pleasantly surprised by the positive feedback for the new error messages in Python 3.10. He shares some of the upcoming enhancements for 3.11. We talk about how the new PEG parser allows for greater context when defining errors and pinpointing where they occur.
We talk about how he started contributing to CPython. He also shares some of the programming experiences he had while studying physics at university.
Course Spotlight: Starting With Linear Regression in Python
In this video course, you’ll get started with linear regression in Python. Linear regression is one of the fundamental statistical and machine learning techniques, and Python is a popular choice for machine learning.
Topics:
- 00:00:00 – Introduction
- 00:01:56 – Member of the Python Steering Council
- 00:02:40 – Physics background and research use of Python
- 00:08:43 – How did you get involved in core development?
- 00:10:27 – Why did you take on the role of release manager?
- 00:13:38 – What challenges have you found along the way?
- 00:19:08 – Sponsor: LinearB
- 00:19:48 – What motivated you to add enhanced error messages?
- 00:29:33 – How does the PEG parser help in these situations?
- 00:37:04 – PEG parser and infinite lookahead
- 00:40:58 – Identifying where the syntax is wrong
- 00:43:28 – Finding where a comma is missing
- 00:48:49 – Is this a dictionary missing a colon, or is it a set?
- 00:50:19 – Identifying missing portions of a
try
…except
block - 00:51:44 – Video Course Spotlight
- 00:53:00 – Informing library maintainers and not slowing performance
- 00:56:18 – Enhanced error messages coming in 3.11
- 01:06:38 – Real Python preview of Python 3.11
- 01:07:28 – What are you excited about in the world of Python?
- 01:13:00 – What do you want to learn next?
- 01:15:43 – How to contribute to the project?
- 01:20:24 – Thanks and goodbye
Show Links:
- PEP 8016 – The Steering Council Model | peps.python.org
- Fortran Programming Language
- Wolfram Mathematica: Modern Technical Computing
- C (programming language) - Wikipedia
- Mare Nostrum, The Temple Of The Bit | WIRED
- Python Insider: Python 3.10.4 and 3.9.12 are now available out of schedule
- PEP 657 – Include Fine Grained Error Locations in Tracebacks | peps.python.org
- Python 3.11 Preview: Even Better Error Messages – Real Python
- friendly-traceback: Friendlier Python tracebacks.
- IPython - Interactive Computing
- Coverage.py - Documentation
- faster-cpython/ideas - presentation pdf · GitHub
- PEP 659 – Specializing Adaptive Interpreter | peps.python.org
- How to Sweep Pick: 14 Steps (with Pictures) - wikiHow
- Line 6 - Shuriken Variax Guitar
- Talks: Making Python Better One Error Message at a Time PyCon 2022
- Python Developer’s Guide
- Guide to CPython’s Parser - Python Developer’s Guide
- pablogsal (Pablo Galindo Salgado) · GitHub
- Pablo Galindo Salgado (@pyblogsal) / Twitter