開発用依存関係とオプショナルグループ
requirements-dev.txtの開発、テスト、ドキュメント依存関係をpyproject.tomlのoptional-dependenciesグループに変換する方法を学びます。
Advanced Features
詳細な説明
多くのPythonプロジェクトは依存関係を別ファイルに分割します:本番用のrequirements.txtと開発ツール用のrequirements-dev.txt(またはrequirements-test.txt)。pyproject.tomlでは、これらは[project.optional-dependencies]で名前付きグループとして整理されます。
requirements-dev.txt:
pytest>=7.4
pytest-cov>=4.1
pytest-asyncio>=0.23
ruff>=0.1.6
mypy>=1.7
black>=23.11
pre-commit>=3.5
pyproject.tomlに変換:
[project.optional-dependencies]
dev = [
"pytest>=7.4",
"pytest-cov>=4.1",
"pytest-asyncio>=0.23",
"ruff>=0.1.6",
"mypy>=1.7",
"black>=23.11",
"pre-commit>=3.5",
]
devメタグループパターンは、devグループが自己参照extras(my-project[test,lint,docs])を使用して他のすべてのオプショングループを参照する一般的な規約です。ユーザーはpip install -e ".[dev]"ですべてをインストールするか、pip install -e ".[test]"でテストツールのみをインストールできます。
このアプローチは、複数のrequirements-*.txtファイルパターンを、各依存関係グループの用途が明確に定義された単一のpyproject.tomlに置き換えます。
ユースケース
別々のrequirements-dev.txt、requirements-test.txt、requirements-docs.txtファイルを、整理されたoptional-dependencyグループを持つ単一のpyproject.tomlに統合する。