Topics covered in this episode:
- ** [The Python Language Summit 2025](https://pyfound.blogspot.com/2025/06/python-language-summit-2025.html?featured_on=pythonbytes))**
** complexipy)**
** juvio)**
Extras
Joke
Watch on YouTube)
About the show
Sponsored by Posit: pythonbytes.fm/connect)
Connect with the hosts
Michael: @[email protected]) / @mkennedy.codes) (bsky)
Brian: @[email protected]) / @brianokken.bsky.social)
Show: @[email protected]) / @pythonbytes.fm) (bsky)
Join us on YouTube at pythonbytes.fm/live) to be part of the audience. Usually Monday at 10am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list), we'll never share it.
Michael #1: The Python Language Summit 2025)
Write up by Seth Michael Larson
How can we make breaking changes less painful?): talk by Itamar Oren
An Uncontentious Talk about Contention): talk by Mark Shannon
State of Free-Threaded Python): talk by Matt Page
Fearless Concurrency): talk by Matthew Parkinson, Tobias Wrigstad, and Fridtjof Stoldt
Challenges of the Steering Council): talk by Eric Snow
Updates from the Python Docs Editorial Board): talk by Mariatta
PEP 772 - Packaging Governance Process): talk by Barry Warsaw and Pradyun Gedam
Python on Mobile - Next Steps): talk by Russell Keith-Magee
What do Python core developers want from Rust?): talk by David Hewitt
Upstreaming the Pyodide JS FFI): talk by Hood Chatham
Lightning Talks): talks by Martin DeMello, Mark Shannon, Noah Kim, Gregory Smith, Guido van Rossum, Pablo Galindo Salgado, and Lysandros Nikolaou
Brian #2: Fixing Python Properties)
Will McGugan
“Python properties work well with type checkers such Mypy and friends. … The type of your property is taken from the getter only. Even if your setter accepts different types, the type checker will complain on assignment.”
Will describes a way to get around this and make type checkers happy.
He replaces @property
with a descriptor. It’s a cool technique.
I also like the way Will is allowing different ways to use a property such that it’s more convenient for the user. This is a cool deverloper usability trick.
Brian #3: complexipy)
Calculates the cognitive complexity of Python files, written in Rust.
Based on the cognitive complexity measurement described in a white paper by Sonar
Cognitive complexity builds on the idea of cyclomatic complexity.
Cyclomatic complexity was intended to measure the “testability and maintainability” of the control flow of a module. Sonar argues that it’s fine for testability, but doesn’t do well with measuring the “maintainability” part. So they came up with a new measure.
Cognitive complexity is intended to reflects the relative difficulty of understanding, and therefore of maintaining methods, classes, and applications.
complexipy essentially does that, but also has a really nice color output.
Note: at the very least, you should be using “cyclomatic complexity”
try with ruff check --select C901
But also try complexipy.
Great for understanding which functions might be ripe for refactoring, adding more documentation, surrounding with more tests, etc.
Michael #4: juvio)
uv kernel for Jupyter
⚙️ Automatic Environment Setup: When the notebook is opened, Juvio installs the dependencies automatically in an ephemeral virtual environment (using uv
), ensuring that the notebook runs with the correct versions of the packages and Python
📁 Git-Friendly Format: Notebooks are converted on the fly to a script-style format using # %%
markers, making diffs and version control painless
Why Use Juvio?
No additional lock or requirements files are needed
Guaranteed reproducibility
Cleaner Git diffs
Powered By
uv
– ultra-fast Python package management
PEP 723
– Python inline dependency standards
Extras
Brian:
Joke: The 0.1x Engineer)
via Balázs
Also