Skip to main content

Lock hatch environments using pip-deepfreeze

Project description

hatch-pip-deepfreeze

PyPI - Version PyPI - Python Version


A hatch virtual environment plugin to lock dependencies with pip-deepfreeze.

Installation

hatch-pip-deepfreeze must be installed in the same environment as hatch itself.

If hatch has been installed with pipx:

pipx runpip hatch install hatch-pip-deepfreeze

If hatch has been installed with pip in the user environment:

pip install --user hatch-pip-deepfreeze

Usage

In the tool.hatch.envs.{name} section, add type = "pip-deepfreeze". Such environments behave similarly to the standard hatch virtual environments, except the installation and synchronization is performed using pip-deepfreeze sync.

This will automatically generate locked dependencies in requirements.txt, and uninstall unneeded dependencies after removing them from pyproject.toml. It also pins optional dependencies groups in requirements-{extra}.txt.

You can use the features to install project.optional-dependencies in environments.

Note that this pluging does not support per environment dependencies, because pip-deepfreeze works exclusively with project.optional-dependencies for that. Fortunately this is well supported by hatch.

As an example, you can adapt a pyproject.toml generated by hatch new like so:

Declare optional dependencies for test:

[project.optional-dependencies]
test = [
    "pytest",
    "pytest-cov",
]

Update the default environment section to remove dependencies and add features:

[tool.hatch.envs.default]
type = "pip-deepfreeze"
features = ["test"]

Use the usual hatch environment activation features such as hatch shell and notice pip-deepfreeze in action.

License

hatch-pip-deepfreeze is distributed under the terms of the MIT license.

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

hatch_pip_deepfreeze-0.2.tar.gz (5.3 kB view hashes)

Uploaded Source

Built Distribution

hatch_pip_deepfreeze-0.2-py3-none-any.whl (4.6 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