If you use Python, chances are you’ve heard of PEP 8, the Python style guide.
But do you know what PEPs really are? PEPs are more than just a style guide. A PEP stands for Python Enhancement Proposal. It’s a proposal documentation for when you want to change the Python programming language in a big way, for example when you want to change the syntax of Python. Think of the addition of f-strings, the walrus operator, or the ExceptionGroup, those changes all started with a PEP.
Let’s have a PEP talk, where you can learn about the PEP process, what needs a PEP and what doesn’t, and how you as community members can take part.
Contact me (links below) if you’d like to hear this talk at your event.
- North Bay Python 2023
- PyGotham 2023
North Bay Python 2023
This is aimed for newcomers and beginners of Python, who may have only heard of PEP 8 and not so much of other PEPs. I will cover what PEPs really are, the purpose, examples of PEPs, and how community member can participate if they want to.
What’s a PEP
(< 5 minutes)
- You know of PEP 8
- But there are other PEPs
- A PEP is a proposal: it’s a documentation for changes to Python
What kind of Changes Need a PEP?
- If you want to add new syntax
- Example: f-strings, ExceptionGroup, the “walrus” operator
Other things that have a PEP
- Release schedule
- Informational (Style Guide)
- How it works: start with discussing it in a public forum (like Discourse or the Python Language Summit)
- If there is consensus and agreement of the idea, then a PEP will need to be written
- Steering Council review and approve (or reject) the PEP
- Once approved, the feature can go to the next Python release
- After the feature has been done: PEP becomes final.
- But PEP is not a documentation: you should read the Python docs after PEP has become final
- All of these can take months, even years
- If you don’t agree with a proposal (if it cause you hardship in the way you use Python), the best way to voice your concern is during PEP discussion period, before the SC approval, and before the release of Python.
- Sometimes new feature cause breakage, do test your codebase against the Python main branch, or alpha versions.
- Keep up to date by following the Discourse forum, or the PEPs repo
comments powered by Disqus