hatchpipdeepfreeze 0.2
hatch-pip-deepfreeze
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.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.