2020-01-01から1ヶ月間の記事一覧

goで想定した実装が1つだけのときに、テストのためだけにインターフェイスを書きたくない

この話に似た話。type aliasを使った型の読み替えで手抜きができる(場合がある)。 テストのためだけにインターフェイスを書きたくないでござる リンク先の記事はtype aliasを使って同一パッケージ上にimportしてくる。 そしてテスト中はmockの方にビルドタグ…

client_idとcient_secretだけからgoogle authのtoken情報を取得する方法

こんな感じでやれば良い。書きかけ。飽きたので途中でおしまい。 prepare pip install google-auth-oauthlib python-dotenv run 以下が必要。 アプリがRPに権限を要求するときのclient id, client secret 権限を要求するscopes client id, client secret pri…

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…

今pythonでCLIの設定ファイルと付き合うならpydanticを使うかも?

argparse関連の記事を最近色々書いてきたけれど。そういえば設定ファイルとの付き合い方については書いていなかった。今ならどうやって付き合うかなーということのメモ。 ここでの設定ファイルとはファイル名がコマンドライン引数として渡されて、それを読み…

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

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

SQSのdeduplication Idについてよくわかっていなかったのでメモ

deduplication Idの指定にFIFOキューである必要はあるか? 概要 deduplication Idの指定というのは、ContentBaseDeduplicationの機能の一部 ContentBaseDeduplicationは、FIFOキューでなければ有効にならない。 つまりContentBaseDeduplicationでデフォルト…

ふつうの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 普通…

最近のgoでCLIのコマンドを作るときの雛形のメモ (updated)

昔にも似たような記事を書いていたみたいだった。最近のgoでのCLIツールを書く際の心境の変化があったのでその辺をメモしておく。 最近goでCLIのコマンドを作るときの雛形のメモ 心境の変化 心境の変化は2つ コマンドラインオプションをstructで囲む理由が…

monogusaを使ってただのpythonの関数をslackやdiscord上のコマンドとして公開できるようになった

今までただの関数をCLIとして利用できたり、ちょっとしたwebAPIとして利用できるようにしていたけれど。 今度はmonogusaを使ってただのpythonの関数をslackやdiscord上のコマンドとして公開できるようになった。 簡単な例 例えば以下の様な関数がある。本当…