Skip to main content

A setuptools plugin that allows for dependencies that are dependent on the package's version number.

Project description

Generic BeeWare Logo

setuptools_dynamic_dependencies

Python Versions PyPI Version Maturity BSD License Discord server

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

setuptools_dynamic_dependencies-1.0.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file setuptools_dynamic_dependencies-1.0.0.tar.gz.

File metadata

File hashes

Hashes for setuptools_dynamic_dependencies-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4ee2566acbd83822efee73e0bc865234815359ac54ef851fa751033a67ad532f
MD5 59f4ddb5186d1a5c97be987778eb96c9
BLAKE2b-256 ca81c1a0b26eb2e9b001b8719aefd0e351fbf9eaa06ff58cd6479494edb8ef56

See more details on using hashes here.

File details

Details for the file setuptools_dynamic_dependencies-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for setuptools_dynamic_dependencies-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf4366ef91ebcc9f16aac3c1c2c607b76eadf6964d6fd84156ce353a29cffbc6
MD5 801e166d0e9df09fdbd63bf571fb8d72
BLAKE2b-256 087be6f08ea8c21dbf01fe83fa13a2cba22d8953c3a78e5c37be2c29b3d9e2fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page