PEP 621 Metadata#
プロジェクトのメタデータはpyproject.toml
に保存されます。仕様はPEP 621、PEP 631、PEP 639で定義されています。PEPsの詳細な仕様を読んでください。
この文書の次の部分では、明示的に指定されていない場合、メタデータは[project]
テーブルの下に記述する必要があります。
Multiline description#
TOMLが複数行の文字列をサポートしているため、長い説明を複数の行に分割することができます。新しい行をエスケープすることを忘れないでください。そうすれば、最終的な説明は on one line only in your package metadataに表示されます。新しい行をエスケープすると、インデントも削除されます。:
1 2 3 4 5 6 |
|
TOML's specification on stringsを参照してください。
Package version#
1 2 |
|
1 2 3 4 5 6 |
|
バージョンはmypackage/__version__.py
ファイルから読み込まれ、パターン__version__="{version}"
が検索されます。
その他の構成の詳細については、pdm-backend
ドキュメントのdynamic project versionを参照してください。
Python version#
必要なPythonのバージョンは、文字列requires-python
で指定されます。
1 2 3 4 5 6 7 8 |
|
注:PEP 621によると、PDMは、他の非準拠ツールのようにclassifiers
セクションを動的に更新することは許可されていません。したがって、PyPIでパッケージを公開する予定がある場合は、上記のように適切なtrove classifiersも含める必要があります。
License#
ライセンスは文字列license
で指定されます。:
1 2 3 4 5 |
|
注:PEP 621によると、PDMは、他の非準拠ツールのようにclassifiers
セクションを動的に更新することは許可されていません。したがって、PyPIでパッケージを公開する予定がある場合は、上記のように適切なtrove classifiersも含める必要があります。
Dependency specification#
project.dependencies
は、PEP 440とPEP 508に続く依存性指定文字列の配列です。
以下に例を示します。:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Optional dependencies#
いくつかの要件をオプションにすることができます。これはsetuptools
のextras_require
パラメータと似ています。
1 2 3 4 5 6 7 |
|
オプションの依存関係のグループをインストールするには、次の手順に従います。"
1 |
|
-G
オプションを複数回指定して、複数のグループを含めることができます。
Context variables expansion#
使用しているビルドバックエンドに応じて、PDMは依存関係文字列の一部の変数を展開します。
Environment variables#
1 2 |
|
1 2 |
|
その他の使用方法については、hereを参照してください。
資格情報の漏洩を心配する必要はありません。環境変数は必要に応じて展開され、ロックファイル内でそのまま保持されます。
Relative paths#
相対パスからパッケージを追加すると、PDMは自動的にそれをpdm-backend
およびhatchling
の相対パスとして保存します。
たとえば、pdm add ./my-package
を実行すると、pyproject.toml
に次の行が表示されます。
1 2 |
|
1 2 |
|
デフォルトでは、hatchlingは依存性文字列でdirect referencesをサポートしていません。pyproject.toml
でこれを有効にする必要があります。
1 2 |
|
相対パスは、のインストール時またはロック時に、プロジェクトルートに基づいて展開されます。
Console scripts#
次の内容は:
1 2 |
|
setuptools
スタイルに変換されます。:
1 2 3 4 5 |
|
また、[project.gui-scripts]
はsetuptools
スタイルでgui_scripts
エントリポイントグループに変換されます。
Entry points#
その他のタイプのエントリポイントは[project.entry-points.<type>]
セクションで指定します。フォーマットは[project.scripts]
と同じです。:
1 2 |
|
エントリポイント名にドットやその他の特殊文字が含まれている場合は、引用符(")で囲みます。
1 2 |
|