調整さんのイベント作成をPythonコード上から行えるライブラリchouseisan-pyを作りました。
以下の方法でインストールできます。
|
|
現在のバージョン0.1.0では、イベントの作成しかサポートしていません。 使い方は以下のとおりです。
|
|
ソースコードは以下に置いてあります。
https://github.com/ryu22e/chouseisan_py
調整さんにはAPIがないので、中でやっているのはrequestsとbeautifulsoup4を使ったスクレイピングです。
以下で、開発で利用したライブラリ・ツールについて紹介します。
poetry
公式サイト: https://python-poetry.org/
Pythonのパッケージマネージャーです。
poetry publish
でPyPIにデプロイする機能が便利そうだったので採用しました。
black
公式サイト: https://black.readthedocs.io/en/stable/
ソースコードを自動整形してくれるツールです。 GitHub ActionsとGitのpre-commitスクリプトで呼んで、blackで整形していないファイルがあればエラーにしています。
blackについて詳しくは以下の記事が参考になります。
もうPythonの細かい書き方で議論しない。blackで自動フォーマットしよう - Make組ブログ
flake8
公式サイト: https://flake8.pycqa.org/en/latest
Pythonコードが規約通りに書かれているかチェックするツールです。 前述のblackを使っていてもflake8的にエラーになるケースがあるので、併用しています。 GitHub ActionsとGitのpre-commitスクリプトでも呼ぶようにしています。
mypy
公式サイト: http://www.mypy-lang.org/
Pythonの型チェックを行ってくれるツールです。
requestsやbeautifulsoup4には型ヒントが書かれていないのですが、types-requestsやtypes-beautifulsoup4をインストールすることで型チェックができます。
mypyのおかげでNone
が返ってくる可能性があるコードなのにNone
に定義されていないメソッドを呼んでいる、といった不具合に早く気付くことができました。
GitHub ActionsとGitのpre-commitスクリプトでも呼ぶようにしています。
isort
公式サイト: https://pycqa.github.io/isort/
import文の並びを自動的にソートしてくれるツールです。 GitHub ActionsとGitのpre-commitスクリプトでも呼ぶようにしています。
responses
GitHubリポジトリ: https://github.com/getsentry/responses
requestsをモック化してくれるライブラリです。テストコードで本物の調整さんURLにアクセスするわけにはいかなかったので、採用しました。標準のunittest.mockより簡潔にテストを書けて重宝しました。
pytest
公式サイト: https://docs.pytest.org/en/7.0.x/
Pythonでは人気があるテストフレームワークです。標準のunittestとは違って、assert文だけで結果の検証ができます。
bump2version
GitHubリポジトリ: https://github.com/c4urself/bump2version
ソースコードに書かれたバージョン番号を更新し、Gitのタグを付けたコミットを作ってくれるツールです。 設定ファイルは以下のように書いています。
https://github.com/ryu22e/chouseisan_py/blob/v0.1.0/.bumpversion.cfg
後で調べて分かったのですが、poetry-dynamic-versioningというpoetryプラグインを使ってバージョン番号を更新する方法もあるようです。
pre-commit
公式サイト: https://pre-commit.com/
YAMLの設定ファイルを元に、Gitのpre-commitスクリプトを生成してくれるツールです。 設定ファイルは以下のように書いています。
https://github.com/ryu22e/chouseisan_py/blob/v0.1.0/.pre-commit-config.yaml