Tom Ritchford
Everything should be made as simple as possible, but no simpler.
My Python open source projects
This is a dashboard of my active Python open-source projects on Github, mostly small- to medium-sized libraries that try to do one useful thing as clearly and thoroughly as possible.
(No AI was used in the writing or maintenance of any of these libraries.)
π means "Stars"
π means "Subscribers"
π’ means "Release version"
π° means "Most recent non-version commit"
(Last update 2026/02/03, 17:25:01 by https://github.com/rec/multi)
Production-ready
π§Ώ safer π§Ώ (π 176 π 2)
A safer writer for files and streams 26/02/03π’Update version to v5.3.0
26/02/03π°Many changes from the new toolchain |
π tdir π (π 4)
Create and fill a temporary directory 26/02/03π’Update version to v1.9.0
26/02/03π°Accept suggestions from new toolchain |
π editor π (π 10)
Open the default text editor 26/02/03π’Update version to v1.7.0
26/02/03π°Accept suggestions from new toolchain |
βοΈ psplit βοΈ
Split git patch files 26/02/03π’Update version to v1.1.0
26/02/03π°Accept suggestions from new toolchain |
π gitz π (π 37 π 2)
Tiny useful git commands, some dangerous 26/02/03π’Update version to v1.8.0
26/02/03π°Accept suggestions from new toolchain |
π¨ nc π¨ (π 4)
Named colors in Python 26/02/03π’Update version to v1.1.0
26/02/03π°Accept suggestions from new toolchain |
π dtyper π (π 20 π 3)
Fix and improve `typer` 26/02/03π’Update version to v2.6.0
26/02/03π°Accept suggestions from new toolchain |
π« clsprop π« (π 2)
Just like @property but for classes 26/02/03π’Update version to v1.4.0
26/02/02π°Fix tools.classifiers section in pyproject.toml |
π§΅ threa π§΅ (π 2)
Better threads 26/02/03π’Update version to v1.10.0
26/02/02π°Fix tools.classifiers section in pyproject.toml |
β sproc β (π 12)
Subprocesseses for subhumanses 26/02/03π’Update version to v2.5.0
26/02/03π°Accept suggestions from new toolchain |
π± zoialib π± (π 4 π 2)
A patch librarian for the Empress ZOIA 26/02/03π’Update version to v0.7.0
26/02/03π°Remove unused variable |
π± xmod π± (π 5)
Turn any object into a module 26/02/03π’Update version to v1.9.0
26/02/03π°Accept suggestions from new toolchain |
π impall π (π 8)
Test-import all modules 26/02/03π’Update version to v1.6.0
26/02/03π°Accept suggestions from new toolchain |
π datacls π (π 3)
Take the edge off `dataclass` 26/02/03π’Update version to v4.9.0
26/02/02π°Fix tools.classifiers section in pyproject.toml |
π abbrev π (π 4)
Expand abbreviations 26/02/03π’Update version to v1.3.0
26/02/03π°Accept suggestions from new toolchain |
π΄ dek π΄ (π 4)
The decorator-decorator 26/02/03π’Update version to v1.5.0
26/02/03π°Move test_dek.py to test/ |
Experimental
πΆ tuney πΆ
Turn text into music (#noAI) 26/02/03π’Update version to v0.2.0
26/02/02π°Return to using single quotes |
π nmr π
Name all canonical things 26/02/03π’Update version to v0.10.0
26/02/03π°Accept suggestions from new toolchain |
π recs π (π 3 π 2)
The Universal Recorder 26/02/03π’Update version to v0.11.0
26/02/03π°Update to version 0.10.0 |
π vl8 π (π 3)
Perturbed audio 26/02/03π’Update version to v0.3.0
26/02/03π°Accept suggestions from new toolchain |
π‘ litoid π‘
Sequence DMX lighting 26/02/03π’Update version to v0.2.0
26/02/03π°Accept suggestions from new toolchain |
π£ def_main π£
A decorator for main 26/02/03π’Update version to v0.12.0
26/02/03π°Remove .envrc |
π hardback π
Hardcopy backups of digital data 26/02/03π’Update version to v0.10.0
26/02/03π°Accept suggestions from new toolchain |
π¦ backer π¦
Continuously back up files 26/02/03π’Update version to v0.8.0
26/02/03π°Accept suggestions from new toolchain |
Beta
π₯ pullman π₯
Manage ghstack pull requests 26/02/03π’Update version to v0.11.0
26/02/03π°Accept suggestions from new toolchain |
π§ fixo π§
Semi-automatic rule based editing of Python code 26/02/03π’Update version to v0.2.0
26/02/03π°Accept suggestions from new toolchain |
πΊ fil πΊ (π 3)
Read/write JSON/TOML/Yaml/txt 26/02/03π’Update version to v1.5.0
26/02/03π°Accept suggestions from new toolchain |
π’ plur π’
Simple universal word pluralizer 26/02/03π’Update version to v1.1.0
26/02/03π°Move test_plur.py to test/ |
π cfgs π (π 3)
XDG standard config files 26/02/03π’Update version to v0.14.0
26/02/03π°Accept suggestions from new toolchain |
Mothballed
π wavemap π (π 10 π 2)
Memory map WAVE or raw audio files 26/02/03π’Update version to v2.1.0
26/02/03π°Accept suggestions from new toolchain |
π loady π (π 6 π 2)
Load Python code and data from git 26/02/03π’Update version to v1.9.0
26/02/03π°Accept suggestions from new toolchain |
π runs π (π 3 π 2)
Run a block of text as a subprocess 26/02/03π’Update version to v1.3.0
26/02/03π°Move test_runs.py to test/ |
Personal
π fortune π
A Mastodon bot for /usr/games/fortune 26/02/03π’Update version to v0.2.0
26/02/03π°Accept suggestions from new toolchain |
π multi π
Manage all my other projects 23/02/02π’Update to version v0.1.0
26/02/03π°Release all projects (fix #35) |
β¬π©π¦π₯ blocks π₯π¦π©β¬
Solve a block puzzle 26/02/03π’Update version to v1.1.0
26/02/03π°Accept suggestions from new toolchain |
β test β
Tiny bits of experimental code
|
β« dotfiles β«
My dotfiles
|