Search a title or topic

Over 20 million podcasts, powered by 

Player FM logo
Artwork

Content provided by Michael Kennedy and Brian Okken. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Michael Kennedy and Brian Okken or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://podcastplayer.com/legal.
Player FM - Podcast App
Go offline with the Player FM app!

#443 Patching Multiprocessing

26:13
 
Share
 

Manage episode 498295614 series 1305988
Content provided by Michael Kennedy and Brian Okken. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Michael Kennedy and Brian Okken or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://podcastplayer.com/legal.
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

    • A new configuration option: “[run] patch” specifies named patches to work around some limitations in coverage measurement. These patches are available:

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

  continue reading

447 episodes

Artwork

#443 Patching Multiprocessing

Python Bytes

1,826 subscribers

published

iconShare
 
Manage episode 498295614 series 1305988
Content provided by Michael Kennedy and Brian Okken. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Michael Kennedy and Brian Okken or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://podcastplayer.com/legal.
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

    • A new configuration option: “[run] patch” specifies named patches to work around some limitations in coverage measurement. These patches are available:

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

  continue reading

447 episodes

All episodes

×
 
Loading …

Welcome to Player FM!

Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.

 

Copyright 2025 | Privacy Policy | Terms of Service | | Copyright
Listen to this show while you explore
Play