/conda-hooks

Keep anaconda environment files up to date

Primary LanguagePythonMIT LicenseMIT

conda-hooks

Keep anaconda environment files up to date with installed packages. In contrast to conda export it keeps the channel list intact, sorts packages alphabetically and does not purge pip dependencies. conda-hooks can be integrated easily with pre-commit hooks to automatically check for any missing packages before committing.

Build Status codecov pre-commit.ci status PyPI Version License

Installation

As a Python package

The conda_hooks package is installable as a normal python package, for example via pip:

pip install conda_hooks

As a pre-commit hook

In your .pre-commit-config.yaml file add

repos:
  - repo: https://github.com/f-koehler/conda-hooks
    rev: "0.4.2"
    hooks:
      - id: conda-env-store

Usage

Command line

Running env_store --help will print information about the available command line options. We can either specify paths to environment file explicitly

conda_env_store environment1.yml env2.yaml src/env3.yml

or use globbing patterns like this:

conda_env_store -g **/environment.yml -g **/env.yml

Of course we can combine both methods:

conda_env_store -g src/env*.yml environment.yml

As a pre-commit hook

When using the pre-commit hook we can use the same command line arguments, so please refer to the section above. An example using globbing patterns would be:

repos:
  - repo: https://github.com/f-koehler/conda-hooks
    rev: "0.4.1"
    hooks:
      - id: prettier
        args: ["-g", "**/environment.yml"]