Topics covered in this episode:- logmerger
- The third and final Python 3.12 RC is out now
- The Python dictionary dispatch pattern
- Visualizing the CPython Release Process
- Extras
- Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
- Our courses at Talk Python Training
- Python People Podcast
- Patreon Supporters
Connect with the hosts
- Michael: @mkennedy@fosstodon.org
- Brian: @brianokken@fosstodon.org
- Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Brian #1: logmerger
- Paul McGuire
- logmerger is a TUI for viewing a merged display of multiple log files, merged by timestamp.
- Built on textual
- Awesome flags:
- --output -
- to send the merged logs to stdout
- --start START and --end END
- start and end time to select time window for merging logs
- Caveats:
- new. no pip install yet. so clone the code or download
- perhaps I jumped the gun on covering this, but it’s cool
Michael #2: The third and final Python 3.12 RC is out now
- Get your final bugs fixed before the full release
- Call to action: We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.12 compatibilities during this phase
- How to test.
- Discussion on the issue.
- Count down until October 2nd, 2023.
Brian #3: The Python dictionary dispatch pattern
- I kinda love (and hate) jump tables in C
- We don’t talk about dictionary dispatch much in Python, so this is nice, if not dangerous.
- Short story: you can store lambdas or functions in dictionaries, then look them up and call them at the same time.
- Also, I gotta shout out to the first blogroll I’ve seen in a very long time.
- Should we bring back blogrolls?
Michael #4: Visualizing the CPython Release Process
- by Seth Larson
- Here’s the deal (you should see the image in the article 😉 )
- Freeze the python/cpython release branch. This is done using GitHub Branch Protections.
- Update the Release Manager's fork of python/cpython.
- Run Python release tools (release-tool, blurb, sphinx, etc).
- Push diffs and signed tag to Release Manager's fork.
- Git tag is made available to experts for Windows and macOS binary installers.
- Source tarballs, Windows, and macOS binary installers built and tested concurrently.
- 6a: Release manager builds the tgz and tar.xz source files for the Python release. This includes building the updates documentation.
- 6b: Windows expert starts the Azure Pipelines configured to build Python.
- 6c: macOS Expert builds the macOS installers.
- All artifacts (source and binary) are tested on their platforms.
- Release manager signs all artifacts using Sigstore and GPG.
- All artifacts are made available on python.org.
- After artifacts are published to python.org, the git commit and tag from the Release Manager's fork is pushed to the release branch.
Extras
Brian:
- The Complete pytest Course, part 2, Ch 7 Testing Strategy went up this weekend.
- Only 9 more chapters to go
- “Test & Code” → “Python Test”
- Full version: “The Python Test Podcast” → “Test & Code” → “Python Test”
- Also: “Python (Bytes | People | Test)”
Michael:
- If you’re at PyBay, come say “hi”
- EuroPython 2023 Videos up
- Django + HTMX has a few days of early-bird discount left
Joke: Are you sleeping?