• #378 Python is on the edge

  • Apr 9 2024
  • Length: 31 mins
  • Podcast
#378 Python is on the edge cover art

#378 Python is on the edge

  • Summary

  • Topics covered in this episode: pacemaker - For controlling time per iteration loop in Python.PyPI suspends new user registration to block malware campaignPython Project-Local Virtualenv Management ReduxPython Edge Workers at CloudflareExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.orgBrian: @brianokken@fosstodon.orgShow: @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. 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. Brian #1: pacemaker - For controlling time per iteration loop in Python. Brandon RohrerGood example of a small bit of code made into a small package.With speedups to dependencies, like with uv, for example, I think we’ll see more small projects.Cool stuff Great README, including quirks that need to be understood by users. “If the pacemaker experiences a delay, it will allow faster iterations to try to catch up. Heads up: because of this, any individual iteration might end up being much shorter than suggested by the pacemaker's target rate.”Nice use of time.monotonic() deltas are guaranteed to never go back in time regardless of what adjustments are made to the system clock.Watch out for pip install pacemaker-lite NOT pacemakerpacemaker is taken by a package named PaceMaker with a repo named pace-maker, that hasn’t been updated in 3 years. Not sure if it’s alive. No tests (yet). I’m sure they’re coming. ;) Seriously though, Brandon says this is “a glorified snippet”. And I love the use of packaging to encapsulate shared code. Realistically, small snippet like packages have functionality that’s probably going to be tested by end user code.And even if there are tests, users should test the functionality they are depending on. Michael #2: PyPI suspends new user registration to block malware campaign Incident Report for Python InfrastructurePyPi Is Under Attack: Project Creation and User Registration Suspended — Here’s the details I hate medium, but it’s the best details I’ve found so far Brian #3: Python Project-Local Virtualenv Management Redux HynekConcise writeup of how Hynek uses various tools for dealing with environmentsCovers (paren notes are from Brian) In project .venv directoriesdirenv for handling .envrc files per project (time for me to try this again)uv for pip and pip-compile functionalityInstalling Python via python.orgUsing a .python-version-default file (I’ll need to play with this a bit) Works with GH Action setup-python. (ok. that’s cool)Some fish shell scriptingBonus tip on using requires-python in .pyproject.toml and extracting it in GH actions to be able to get the python exe name, and then be able to pass it to Docker and reference it in a Dockerfile. (very cool) Michael #4: Python Edge Workers at Cloudflare What are edge workers?Based on workers using Pyodide and WebAssemblyThis new support for Python is different from how Workers have historically supported languages beyond JavaScript — in this case, we have directly integrated a Python implementation into workerd, the open-source Workers runtime.Python Workers can import a subset of popular Python packages including FastAPI, Langchain, numpyCheck out the examples repo. Extras Michael: LPython follow up from Brian SkinnFeatured on Python Bytes badgeA little downtime, thanks for the understanding We were rocking a 99.98% uptime until then. :) Joke: C++ is not safe for people under 18Baseball joke
    Show more Show less

What listeners say about #378 Python is on the edge

Average Customer Ratings

Reviews - Please select the tabs below to change the source of reviews.