A setuptools plugin that allows for dependencies that are dependent on the package's version number.
Project description
setuptools_dynamic_dependencies
setuptools_dynamic_dependencies is a setuptools plugin that allows you to define project
requirements that are dynamically dependent on other properties (such as project
version). This can be useful in monorepositories which contain a "core" package and a
number of "backend" packages, and you want to enforce a version dependency between the
backend and the core.
Usage
You must be using a pyproject.toml-based project configuration. setup.cfg and
setup.py configurations are not supported.
Add setuptools_dynamic_dependencies to the build-system requirements for your project:
[build-system]
requires = ["setuptools_dynamic_dependencies"]
Declare "dependencies" as being dynamic in your [project] table:
[project]
dynamic = ["dependencies"]
Then, add a [tool.setuptools_dynamic_dependencies] section to your configuration. In
this section, add an dependencies key for any requirements. In the following example,
dynamic-package will be pinned to the same version as the package being built:
[tool.setuptools_dynamic_requires]
dependencies = [
"dynamic-package == {version}"
]
So - if this was the pyproject.toml for "myproject", and you were building v1.2.3, the
dependency would be set to dynamic_package == 1.2.3. This version value can come
from a setuptool_scm dynamic version, if required.
You can also specify a [tool.setuptools_dynamic_dependencies.optional-dependencies] to
define dynamic optional requirements:
[tool.setuptools_dynamic_dependencies.optional-dependencies]
feature = [
"dynamic-package == {version}"
]
Community
setuptools_dynamic_dependencies is part of the BeeWare suite. You
can talk to the community through:
We foster a welcoming and respectful community as described in our BeeWare Community Code of Conduct.
Contributing
If you experience problems with setuptools_dynamic_dependencies, log them on
GitHub. If you want
to contribute code, please fork the
code and submit a pull
request.
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 setuptools_dynamic_dependencies-1.0.0.tar.gz.
File metadata
- Download URL: setuptools_dynamic_dependencies-1.0.0.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ee2566acbd83822efee73e0bc865234815359ac54ef851fa751033a67ad532f
|
|
| MD5 |
59f4ddb5186d1a5c97be987778eb96c9
|
|
| BLAKE2b-256 |
ca81c1a0b26eb2e9b001b8719aefd0e351fbf9eaa06ff58cd6479494edb8ef56
|
File details
Details for the file setuptools_dynamic_dependencies-1.0.0-py3-none-any.whl.
File metadata
- Download URL: setuptools_dynamic_dependencies-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf4366ef91ebcc9f16aac3c1c2c607b76eadf6964d6fd84156ce353a29cffbc6
|
|
| MD5 |
801e166d0e9df09fdbd63bf571fb8d72
|
|
| BLAKE2b-256 |
087be6f08ea8c21dbf01fe83fa13a2cba22d8953c3a78e5c37be2c29b3d9e2fa
|