Pythonのパッケージングと依存関係管理を簡単に
Poetry
決定論的なビルド
開発
Poetryは、プロジェクトを決定論的に管理するために必要なすべてのツールを提供します。
$ poetry add pendulum
Using version ^2.0.5 for pendulum
Updating dependencies
Resolving dependencies... (1.5s)
Package operations: 4 installs, 0 updates, 0 removals
- Installing six (1.13.0): Downloading... 25%
- Updating pytzdata (2019.3 -> 2020.4): Installing...
- Installing pendulum (2.0.5)
Writing lock file
簡単にパッケージ化
ビルド
単一のコマンドでプロジェクトを簡単にビルドし、パッケージ化できます。
$ poetry build
Building poetry (1.0.0)
- Building sdist
- Built poetry-1.0.0.tar.gz
- Building wheel
- Built poetry-1.0.0-py2.py3-none-any.whl
ソースディストリビューションとホイールをサポートしています。
作品を共有する
公開
作品をPyPIに公開して、広く知ってもらいましょう。
$ poetry publish
Publishing poetry (1.0.0) to PyPI
- Uploading poetry-1.0.0.tar.gz 100%
- Uploading poetry-1.0.0-py2.py3-none-any.whl 58%
プライベートリポジトリにも公開できます。
依存関係の状態を確認する
追跡
プロジェクトの依存関係を把握するには、コマンドを1つ実行するだけです。
$ poetry show --tree
requests-toolbelt 0.8.0 A utility belt for advanced users...
└── requests <3.0.0,>=2.0.1
├── certifi >=2017.4.17
├── chardet >=3.0.2,<3.1.0
├── idna >=2.5,<2.7
└── urllib3 <1.23,>=1.21.1
$ poetry show --latest
pendulum 2.0.4 1.4.5 Python datetimes made easy.
django 1.11.11 2.0.3 A high-level Python Web framework ...
requests 2.18.4 2.18.4 Python HTTP for Humans.
依存関係リゾルバー
Poetryには、網羅的な依存関係リゾルバーが付属しており、解決策が存在する場合は常に解決策を見つけます。
解決策が存在しない場合は、詳細な説明が得られます。
隔離
Poetryは、設定済みの仮想環境を使用するか、独自の仮想環境を作成して、常にシステムから隔離されます。
この動作は設定可能です。
直感的なCLI
Poetryのコマンドは直感的で使いやすく、適切なデフォルト値が設定されていますが、設定も可能です。
プラグインシステムにより、拡張性も備えています。