handofcats

手軽な実験のためのimport logger;logger.infoが面倒だったのでhandofcatsにprintを追加した

github.com 手軽な実験のためのimport logger;logger.infoが面倒だったのでhandofcatsにprintを追加した。 callstackを取り出してloggerに渡す名前を推測してみたりなどと色々と考えたりもしたけれど、結局保守的な実装に落ち着いた。 handofcats.print hand…

handofcatsで関数をコマンド化したときに戻り値をデフォルトで表示してくれるようにした

github.com handofcatsで関数をコマンド化したときに戻り値をデフォルトで表示してくれるようにした。 どうして? 今までは以下の様な関数をコマンド化したときに何も表示されなかった。 00hello.py from handofcats import as_command @as_command def hell…

pythonでimportが長めのコマンドをbulk action的に実行したい

例えば以下の様な感じで雑にシェル上でループしてコマンドを実行することがあったりすると思います。 $ for i in `seq 10`; do python xxx.py `pintf "%02dfile.txt" $i`; done あるいは $ ls *.txt | xargs -I{} python xxx.py {} こういうときに例えばimpo…

コマンドライン引数によって、オプションが変わるコマンドの書き方のメモ(2 phase parse?) (updated)

過去にこのような記事を書いた。 コマンドライン引数によって、オプション引数が変わるコマンドの書き方のメモ(2 phase parse?) 今ならどうするだろう?という記事。 これはsubcommandに他ならない 元の記事では以下の様な実行の仕方を許容しているようだ。-…

ふつうのpython関数をサブコマンドとして扱えるようになった (ejectもあり)

github.com 今まではシングルコマンドだけの対応だったのだけれど、ふつうのpython関数をサブコマンドとして扱えるようになった。 handofcatsを作った当初は対応する気はなかったのだけれど、結局欲しくなったので実装してしまった。実装の過程 で結構ハマり…

loggingの有効/無効を真面目に書くのがめんどくさくなったのでDEBUG=1を見て勝手に有効にすることにした

loggingの有効/無効を真面目に書くのがめんどくさくなったのでDEBUG=1を見て勝手に有効にすることにしました。めんどくさかったので。 github.com バージョン2.5.0の話です $ pip install handofcats $ pip freeze | grep handofcats handofcats==2.5.0 普通…

関数をCLIとして使えるようにするラッパーのhandofcatsをアップデートした

github.com 関数をCLIとして使えるようにするラッパーのhandofcatsをアップデートした。 けっこう日常的に使っているものほどバグが放置される傾向にある気がする。 たぶん便利さを求めたものに関しては作品感のようなものを感じる度合いが薄いのかもしれな…

handofcatsでchoicesをサポートした

github.com handofcatsでchoicesをサポートした。NewTypeで作った型にchoicesというattributeを追加してあげる感じで使う(experimental)。 詳細 以下の様なコードが dump.py import sys import typing as t from handofcats import as_command def csv_dump(…

過去に作ったpythonの関数をコマンドとして扱えるようにするライブラリを更新しました

github.com 過去に作ったpythonの関数をコマンドとして扱えるようにするライブラリを更新しました。 なんでhandfcats? 猫の手も借りたいときに使いたかったからです。痒いところに手が届くという意味では、猫の手よりまごの手の方が近いのかもしれないですが…