🛩️

使い始めて良かったと思うPython ライブラリとツール

2022/11/14に公開

コードのやり取りをする中で新しいライブラリやツールを知ることがあります。またMedium.comのToward Data Scienceで書かれている記事で得た情報を含めて、今年に入ってよく使うようになったと思う4つのツールを紹介したいと思います。

1. icecream

https://github.com/gruns/icecream

まずはicecream。なぜ知らなかったのかと思ったくらい、これは本当に頻繁に使うようになりました。

if a == b:
    print("if")
    return something
else:
    print("else")
    return something-else

コードを書いているときにいろんな所でprint()を使って確認しているかと思います。単純な例が上記のようなコードです。いろんな所でprint()を書いて確認しつつも、いざDeployというときに本当に必要なprint()と分けて削除したり整理するのも面倒です。もしかしたらタグをつけたり、複雑なRegexを使ってる人もいるかもしれません。ちょっと面倒なこの問題を解消してくれるのがicecreamです。

from icecream import ic

if a==b:
    ic("if")
    return something
else:
    ic("else")
    return something-else

単純にprint()をic()に変えてるだけです。Github repoにこれで60%速くタイプできると書いてあるのを見た時はちょっと笑ってしまいましたが、ともかくアピールできるのを見つけるのは好きです。結果は同じ情報ですが、Line numberもでてくるのでかなり便利です。他にも機能があるのですが、それはGithubページを参照してください。本当にお世話になってます。しかも後で消すのがとても簡単になりました。^ic(で検索すればいいんですから。

2. Rich

https://github.com/Textualize/rich

これはとても人気があるのでご存知の方も多いかもしれませんね。コードにおいて色分けというのは作業する人間にとってとても大事ですが、それをサポート+\alphaしてくれるライブラリです。
Repoでも紹介されていますが、InspectやTreeは見やすくて助かっています。

>>> my_list = ["foo", "bar"]
>>> from rich import inspect
>>> inspect(my_list, methods=True)

3. Poetry

https://github.com/python-poetry/poetry

Pythonの新しいDependency Managementツールです。Package化する時にはsetup.pyやsetup.cfgを使っていましたが、どんどんPoetryとpyproject.tomlを使った形に移行しています。詳しくはドキュメントサイトや、poetryについて書かれた記事を読んでいただけるといいのですが、Poetryにして管理しやすくなりました。pipやcondaではできない事をしてくれます。慣れの問題もあるので簡単に移行はできないかもしれませんが、一度変えて試してみると戻りたくなくなります。

Juliaを使っていますが、Juliaはproject.tomlが標準でPackage Managementに使用されています。PoetryのDependency ManagementがJuliaのやりかたと一緒になってるのでそれで移行しやすかったのもあるかもしれません。

Juliaの参考文献

4. Github Copilot

https://github.com/features/copilot

説明の必要がないとは思いますが、キーワードや書いているコードを元に使用されると思われるコードを提示してくれるサービスです。非常に便利です。昨年から無料で1年間使用可能でしたが、私の場合とうとう8月から有料化されてしまいました。月$10です。

これの使用方法はとてもシンプルです。

# create table from dataframe using bigquery

とどのようなファンクションをつくるのかコメントを書き出します。するとまず

# create table from dataframe using bigquery
# https://stackoverflow.com/...

のような関連したサイトを出したりしますが、ここでdefとタイプします。

# create table from dataframe using bigquery
def create_table_from_dataframe(df, table_id):

すると"create_table_from_dataframe(df, table_id):"が自動的に表示されます。そこでTabキーを押せば確定。今度はそれに関わるコードが提示されます。

これは、ほぼほぼGoogle Cloud上で見られるサンプルと一緒ですが、Tabキーを押して確定すれば、自分で一切のコードを書くことなく終わってしまいました。

日本語をキーワードとして使えるか試してみましたができました。ですが最初の例が変わりました。

こちらの方が好きですが、これで完成というより、これを参照して追加していく形でしょう。これで誰かが考えてくれていたデータタイプの取り扱い例が見えます。

もちろん英語版でもdefのラインの下に、# create schemaと入力すると同じように参考となるコードがでてきます。なのでこの「コメント」ラインが大事になってきます。本当にコードの書き方がどんどん変化していきますね。

以上4つのツールが昨年に比べたらよく使うようになったなと思うツールです。本当にいろんな人が便利なものを作ってくれますね。

Discussion