#443 Patching Multiprocessing Podcast Por  capa

#443 Patching Multiprocessing

#443 Patching Multiprocessing

Ouça grátis

Ver detalhes do programa

Sobre este áudio

Topics covered in this episode: rumdl - A Markdown Linter written in Rust* Coverage 7.10.0: patch** aioboto3** You might not need a Python class*ExtrasJokeWatch on YouTube About the show Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @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: rumdl - A Markdown Linter written in Rust via Owen LamontSupports toml file config settingsInstall 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 BatchelderActually up to 7.10.2 as of todaypatch allows coverage to run better when a covered project uses subprocessesos._exit()execv family of functionsLooking 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: patch = _exit lets coverage save its data even when os._exit() is used to abruptly end the process. This closes long-standing issue 310 as well as its duplicates: issue 312, issue 1673, issue 1845, and issue 1941.patch = subprocess measures coverage in Python subprocesses created with subprocess, os.system(), or one of the execv or spawnv family of functions. Closes old issue 367 and duplicate issue 378.patch = execv adjusts the execv family of functions to save coverage data before ending the current program and starting the next. Not available on Windows. Closes issue 43 after 15 years! Michael #3: aioboto3 via Pat DeckerWrapper to use boto3 resources with the aiobotocore async backendaiobotocore 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 GrantThis 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 PythonAdams suggestions Simple Data Containers: Use Named Tuples or Data ClassesStateless Utility Functions: Just Use FunctionsGrouping Constants: Use ModulesManaging State with Simple Structures: Use Dictionaries or ListsSimple One-off Operations: Use Lambdas or Comprehensions I’ll add “just use functions”Avoiding Complexity: Built-in LibrariesWhen You Actually Need a Class I’ll add You probably don’tIf 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’tIf you think dataclasses aren’t right for you, check out attrs Extras Brian: PyPI Incident Report: Phishing Attack -Sent in by listener John HagenBoth of Adam Johnson’s recent-ish interviews are now up on Test & Code 236: Git Tips for Testing - Adam Johnson235: pytest-django - Adam Johnson Michael: Dive into uv webcast with me and Will Vincent Joke: Default text editor
Ainda não há avaliações