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のコマンドは直感的で使いやすく、適切なデフォルト値が設定されていますが、設定も可能です。

プラグインシステムにより、拡張性も備えています。