🤖

PoetryでローカルのPluginを追加する方法

2022/04/01に公開

はじめに

Poetryは皆さん使っておりますでしょうか。
https://python-poetry.org/
現在Poetryのバージョン1.2が開発中であり、執筆当時ではベータ版の1.2.0b1が出ています(以下、このバージョンに基づいて書いています)。
さて、このバージョン1.2では、いくつか大きなアップデートがあります。
そのうちの一つがPluginです。
https://python-poetry.org/docs/master/plugins/
これはpoetry plugin add poetry-pluginのようにインストールできます。
また上のドキュメントではPluginの作り方にも触れられています。
これを読むとPluginが作りたくなってきますね。
しかし、ここで問題があります。
PyPIにあるPluginは上記のように追加できるとして、ではどうやって自分で作ったローカルにあるPluginを読み込めば良いのでしょうか。

ローカルにあるPluginの読み込み方

結論から言うと、poetry addのときとほとんど同じです。実際

You can specify a package in the following forms:
  - A single name (<b>requests</b>)
  - A name and a constraint (<b>requests@^2.23.0</b>)
  - A git url (<b>git+https://github.com/python-poetry/poetry.git</b>)
  - A git url with a revision\
 (<b>git+https://github.com/python-poetry/poetry.git#develop</b>)
  - A git SSH url (<b>git+ssh://github.com/python-poetry/poetry.git</b>)
  - A git SSH url with a revision\
 (<b>git+ssh://github.com/python-poetry/poetry.git#develop</b>)
  - A file path (<b>../my-package/my-package.whl</b>)
  - A directory (<b>../my-package/</b>)
  - A url (<b>https://example.com/packages/my-package-0.1.0.tar.gz</b>)\

https://github.com/python-poetry/poetry/blob/da9680b0faee435a9d4fb52ac4b11b7a18c48069/src/poetry/console/commands/plugin/add.py#L35-L54
とあります。
なので、ローカルにあるプラグインのディレクトリを指定したり、ビルドしていればそのwhlファイルのパスをpoetry plugin addの後に指定すれば良いです。

おわりに

面白Poetry Pluginを作っていきたいですね。

Discussion