Python Bytes is a weekly podcast hosted by Michael Kennedy and Brian Okken. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.

#443 Patching Multiprocessing

August 04, 2025 00:26:13 4.82 MB ( 20.47 MB less) Downloads: 0
Topics covered in this episode:
Watch on YouTube

About the show

Connect with the hosts

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: rumdl - A Markdown Linter written in Rust

  • via Owen Lamont
  • Supports toml file config settings
  • Install via uv tool install rumdl.
  • ⚡️ Built for speed with Rust - significantly faster than alternatives
  • 🔍 54 lint rules covering common Markdown issues
  • 🛠️ Automatic fixing with -fix for most rules
  • 📦 Zero dependencies - single binary with no runtime requirements
  • 🔧 Highly configurable with TOML-based config files
  • 🌐 Multiple installation options - Rust, Python, standalone binaries
  • 🐍 Installable via pip for Python users
  • 📏 Modern CLI with detailed error reporting
  • 🔄 CI/CD friendly with non-zero exit code on errors

Brian #2: Coverage 7.10.0: patch

  • Ned Batchelder

  • Actually up to 7.10.2 as of today

  • patch allows coverage to run better when a covered project uses

    • subprocesses
    • os._exit()
    • execv family of functions
  • Looking at subprocess

    • “Coverage works great when you start your program with coverage measurement, but has long had the problem of how to also measure the coverage of sub-processes that your program created. The existing solution had been a complicated two-step process of creating obscure .pth files and setting environment variables. Whole projects appeared on PyPI to handle this for you.”
  • From release notes

    for 7.10.0

Michael #3: aioboto3

  • via Pat Decker
  • Wrapper to use boto3 resources with the aiobotocore async backend
  • aiobotocore allows you to use near enough all of the boto3 client commands in an async manner just by prefixing the command with await.
  • With aioboto3 you can now use the higher level APIs provided by boto3 in an asynchronous manner.

Brian #4: You might not need a Python class

  • Adam Grant
  • This is an important periodic reminder to everyone coming into Python from other languages.
    • Many other languages lean on classes a lot more than we need to in Python
  • Adams suggestions
    • Simple Data Containers: Use Named Tuples or Data Classes
    • Stateless Utility Functions: Just Use Functions
    • Grouping Constants: Use Modules
    • Managing State with Simple Structures: Use Dictionaries or Lists
    • Simple One-off Operations: Use Lambdas or Comprehensions
      • I’ll add “just use functions”
    • Avoiding Complexity: Built-in Libraries
    • When You Actually Need a Class
      • I’ll add
        • You probably don’t
        • If you think you do, ask a friend. Friends don’t let friends create extraneous classes in Python.
        • If you think your case is an exception, it probably isn’t
        • If you think dataclasses aren’t right for you, check out attrs

Extras

Brian:

Michael:

Joke: Default text editor