Skip to main content

Poetry plugin for simple mix dependencies from toml option and wrap poetry 'build' command.

Project description

Poetry Dependency Juice Plugin

This plugin simplifies the process of managing dependencies in your Poetry projects by allowing you to mix dependencies from specified groups and wrap the poetry build command into poetry jbuild. It provides an easy way to create custom mixes of dependencies and execute the build command with those mixes.

See difference:

Poetry build:

poetry build && pkginfo -f requires_dist dist/*.whl

output:

Building poetry-plugin-deps-juice (0.0.2)
  - Building sdist
  - Built poetry_plugin_deps_juice-0.0.2.tar.gz
  - Building wheel
  - Built poetry_plugin_deps_juice-0.0.2-py3-none-any.whl
requires_dist: ['poetry (>=1.8.0,<2.0.0)']

Juice build:

poetry jbuild && pkginfo -f requires_dist dist/*.whl

output:

Mixing juice..
base -> poetry
        {'poetry-core': '^1.7.0', 'wheel': '^0.42.0'}
setup -> poetry
        {'build': '^1.0.3', 'setuptools': '^69.0.3'}
Building poetry-plugin-deps-juice (0.0.2)
  - Building sdist
  - Built poetry_plugin_deps_juice-0.0.2.tar.gz
  - Building wheel
  - Built poetry_plugin_deps_juice-0.0.2-py3-none-any.whl
requires_dist: ['build (>=1.0.3,<2.0.0)', 'poetry (>=1.8.0,<2.0.0)', 'poetry-core (>=1.7.0,<2.0.0)', 'setuptools (>=69.0.3,<70.0.0)', 'wheel (>=0.42.0,<0.43.0)']

Usage

  1. Installation:

    Install the plugin using Poetry:

    pip install poetry-plugin-deps-juice
    

    or

    pip install --user poetry-plugin-deps-juice
    

    or at least

    poetry self add poetry-plugin-deps-juice
    
  2. Define Dependency Mix:

    Add your dependency mix to the pyproject.toml file under the [tool.poetry-plugin-deps-juice] section:

    [tool.poetry-plugin-deps-juice]
    "fancy" = [
         "base",
         "setup",
    ]
    

    Here, poetry is the custom mix name, and base and setup are the groups of dependencies to be mixed.

    To mix into default group [tool.poetry.dependencies] use:

    [tool.poetry-plugin-deps-juice]
    "poetry" = [
         "base",
         "setup",
    ]
    
  3. Execute Juice Command:

    Now you can use the defined mix with Poetry:

    poetry jbuild
    

    This command will mix dependencies from the specified groups and execute the poetry build command.

    This is easier than manually merging all dependencies into one group or adding them manually to the [tool.poetry.dependencies] option. When installing the built package using pip, only dependencies listed in the [tool.poetry.dependencies] option are installed (in current time). This plugin simplifies the process by allowing you to create mixes on-the-fly for the final package.

  4. List Available Dependency Mixes:

    To get a list of available mixes along with their corresponding groups, run:

    poetry juice-list
    

    This will display a list of mixes and their associated groups:

    "poetry" <-
            "base"
            "setup"
    

Contributing

Feel free to contribute to this plugin by reporting issues, suggesting features, or submitting pull requests on GitHub.

License

This plugin is licensed under the Apache 2. License. See the LICENSE file for details.

Download files

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

Source Distribution

poetry_plugin_deps_juice-0.0.3.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

poetry_plugin_deps_juice-0.0.3-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file poetry_plugin_deps_juice-0.0.3.tar.gz.

File metadata

  • Download URL: poetry_plugin_deps_juice-0.0.3.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 PyPy/7.3.10 Linux/5.10.194-1-MANJARO-TKG

File hashes

Hashes for poetry_plugin_deps_juice-0.0.3.tar.gz
Algorithm Hash digest
SHA256 ccf82221558df040a4a542a9b8488458122f884466e519095fb1d303b136b5bb
MD5 8c16bdf58266261d4700e55831fa590e
BLAKE2b-256 b099a1f46b7953c053476df8bd03f7fa72edbf3094af4eff4942e68aa0fda684

See more details on using hashes here.

File details

Details for the file poetry_plugin_deps_juice-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for poetry_plugin_deps_juice-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dae95aa9b0723710397da08a3867048544404779722b6fb0a408d0c6404aa3a9
MD5 1bd6f72af05c80018532f12e352d0222
BLAKE2b-256 ab6b18f44939d73ae062ede063fd89cd5665ad99b0e7ac7ac42f4d3df6867c05

See more details on using hashes here.

Supported by

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