Skip to main content

Lockfile workflow utilities for conda

Project description

conda-flow

Conda flow is a lightweight library that uses both conda and conda-lock to create, curate, and activate locked conda environments.

Why?

Managing changes to environment files can be challenging, especially when trying to coordinate with locked environment details. The lock pattern provides a simple workflow in which:

  1. base (or unspecified) env files are edited by developers
  2. locked (or fully specified) env files are produced by conda-lock when running conda-flow

The above workflow has the advantages:

  • Env changes are version-controlled
  • No lock files are edited directly

In addition to the locking workflow (which is little more than a wrapper around conda-lock and some file management), conda-flow also provides an activation workflow. When running the conda-flow activate workflow, the following will occur:

  1. Search for a lock file matching the desired env name (according to config / file structure)
  2. Check if an env exists with that name:
    1. If yes, then compare checksums of envs to ensure up-to-date with lock file (removing if not)
    2. If no, create env from lock file
  3. Activate desired env
  4. Run additional configuration scripts as specified in config

Installation

Available on PyPI:

pip install conda-flow

Usage

Create a directory in your repo for managing base and locked env files (default is <project_root>/.envs). This directory will be configurable (more docs on config options coming)

Create a base env file, with an OS specified according to the filename template (also configurable), for example <project_root>/.envs/base-linux-64.yml with a minimal set of packages and specifications for your project. To generate the locked env <project_root>/.envs/locks/base-linux-64.lock (again name / location configurable), run:

conda-flow lock -c /path/to/config -n base -p linux-64

To activate the locked environment, run:

conda-flow activate -c /path/to/config -n base

This will:

  • find the proper lock file for the current OS according to the config
  • check to make sure any existing defined environments with matching names have matching specifications (checksums)
  • activate the environment
  • run any additional configuration scripts specified

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

conda-flow-0.3.3.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

conda_flow-0.3.3-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file conda-flow-0.3.3.tar.gz.

File metadata

  • Download URL: conda-flow-0.3.3.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for conda-flow-0.3.3.tar.gz
Algorithm Hash digest
SHA256 6ead41fa88fb299440c09ce1e847b0f0c246f7c8377ab3553e2a1435d4626d86
MD5 f289d6dbae2f9f381c9a0ebe333847cf
BLAKE2b-256 988ee70b931c1840fb93c5e55ffd65ecb966523c229a0c705107aefc7efb0ccd

See more details on using hashes here.

File details

Details for the file conda_flow-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: conda_flow-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for conda_flow-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d33b96689397506f64539334bc959d7eb93fc69929e4eaabbc150e637c244a68
MD5 754e27e74c3ed5b528f91c04323a9d3b
BLAKE2b-256 937a352ee4d4d47015cce0f75d4a546e107be6e7166fa780445dd43f4e9b4cc1

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