Brought to you by Michael and Brian - take a Talk Python course or get Brian's pytest book

#354: Python 3.12 is Coming!

Published Tue, Sep 26, 2023, recorded Tue, Sep 26, 2023
Watch this episode on YouTube
Play on YouTube
Watch the live stream replay

About the show

Sponsored by us! Support our work through:

Connect with the hosts

Join us on YouTube at 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 😉 )
    1. Freeze the python/cpython release branch. This is done using GitHub Branch Protections.
    2. Update the Release Manager's fork of python/cpython.
    3. Run Python release tools (release-tool, blurb, sphinx, etc).
    4. Push diffs and signed tag to Release Manager's fork.
    5. Git tag is made available to experts for Windows and macOS binary installers.
    6. 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.
    7. All artifacts (source and binary) are tested on their platforms.
    8. Release manager signs all artifacts using Sigstore and GPG.
    9. All artifacts are made available on
    10. After artifacts are published to, the git commit and tag from the Release Manager's fork is pushed to the release branch.




Joke: Are you sleeping?

Want to go deeper? Check our projects