そぬばこ

備忘録とか、多分そんな感じ。

Poetry 1.3.0 がリリースされたよ

この記事は whywaita Advent Calendar 2022 11日目の記事です。

前日は id:hinananoha さんの

kokura.hatenadiary.jp

でした。壊れると悲しいですよね。

ということで、今回は whywaita さんでなにかするネタが思いつかなかったため、よく壊れる Python のパッケージマネージャ Poetry の最新バージョンについて書こうと思います。

Poetry とは

Poetry は Python のパッケージマネージャで、 requirements.txtsetup.py を代替していい感じにパッケージングしたり toml ベースでわかりやすくライブラリ管理できるソフトウェアです。

github.com python-poetry.org

ぼくと Poetry

9月頃、1.2.0 がリリースされました。

社内向けのスライドでキレている様子

公式のアナウンスでは 1.1.x と 1.2.x 系で互換があるとのことでしたが、壊れてしまい、社内でキレていました。

1.3.0 リリース 🎉

2022年12月9日、1.3.0 がリリースされました。(そのぼくがキレていた Issue は解決していませんが、特にキレてはないです)

1.2 では git 経由のインストールで subdirectory オプションが使えるようになったり*1、pyproject.toml のグループ機能が拡充されたりと個人的にかなり楽しみな機能追加が多くありました。

今回は特に個人的に楽しみなアップデートは無いので、さらっと気になったものだけさらっていこうと思います。

作業ディレクトリを CLI のオプションで指定可能に

-C, -directory で作業ディレクトリを指定することが、CLI 上で出来るようになりました。

$ poetry install -C python_workspace/

poetry.lock のフォーマットが変更に

Poetry 1.2.2 は 1.3 のフォーマットを読めるとかなんとからしいです。 試しに以下のパッケージを追加したもので、1.2.2 と 1.3 で diff をとってみましたが、よくわかりませんでした。

$ poetry add numpy pandas matplotlib
Using version ^1.23.5 for numpy
Using version ^1.5.2 for pandas
Using version ^3.6.2 for matplotlib

@generated で、自動生成を示す説明が付いているところは、今回の追加機能を反映されているものでしょう。

速度

Poetry は以下のような Issue が立つほどユーザが速度改善を望んでいます。

github.com

今回 poetry updatepoetry lock の挙動やキャッシュ周りに修正が入っているらしいので、Python のパッケージマネージャの速度比較をしている Web ページを見ながら、速度の影響が出ているのか少し見てみましょう。

Install 👎

lock と update 👍

一番利用する poetry install の時間がさらにかかっていそうでかなり厳しいものがありますね。

さいごに

なんやかんや言いつつも、管理が大変な requirements.txt や黒魔術のような setup.py にはもう戻りたくないため、 Poetry には今後もお世話になることと思います。

あと来年は whywaita さんをネタに出来るように、なにか考えていこうと思います。

明日は id:kyontan2 さんです。

*1:インストールしたい先の社内ライブラリがモノレポ構成とかだと特に助かった