pythonのslack関連のパッケージはどの辺りを見れば良いか調べた
pythonのslack関連のパッケージはどの辺りを見れば良いか調べた。古の記憶ではslackbotが有名だった。
過去の自分はえらいので以前にpytestのpluginについて調べたものと同様の方法を使えば良さそう。
pypistatsとか名前忘れていた。正直。
試す
だいたい以下の感じで進めれば良い
- pip search でテキトーに関連しそうなパッケージの一覧を探す
- pypistatsでテキトーにデータを取ってくる
- 月間ダウンロード数あたりでソート。
- 上位N件くらいを見る
はい。
実際にやってみる
手順は以下のMakefileがすべて。00から順に実行していけば良い。pypistatsとjqfpyは必要。
# 一覧取得 00: pip search slack | cut -d " " -f 1 | grep -v django | tee $@.txt pip search slackbot | cut -d " " -f 1 | grep -v django | grep -v markov_slackbot >> $@.txt # pypistatsにアクセス 01: for i in `cat 00.txt`; do pypistats recent $$i -f json; done | tee $@.json # 月間ダウンロード数でソート 02: cat 01.json | jqfpy --slurp 'sorted(get(), key=lambda x: x["data"]["last_month"], reverse=True)' --squash -c | tee $@.json # gistで見る分にはCSVが便利 03: echo package,download_last_month > 03.csv cat 02.json | jqfpy --slurp '[print(f"""{d["package"]},{d["data"]["last_month"]}""") for d in get()]; None' >> 03.csv # markdownでみたいよね 04: dictknife cat -o md 03.csv | tee $@.md
はい。こういうことが10分くらいでできたので良い。
結果
結果は、slackbotはやっぱり強くてslack-webhook-cliとslack,dagster-slack, slack-webhook, celey-slack, slack-cli辺りを見ておけば十分そう。
詳しくはこういう感じ。途中で切った。
package | download_last_month |
---|---|
slack-webhook-cli | 53994 |
slackbot | 18247 |
slack | 9564 |
pytest-slack | 9475 |
slack-logger | 5790 |
dagster-slack | 3088 |
slack-webhook | 2077 |
celery-slack | 1833 |
slack-cli | 1646 |
fabric-slack-tools | 1590 |
slack-entities | 842 |
slack-client | 825 |
追記
価値がありそうなのは以下くらいかも
- slackbot -- Based on slack Real Time Messaging API な所だけ注意だけれど。やっぱりコレが無難そう。単にpostするだけならrequestsで十分かも。
- python-slack-logger -- loggerと繋げてるだけだけど。場合によっては便利かもしれない。ちょっとしたhighlight付きなので。
- dagster-slack -- そもそもdagsterが何者?という感じなので後で調べる必要はある。覗いてみても良いかもくらい。
- slack-cli -- 人によってはCLIとして便利なことはあるかも。ちょっとした装飾を付けたい場合にも参考にするのはあり(中のコード覗いて無いけど)。
細々と想ったこと
ここからは細々とおもったこと
monthlyのダウンロードだけだとだるいかも?
けっこうgithubのstar数とはかけ離れていそう。けっこうスター数0のものがある。できれば1個は付いていて欲しい(?)。 あと、dagster-slackとか本体の方のスター数が見えるんだなー。pypi上での遷移先では。
あと、release_historyも欲しい。直近の更新がない場合は基本的に切るので(ただ月次のダウンロード数が多い状況なら安定しているのかもしれない)。
pip search?
なるほどと想ったのは、pip search slack
でslackbotが含まれないこと。へー。と思ったりした。
$ pip -V pip 19.3.1 from $HOME/venvs/my/lib/python3.8/site-packages/pip (python 3.8)
$ pip search slack | grep slackbot | wc 0 0 0 $ pip search slackbot | grep slackbot | wc 23 242 1965
pypistats
キャッシュは効くものの1回1秒程度は掛かる。もう少し頻繁にこの種の作業をするとしたらpypistatsを雑にCLIで使うという行為は卒業しても良いかもしれない。今はまだ大丈夫だと思っている。
URL
(追記:) こういう記事を書くのはあまり意味が無いと思ったけれど。リンク先をポチポチとクリックして遷移できるのはけっこう便利だった。
pypistatsの詳細ページのリンクもあると嬉しいかもしれない。例えば
- pypi -- https://pypi.org/project/slack-webhook-cli/
- pypistats -- https://pypistats.org/packages/slack-webhook-cli
- Homepage -- https://github.com/philippbosch/slack-webhook-cli
そしてpypiにreadmeを載せていないページもあるのでホームページのリンクもあると良いかもしれない。次回の話。
gist
gist
https://gist.github.com/podhmo/b841bac22e75b6fa8acc3d8f3503ff67