Tracking issue for the tail of the deletion track — repos where argh is not declared in packaging metadata (so no dependency line comes off), or where it appears only in commented-out code. Each is a 2-to-45-line deletion with no behaviour change and no release coupling. One PR per repo; this issue is the checklist.
Every location below was opened and verified today.
Class 3 — undeclared argh, entire footprint in an unreachable __main__ guard (9 repos)
| repo |
file:line |
what is there |
thorwhalen/tec |
tec/misc/manage_pth_file.py:233-249 |
argh.dispatch_commands([...7 funcs...]) — also delete regardless of licensing: these functions write to the generated, read-only package manifest and are superseded by priv pkg add-package / priv align. Actively hazardous. |
i2mint/umpyre |
umpyre/python_code_stats.py:346-352 |
argh.dispatch_commands([...]) wrapped in dol.util.ModuleNotFoundErrorNiceMessage. The real CLI (umpyre = umpyre.cli:main) is already pure argparse (umpyre/cli.py:3,183-185). |
i2mint/examples |
examples/airport_weather/metar_acquisition.py:80-98 (19 lines) and examples/convert_images/convert_images.py:55-57 |
See the note below — read metar_acquisition.py before deleting it. |
thorwhalen/viral |
viral/get_viral_data.py:35-40 |
argh.dispatch_commands([...]). 2020 COVID data prep. |
thorwhalen/tapyoca |
tapyoca/covid/covid_bar_chart_race.py:213-216, tapyoca/indexing_podcasts/prep.py:31-33, tapyoca/parquet_deformations/parquet_deformations.py:644-647 |
Three guards. No install_requires, no console scripts. |
thorwhalen/ut |
ut/util/ipython.py:137-142, ut/sh/py.py:12-17, ut/pstr/pronounceable_mapping.py:221-231, ut/util/callable_arguments_peek.py:365-374 |
Four guards, ~37 lines. No packaging file at all — only a frozen 2020 requirements.txt pinning argh==0.26.2. |
i2mint/taped |
taped/examples/gauge_sample_rate_variation.py:184-186, taped/examples/live_audio_pipelines.py:80-84 |
Two guards. Note: this repo has two local checkouts of the same GitHub remote; fix once, and flag the duplicate checkout to the manifest tooling. |
otosense/slang |
misc/example_slang_train_script.py:167-170 |
One guard, in a file outside the package. |
thorwhalen/mv |
mv/wip/live_qr_codes.py:519-525 |
One guard, under wip/. |
Class 4 — argh appears only in COMMENTED-OUT code (2 repos)
Zero behaviour impact; delete so the fleet-wide rg argh audit goes quiet and these stop showing up as false positives in every future scan.
| repo |
file:line |
thorwhalen/mixing |
mixing/video/genai.py:799-802 (4 commented lines) |
thorwhalen/hubcap |
hubcap/examples/get_discussions.py:244-245 (2 commented lines) |
Class 5 — a real edit, not a guard deletion (1 repo)
| repo |
what |
i2mint/py2dash |
py2dash/util.py:4 is a MODULE-SCOPE import argh, with dispatch_to_cli = argh.dispatch_command at :8. rg dispatch_to_cli over the whole repo returns only that definition — it is dead. py2dash declares no dependencies at all and is published as py2dash 0.0.2, so import py2dash.util raises ImportError on a clean install today. Delete :4 and :8. Also delete the guard at py2dash/dash_introspection.py:114-118. |
Before deleting examples/airport_weather/metar_acquisition.py
Read lines 80-98 first and preserve them somewhere (cw's README, or a comment in cw's ingress module). It is the fleet's best motivating anti-example for cw's whole thesis: the block defines a coercing wrapper named acquire_metar_data (.split(',') on the ids, int() on the hours) and then dispatches _acquire_metar_data — the original, uncoerced function. Hand-written string→object ingress, written next to the dispatch call, wired to the wrong object, silently doing nothing.
Explicitly NOT in this sweep
i2mint/gurgle — gurgle/terminal.py:221 imports argh inside main(), which is the gurgle-terminal console script. That is a migration or a CLI-retirement decision, not a deletion.
addaix/raglab_bak — real CLI with an already-written sys.argv fallback (raglab_bak/wips/vectordb_manager.py:41-45, 1140-1160); repo name ends in _bak; owner is outside the landing perimeter.
i2mint/know — its single hit is a # TODO comment (know/examples/keyboard_and_audio.py:263). Leave it; it is a good comment and it states cw's ingress spec years early.
Acceptance criteria
Research & rationale: the canonical spec and the full fleet audit live in the private research ledger (https://github.com/thorwhalen/priv/discussions/65). Effort: medium.
Tracking issue for the tail of the deletion track — repos where argh is not declared in packaging metadata (so no dependency line comes off), or where it appears only in commented-out code. Each is a 2-to-45-line deletion with no behaviour change and no release coupling. One PR per repo; this issue is the checklist.
Every location below was opened and verified today.
Class 3 — undeclared argh, entire footprint in an unreachable
__main__guard (9 repos)thorwhalen/tectec/misc/manage_pth_file.py:233-249argh.dispatch_commands([...7 funcs...])— also delete regardless of licensing: these functions write to the generated, read-only package manifest and are superseded bypriv pkg add-package/priv align. Actively hazardous.i2mint/umpyreumpyre/python_code_stats.py:346-352argh.dispatch_commands([...])wrapped indol.util.ModuleNotFoundErrorNiceMessage. The real CLI (umpyre = umpyre.cli:main) is already pure argparse (umpyre/cli.py:3,183-185).i2mint/examplesexamples/airport_weather/metar_acquisition.py:80-98(19 lines) andexamples/convert_images/convert_images.py:55-57metar_acquisition.pybefore deleting it.thorwhalen/viralviral/get_viral_data.py:35-40argh.dispatch_commands([...]). 2020 COVID data prep.thorwhalen/tapyocatapyoca/covid/covid_bar_chart_race.py:213-216,tapyoca/indexing_podcasts/prep.py:31-33,tapyoca/parquet_deformations/parquet_deformations.py:644-647install_requires, no console scripts.thorwhalen/utut/util/ipython.py:137-142,ut/sh/py.py:12-17,ut/pstr/pronounceable_mapping.py:221-231,ut/util/callable_arguments_peek.py:365-374requirements.txtpinningargh==0.26.2.i2mint/tapedtaped/examples/gauge_sample_rate_variation.py:184-186,taped/examples/live_audio_pipelines.py:80-84otosense/slangmisc/example_slang_train_script.py:167-170thorwhalen/mvmv/wip/live_qr_codes.py:519-525wip/.Class 4 — argh appears only in COMMENTED-OUT code (2 repos)
Zero behaviour impact; delete so the fleet-wide
rg arghaudit goes quiet and these stop showing up as false positives in every future scan.thorwhalen/mixingmixing/video/genai.py:799-802(4 commented lines)thorwhalen/hubcaphubcap/examples/get_discussions.py:244-245(2 commented lines)Class 5 — a real edit, not a guard deletion (1 repo)
i2mint/py2dashpy2dash/util.py:4is a MODULE-SCOPEimport argh, withdispatch_to_cli = argh.dispatch_commandat:8.rg dispatch_to_cliover the whole repo returns only that definition — it is dead. py2dash declares no dependencies at all and is published aspy2dash 0.0.2, soimport py2dash.utilraisesImportErroron a clean install today. Delete:4and:8. Also delete the guard atpy2dash/dash_introspection.py:114-118.Before deleting
examples/airport_weather/metar_acquisition.pyRead lines 80-98 first and preserve them somewhere (cw's README, or a comment in cw's ingress module). It is the fleet's best motivating anti-example for cw's whole thesis: the block defines a coercing wrapper named
acquire_metar_data(.split(',')on the ids,int()on the hours) and then dispatches_acquire_metar_data— the original, uncoerced function. Hand-written string→object ingress, written next to the dispatch call, wired to the wrong object, silently doing nothing.Explicitly NOT in this sweep
i2mint/gurgle—gurgle/terminal.py:221imports argh insidemain(), which is thegurgle-terminalconsole script. That is a migration or a CLI-retirement decision, not a deletion.addaix/raglab_bak— real CLI with an already-writtensys.argvfallback (raglab_bak/wips/vectordb_manager.py:41-45, 1140-1160); repo name ends in_bak; owner is outside the landing perimeter.i2mint/know— its single hit is a# TODOcomment (know/examples/keyboard_and_audio.py:263). Leave it; it is a good comment and it states cw's ingress spec years early.Acceptance criteria
rg -n '\bargh\b' --glob='*.py'returns nothing in each of the 12 reposmetar_acquisition.py:80-98is preserved in cw's docs before the file is touchedResearch & rationale: the canonical spec and the full fleet audit live in the private research ledger (https://github.com/thorwhalen/priv/discussions/65). Effort: medium.