この記事はLIFULL その3 Advent Calendar 2018の7日目の記事とされている恐れがあります
謝罪
会社の後輩の記事をパクりました。
ワイが個人的に便利だと思っていてよく使っているJavaScriptモジュール(npm)たち
ここから本題
ここ1年の中で しまくったgithubリポジトリを年末調整すると同時に、
使っていて個人的に便利だなと思っているものを簡単に紹介しようと思います。
モジュール
Poetry
仮想環境の管理から、ライブラリの公開までやってくれる便利な開発ツール
正直、これを紹介するためだけにこの記事を書きました
BeProud Advent Calender 2018の『Poetryを使ったPythonパッケージ開発からPyPI公開まで』という記事も読んでください
Pipenv
依存ライブラリの管理や仮想(venv)環境も作ってくれる便利なツール
ただ、Poetryがあれば正直必要ない説も出てきてしまった
pyenvでバージョン切り替えてくれる機能は地味に便利
tqdm
超長いループの進捗を表示してくれるやつ
jupyter上ではtqdm_notebookを使うので注意
joblib
いい感じにマルチプロセス/マルチスレッドの処理を実行してくれるライブラリ
地味にロギング処理とかもついてる
pyppeteer
Pythonで動くヘッドレスなChromeです
元記事にもあったpuppeteerのポート
ただ、Pythonのasync関数は慣れず、Selenium使ったほうが楽説ある
kennethreitz/requests
HTTPクライアント
スタンダードすぎてPython公式のurllibのドキュメントでもおすすめされてる
kennethreitz/requests-html
クローリングするときに便利なライブラリ
簡単なものは今までrequests + BeautifulSoupを使って実装していたが、それらより使い勝手いい
便利なツールしか作れない開発者、kennethreitz
Flask
シンプルなWEBアプリケーションフレームワーク
WEB APIを作るときによく使ってる
click
デコレータでCLIを簡単に作れるライブラリ
retry
デコレータでretry機能をつけてくれるライブラリ
Pythonで例外処理を気合い入れて書こうとすると、どんどんネストしていってしまいがちなので
jupyter notebook
ブラウザ上でPythonコードを可視化してくれるやつ
pandas
データ分析用のデータフレームを作るライブラリ
Excelから読み書きできるのが地味に便利
個人的にR言語のdplyr/tidyrのほうが好きで、ちょっとした分析ならRStudioを立ち上げてしまうのは内緒
matplotlib
「もっと楽なグラフツールあるんじゃないか」って思いつつ、5年くらい使い続けている
pytest
Pythonのテストツール
pytest-mock
pytestにmockの機能を追加するモジュール
実体は unittest.mock
とかをラップしてるだけだが、個人的にお気に入り
pylint
Lintツール
毎回ignore設定されるE501
tox
ライブラリ作るときに複数バージョンのテストが必要になるとき便利
あとpylintとかの設定も管理・実行できるので良い
読み物系リポジトリ(?)
awesome-python
Pythonのワオなライブラリまとめ
Python チュートリアル
Python書く前に読んでおいた方が良さそうなことしか書いてないのでおすすめ
もはやリポジトリでもなんでもない
kennethreitz
requestsやPipenvなどの作者
API設計がきれいなので見ておくといい
Webフレームワークの「responder」とかも、この記事で気になってるもののまだ試していない
最後に
いかがでしたでしょうか。
個人的には、Pythonはライブラリに恵まれているのもあって、割と簡単に必要なプログラムが実装できます。ただ、非同期処理(async/await)やロギング処理で毎回定型文があるし、もう少し便利なライブラリが無いか(もしくはうまくラップする方法が無いか)探しています。
それではよいお年を!