#378: Python is on the edge
Published Tue, Apr 9, 2024,
recorded Tue, Apr 9, 2024
About the show
Sponsored by us! Support our work through:
Connect with the hosts
- Michael: @mkennedy@fosstodon.org
- Brian: @brianokken@fosstodon.org
- Show: @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 Rohrer
- Good 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.
- Great README, including quirks that need to be understood by users.
- Watch out for
- pip install pacemaker-lite
- NOT pacemaker
- pacemaker 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.
- pip install pacemaker-lite
Michael #2: PyPI suspends new user registration to block malware campaign
- Incident Report for Python Infrastructure
- PyPi 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
- Hynek
- Concise writeup of how Hynek uses various tools for dealing with environments
- Covers (paren notes are from Brian)
- In project .venv directories
- direnv for handling .envrc files per project (time for me to try this again)
- uv for pip and pip-compile functionality
- Installing Python via python.org
- Using 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 scripting
- Bonus 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 WebAssembly
- This 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, numpy
- Check out the examples repo.
Extras
Michael:
- LPython follow up from Brian Skinn
- Featured on Python Bytes badge
- A little downtime, thanks for the understanding
- We were rocking a 99.98% uptime until then. :)
Joke:
- C++ is not safe for people under 18
- Baseball joke