No project description provided
Project description
Dependency groups
Poetry provides a way to organize your dependencies by groups.
For instance, you might have dependencies that are only needed to test your project or to build the documentation.
Poetry provides a way to organize your dependencies by groups.
The dependencies declared in project.dependencies respectively tool.poetry.dependencies are part of an implicit main group.
Those dependencies are required by your project during runtime.
Beside the main dependencies, you might have dependencies that are only needed to test your project or to build the documentation.
To declare a new dependency group, use a tool.poetry.group.<group> section where <group> is the name of your dependency group (for instance, test).
[tool.poetry.group.test.dependencies]
pytest = "^6.0.0"
pytest-mock = "*"
Default Groups:
- Main dependencies : Declared under
[tool.poetry.dependencies]. - Dev dependencies : Declared under
[tool.poetry.group.dev.dependencies].
Custom Groups:
You can define custom groups for specific purposes, like test, docs, or ci.
Syntax
To declare a new dependency group, use a tool.poetry.group.<group> section where <group> is the name
of your dependency group.
[tool.poetry.group.test]
# This part can be left out
[tool.poetry.group.test.dependencies]
pytest = "^6.0.0"
pytest-mock = "*"
Dependency groups, other than the implicit main group, must only contain dependencies you need in your development process.
Installing them is only possible by using Poetry.
Dependency resolution
All dependencies must be compatible with each other across groups since they will be resolved regardless of whether they are required for installation or not.
Think of dependency groups as labels associated with your dependencies: they don’t have any bearings on whether their dependencies will be resolved and installed by default , they are simply a way to organize the dependencies logically.
Dependency groups, other than the implicit main group, must only contain dependencies you need in your development process.
Installing them is only possible by using Poetry.
To declare a set of dependencies, which add additional functionality to the project during runtime, use extras instead.
Extras can be installed by the end user using pip.
Optional groups
A dependency group can be declared as optional.
This makes sense when you have a group of dependencies that are only required in a particular environment or for a specific purpose.
[tool.poetry.group.docs]
optional = true
[tool.poetry.group.docs.dependencies]
mkdocs = "*"
Optional groups can be installed in addition to the default dependencies by using the --with option of the install command.
poetry install --with docs
Optional group dependencies will still be resolved alongside other dependencies, so special care should be taken to ensure they are compatible with each other.
Adding a dependency to a group
poetry add pytest --group test
Installing group dependencies
By default , dependencies across all non-optional groups will be installed when executing poetry install.
poetry install --without test,docs
poetry install --only docs
poetry install --only main
poetry install --only-root
--without option
poetry install --without test,docs
--with option
poetry install --with docs
Removing dependencies from a group
poetry remove mkdocs --group docs
Synchronizing dependencies
Poetry supports what's called dependency synchronization.
Dependency synchronization ensures that the locked dependencies in the poetry.lock file are the only
ones present in the environment, removing anything that's not necessary.
This is done by using the --sync option of the install command:
poetry install --sync
poetry install --without dev --sync
poetry install --with docs --sync
poetry install --only dev
Layering optional groups
When you omit the --sync option, you can install any subset of optional groups without removing those that are already installed.
This is very useful, for example, in multi-stage Docker builds, where you run poetry install multiple times in different build stages.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file poetry_group_dependency-0.1.0.tar.gz.
File metadata
- Download URL: poetry_group_dependency-0.1.0.tar.gz
- Upload date:
- Size: 2.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.11.9 Linux/6.8.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65d1d179f23abe514d324f1f2553d9b8839ebbbe1e9f4a4b2604cc1dcb039ba7
|
|
| MD5 |
a3daad96893973fd629966af14ec7b72
|
|
| BLAKE2b-256 |
21ecf3d8d56375714975c85484dc8d9e58fcc58a608f28a7a0b84e7d45e6b9a1
|
File details
Details for the file poetry_group_dependency-0.1.0-py3-none-any.whl.
File metadata
- Download URL: poetry_group_dependency-0.1.0-py3-none-any.whl
- Upload date:
- Size: 2.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.11.9 Linux/6.8.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b72cbe4fe3c8c67785c86b2afc58280a39bfc95ce1d814f66a395e9e4ef20c7d
|
|
| MD5 |
1cc8967a1204dbe6b3e89d6bf9959552
|
|
| BLAKE2b-256 |
ffd6e57e81548d6a708106c19484148b228faa62805d3f64ff0bc45be602adf3
|