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.

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

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

Uploaded Source

Built Distribution

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

Uploaded Python 3

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