fripside writes music more difficult than they can perform
Home
Public posts preserved on my own site.
Hit song AND it can be performed live?!
Not ready for 3.14
- pyarrow
- rtoml
- pygame
A few others might need a forced upgrade to latest version: tiktoken, pydantic, pillow, jiter
@AlSweigart unnecessary else after return
unclosed string
=== sir, this is not javascript
catdog is already taken on pypi.
What else am I going to call a library for union types?
Save build minutes, just test the high and low on github, test all of them on your laptop.
```yaml
tox:
name: ${{ matrix.os }} / ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.8", "3.14"]
```
It's a #python314 ticket opening party, got a ticket on rtoml, on bandit, who's next?
# Find your non 3.14 #python, run in folder parent to all your repos
```
from pathlib import Path;import subprocess
g=0;b=[]
for p in Path().cwd().iterdir():
v=p/'.venv'
if v.exists():
e=v/'Scripts/python.exe'if(v/'Scripts/python.exe').exists()else v/'bin/python'
if e.exists():
r=subprocess.run([e,'--version'],capture_output=1,text=1)
if'3.14'in r.stdout:g+=1
else:b.append((p.name,r.stdout.strip()))
else:b.append((p.name,'no py'))
if b:[print('bad:',*b)]
print(f'{g} good')
```
IDEA: n=0 statistical methods.
#rtoml, pydantic, Maturin, pyO3 are all fighting me. #python #Python314
This worked for pydantic
"pydantic>=2.12.0; python_version >= '3.14'",
This didn't work for rtoml
"maturin>=1.9.6; python_version >= '3.14'",
Niche irritation: this "best practices" rubric relies mostly on self asserted claims. So most of the measure is
- psychological self esteem
- willingness to fill in a long form
libraries.io will give you a higher SourceRank if you have v1.0.0
This ranking system is so important the originators let their documentation expire and now it is only available on archive.org
Anyhow, I'm bumping I maintain and like to v1.0.0 because now it means "I think this is good"
https://web.archive.org/web/20240209141900/https://docs.libraries.io/overview#sourcerank
Balanced opinion on LLMs
- 90% of the code for this app was LLM written.
- Maybe 5% of the feature ideas were LLM.
While it understands ideas if you tell them of your idea, LLMs (for me with this app), are lousy at thinking up useful features.
I see LLM generated apps on pypi and I've given a few of them a full look over. Some of them are
- Rehashes of already existing apps, i.e. the vibe coder didn't give the LLM any ideas to work with.
- Poorly focused. LLMs make ideas like a 3 year old. "Let's make a car we'll add ninjas! and and dinosaurs! and and and popcorn! and machine guns! and grandma!"Anyhow, so far the projects I've completed have been useful to me, but wouldn't have been if I'd relied on the LLM for the ideas.
♡ 0 ↻ 0This app is a good example (I didn't write it)
It is a bunch of different things. I use it for the GH Actions version updater. Everything else is just so far out there. And the GH Action updater- I probably should find a better one, as this is not a novel idea.
♡ 0 ↻ 0
Bacon's cipher is a 5 bit binary to letter encoding that was created in 1605. Baudot was a few hundred years later.
TODO: search for those on pypi and implement if not already done.
How to find a job on Mastodon:
- Say you're lookin' for work at 1-2 relevant people in your natural network will see it.
**Next everyone will retweet (thanks!), which will frustrate everyone else**
- **post with your spacetime location 1st. **Are you posting from the far future like @RikerGoogling ?
- post with the #fedihire tags, but really, I've followed those tags, no one is looking at them, it's a mess
- **Where's your LinkedIn**? A retweet from a developer **on LinkedIn **is worth $$$
Developers login to Mastodon daily. They login to LinkedIn when they're unemployed. You have to solicit a repost on linked in from Mastodon or bluesky.
When you're unemployed, that is not the time to be coy about who you really are, unless you only want sympathy
Lost your job? I can't do shit about that because I got 500ms before I got onto the next post and I'm not going to DM you for your location and timezone and jurisdiction.
♡ 1 ↻ 0But Matt, LinkedIn is a big company and I want technoideological purity!
Then go add features to Mastodon that make it pleasant for a recruiter (right now the privacy features make it pleasant as poking my eyeballs out) and effective for job searchers.
♡ 2 ↻ 0But Matt, I got 2 jobs from Twitter. True story, me too. But that was because twitter for a brief moment in time had universal sign up. Twitter made it effortless to find people who lived in communing distance of your office (city in bio!).
Mastodon, at best, let's you know that everyone is probably near Germany, in my case, (google maps says it is an incalculable distance).
♡ 3 ↻ 0
jiggle-version - 100% rewritten. It is a version bumper.
Handles the situation where you got several version strings in source & config you want to update, but don't want to use tools using git tags or tools that ask for a regex expression as input.
Wow there are like a dozens of these now. Well in 2019 there were not so many.
But you're not here for minor build tools your here for contrived drama!
This line of code is what made me so made I wrote a mediocre tool.
```
--parse REGEX Regex parsing the version string (default:
(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+))
```If you can't find the version strings and you have to ask your users where the strings are, then what good is the tool?
♡ 0 ↻ 0<sarcasm> Here is my awesome app, you will need to fill in an argument to meet your specific requirements, because, I can't know what you want.
`python -c "{you put stuff here}"`
Don't you feel the ***power?!***
♡ 1 ↻ 0But Matt, there is a default.
Regex finds strings it shouldn't find, won't find strings that were perfectly findable if they're a different version schema and are surprisingly brittle.
♡ 0 ↻ 0
Bots have been trained hard at talking to IDEs and now they're giving me unified diffs when I ask for the codez.
Semver that you can check for python
`__all__` gets shorter, major
`__all__` gets longer, minor
`__all__` stays the same, patch
getting more accurate than that leads to madness
That was a lot of work for a low effort joke.
xkcd-random-four because xkcd-random as a name is too close to something (what?). Wish I knew that in advance!
The effort to rewrite everything in #python was underway already and no one told me!
cmdix supports this long list of gnu/linux/bash cli commands, but the readme give it no SEO visibility on pypi!
https://github.com/jaraco/cmdix/blob/main/pyproject.toml#L81
There are like a dozen xkcd password generators on pypi and from what I can tell, none of them use the xkcd-221 random number generator.
Python stdlib thwarts my efforts. The core random number function can't return 4, but it can return 0.4
♡ 1 ↻ 1
Am I taking crazy pills? I count 3+ drop in replacements for `random` on pypi.* But the #python standard library `secrets` is not a drop in replacement for `random` except for a subset of function signatures. i.e. you can't generally write `import secrets as random`
Do I need to publish a drop in replacement for `random` that has all the signatures and repoints everything to SystemRandom?
* these events might be statistically independent
My use case is to get Bandit to shut up everytime I `import random`
Also, I should publish the xkcd-random library, for when pseudorandom is just to unpredictable.
♡ 1 ↻ 0And another near drop-in replacement
https://pypi.org/project/quantum-random/
and another
https://pypi.org/project/pycrypto/♡ 0 ↻ 0
Imma gonna add a small feature
(several hours later), it's in pypi!
Oh my, I've spend so much time on this library that is only marginally useful. I need to give it some more features so people will have a reason to use it and my time won't go to waste.
You wanted to copy all your package metadata to an `__about__.py` file, right? Got you covered.
Okay, now what?
I think I need something to find these `__meta__` fields in a given package or a whole venv of packages and safely read and report them.
AND THEN, we can stand around and feel suitable gratitude to the people in the `__credits__` section, heretofore invisible and unappreciated.
♡ 0 ↻ 0
Niche irritation: 2,653 pypi downloads means 0, 1 or 2 installations on actual end user computers. Almost all of your first 2000* downloads are mirrors, possibly without a single user install.
* a few hundred per published version, so it varies by how many packages were published.
https://thehackernews.com/2025/10/alert-malicious-pypi-package-soopsocks.html
IDEA: arseparse module
That's it. I don't know where to take this.
IDEA: status page to let people know when I'm up, down, degraded.
For example, right now, response are taking longer than normal, but my engineer is looking into it and by that I mean, the engineer is watching whatever happens to be at the top of youtube's recommendations.
Hottake
Python 3.8-3.14 are basically the same language.
I've been using tox to check for cross compatibility. 3.7 is unsupportable if you're trying to support 3.8-3.14.
@rye uh-oh! now I'm committed.
@rye Brief panic before I remember I did do some limited benchmarking on this.
https://pypi.org/project/hissbytenotation/the relevant row was "dict by import' which was 12x slower than the stdlib json library (handwave syntax differences)
♡ 2 ↻ 0
What's faster:
- source code for a 10,000 key dict in a .py file
- same as json in a comment in the .py, read it using `__file__` and parsing out the json and loading with orjson
orjson! or heck any format really. Anything can turn a dict on the file system into a dict in memory faster than python itself.
dict in source are slooooooow. I should benchmark that across #python versions.
Things I wish had some standards:
`--help` output
`--version` output
Since jq seems like it is becoming bash's surrogate type system, maybe if all the cli tools could support `--help --json` and `--version --json` that would be a big help.
Reading the Python Devguide and thinkin, I need a website like that and not 39 CONTRIBUTING.md files, one for each pypi package I've ever shipped.
Universal cheat sheet
`<command name> --help`
Hope that helps.
@bflipp@vmst.io @w7voa He's the pardon turkey
Maybe this weekend I'll finally write a pypi package front runner, that before you install a package, the front runner downloads the file figures out if it is malicious. And yeah, I'll ask an LLM what this code is. It doesn't have to do a real solve of the graph, just a good enough one & skip old packages with millions of downloads.
I think this would catch new malicious code, but not temporary highjacked accounts. (Maybe a diff tool for that?)
ho! pip supports dry run, this might be too easy.
`pip install --dry-run --report - requests==2.32.3`
♡ 0 ↻ 0And `pipgrip` will just resolve the dependency tree, too
♡ 0 ↻ 0
youtubers: "the other youtubers in my genre are grifters because they focus on drama and mudslinging."
youtubers: "The comments on youtube are cesspools of sloppy thinking, from reading the comments left on other youtuber's videos we can see that it is all the fault of the those other youtubers leading their audience astray"
Anyhow, navel gazing meta. And people shouldn't wade into the editorial section if they can't take the editorializing.
@neurobashing Norwegian developers report that it works for them!
I'm sure it's already been done, but I want to make a website that an LLM that generates 404 with hallucinated content.
It would be a good complement to corporate intranets which are rich interlocked webs of 404 and 403 and little else.
YAML is the *worst* language for writing YAML. There are so many good programing languages that can emit YAML. I mean, 0's and 1's are a good deskilled DSL, you don't even need to count to 2, but no one writes 0's and 1's anymore. Why are we writing YAML?!
pypi download stat, where 1000 downloads mean you have maybe 2 users