2026-07-15 14:04:26
My bike riding has been poor this year, due to spinal stenosis and then spinal surgery in June... but hopefully the numbers will go up for the rest of the year.
(And who knows? Maybe I'll update some of the Python code that generates these.)
#bikeTooter #python
It's 2026 and :python: #Python's standard library *still* does not have a flatten function? 🤨
(Yes, more-itertools, that's not the point)
The state of #Python ecosystem right now: almost everything is slop. Some projects are complete vibe-coded slop (autobahn, chardet, cryptography). Some projects are disguised slop ("Coding agents shouldn't co-author themselves.")
There is only a handful of human projects left (Flask being one bright example). And they're being killed. They're being killed by the neverending slew of slop pull requests. They're being killed by all their dependencies becoming slop. They're being killed because this whole ecosystem has became such a complete cesspit that you have zero motivation to do anything.
EDIT: and honestly, this is only going to get worse. When you kill the incentive to work on projects, you only get more slop. Maintainers give in, and more projects become slop. Or they give up, and projects get forked unto slop.
#NoAI #NoLLM
🔧 The backend is #Python-based on top of #pipecat, the UI is #TypeScript. The architecture is modular so components can be swapped, and
What are we using to package up Python application & dependencies into a single distributable file now?
I'm thinking of bundlers like RollupJS.
PEX? Zipapp? Docker image? Trying really dang hard to only use stdlib and shipping a boring wheel?
#python #packaging #askfedi
I’m somewhat embarrassed to finally announce svcs 26.1.0 – my solution to #Python service location and dependency injection.
It’s been a minute, and the changelog is chuck-full, but the main features are autowiring, which looked like a simple add-on that grew to a four-digit monster diff, and of course, TypeForms that allow registering/getting abstract types!
I wish #mypy would slow down with adding new features to mypyc, and instead focused on fixing the train wreck that mypyc is right now (since 2023 at least). Like, if your code crashes hard with assertions enabled, then it's broken, period. Ignoring proper testing and shoving the issue under the carpet doesn't make it right.
#Python
The BBQ for all the Python user groups in Berlin is in a week’s time. I’m already looking forward to meeting lots of Pythonistas: https://www.meetup.com/python-users-berlin-pub/events/314905083/
Source distributions that are significantly different than the git repository shouldn't surprise anyone anymore either.
#Python #packaging
Video tutorials for modern ideas and open source tools. #python
#Steady #Klimacrew
#BahnMonitor-Projekt: 7. Zufall ist nicht gleich Zufall. 🤭
Nach der Verspätungsmeldung kommt ein Wissenshäppchen. Der
I don't often write #python but when I do I can apparently write python inefficient enough to start the fans spinning on my workstation for half an hour. It looks like Path's match involves a glob compile for every invocation and I have a lot of files (14k) to check against a lot of patterns (2314).
yearning for the days of #python v2.7 when everything was stable. the days when i was focusing on my code, and not on updating stuff because the underlying language changed again, without much benefit to me.
EVE Online startet die Migrierung von Python 2 auf 3. Das kommt mir etwas verfrüht vor, ist das schon stable?
#eveonline #python
#Steady #Klimacrew
#BahnMonitor-Projekt: 5. Automatisierte Skripte brauchen Kontrolle – besonders bei API-Aufrufen.
Jetzt bekommt das
TIL " #Python, for example, is a popular programming language that is famously smooth at handling integers of any size. If you peek into Python's underlying source code (search “Karatsuba” here)"
So if you're wondering how great #RustLang is, let's talk about #mypy. Mypy introduced its own Rust - #Python package, ast-serialize. This package had a deep crate dependency that was broken on PowerPC. The issue was fixed a month ago but everything is still blocked on a deep chain of dependencies being updated and released.
https://github.com/mypyc/ast_serialize/issues/68
EDIT: yes, I know, it's not Rust, it's Cargo. Because obviously Rust without Cargo makes so much sense for that one project using it.
🧩 Rich plugin ecosystem: hundreds of plugins run tasks anywhere — local, SSH, #Docker, #Kubernetes or serverless task runners — and code in any language including #Python, Node.js, R, Go and S…
speaking of slophub, here's environ-config 26.1.0 (my #Python take on loading config from env variables and secrets from safe places) a minor modernization update. thanks so much to every single name in the thanking section and to github who made it possible:
And the next big blocker for #Python 3.15 in #Gentoo is time-machine. Which is obviously broken. There's a patch but it's #slop and complex, and it's sitting for 3 months already with no reply. Because obviously patching CPython internals is so much a better idea than freezegun ever were. All these time-based tests need all the ricing you can get; portability doesn't matter.
https://github.com/adamchainz/time-machine/pull/618
I fully understand the saying "if it works, don't touch it"... but **this** is something else entirely
#Python #LegacySystem
I have a #Python favor to ask. Could someone look at Python 3.15 test failures in itsdangerous? It's blocking quite a large part of package dependency graph in #Gentoo, and the failure looks, errr, dangerous.
https://github.com/pallets/itsdangerous/issues/420
#Python Hypothesis package now requires #RustLang. This is a scale of reverse dependencies I can't handle. I guess this means it's the end of WD40 profiles on #Gentoo, and therefore the end of support for Alpha, ARM<v6, HPPA, M68k, i486 and some other random subsets of architectures and profiles. Thanks for all the fish, etc.
https://github.com/HypothesisWorks/hypothesis/issues/4740
Also, zero days (well, minus a lot of days because I've been slacking) since a random #Python package got a new #NIH dependency on another Python package which is actually a "fastest" #RustLang package which cannot be built because the author thinks it a great idea to require a nightly Rust compiler.
…and of course it's full of "unsafe" calls. Because Rust is obviously such a great language for making secure code.
https://github.com/awolverp/cachebox/issues/62
I finally got around to working on my bike mapping project enough to publish the results...
#bikeTooter #python
Zero days since I've discovered a random #CPython bug that triggers in very specific circumstances and I don't really have time to report it, nor can expect anyone to do it for me.
This time it's a test failure and refcounts being broken while running fastjsonschema's test suite on #Python 3.15 freethreading with pytest's --junit-xml option enabled 😱. And of course removing --junit-xml makes all tests pass.
EDIT: and of course I cannot reproduce outside Portage. Yet inside, it reliably crashes every single time.
Now time for something that's not related to Gentoo at all.
After almost two years of work in the #WheelNext Initiative, not to mention all the prior effort, first part of the #Python Wheel Variants proposal has been provisionally accepted as #PEP825. Thanks to everyone involved for your support!
https://discuss.python.org/t/pep-825-wheel-variants-package-format-split-from-pep-817/106196/232
https://peps.python.org/pep-0825/
Zero days since someone added a custom #PEP517 backend on top of #setuptools, and screwed up.
#Python #packaging
🐍 #Nvidia releases #CUDAPython 1.0 — direct #CUDA access from #Python at the same level as C …
I suppose there's something telling about the fact that a #Python library for file locks has… [checks notes]… 116 releases already.
Me after laboriously backporting #Python 3.15 fixes to #Django 6.0.x in #Gentoo: "oh, nice, the patchset applies cleanly to 5.2.x as well."
And today, I have to laboriously backport another patch to 6.0.x, and it turns out the backport doesn't apply cleanly to 5.2.x, so I have to laboriously backport it there as well.
I honestly *hate* Django Python version support policy. Shifting all the burden downstream.
Isn't it great that #Quart removed support for #Python 3.12 while it's only needed for #dnspython and #urllib3 tests, and we definitely can't remove 3.12 in urllib3? Gotta love the maturity of the Python ecosystem.
#Gentoo
Zero days since I've named my variable `os`, in #Python.
In the meantime, #GitPython, the package that used to be dead (because the author is busily working on their next great thing) is now slopping out 4 "security" releases a week, as their #slop machine is busily fixing unintended variable expansion in every single URL they call. Unfortunately, they probably don't have enough tokens to fix them all at once, so instead all downstreams have to deal with the churn of endless security releases. Or the brain to figure out that maybe they could just disable variable expansion by default and solve them all at once.
It's truly a great time to be a #Python packager.
#NoAI #NoLLM
So I wanted to unbundle #uChardet from #cChardet #Python package.
It didn't build against system uchardet 0.0.8. So I've checked, and it turns out cchardet is using some old patched fork of uchardet. Ugh.
Fortunately, upstream added the "missing" function too, with a different API (that's not really a problem), but they didn't make a release in 4 years. Ugh.
I could at least replace the old patched uchardet with upstream uchardet, right? Except now I'm getting test failures over misdetected encodings. 0.0.8 works fine there. Though the particular test doesn't look very realistic (note all the repetitions):
#Gentoo
In case you're wondering, the #Python zeroconf project is now busy asking people to agree to let them relicense the project from the #LGPL chosen by the original author to make corporations happy, and happily #AI #copywashing the code written by people who don't agree. Of course they also happily ignore what "derived works" are, and only care about lines of code.
#copyleft
Oh, right, in case I thought I'm going to have time to do useful things, I just realized I still need to deal with the humongous #Gentoo fallout from #Hypothesis #Python package requiring #RustLang now.