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:
- base (or unspecified) env files are edited by developers
- 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:
- Search for a lock file matching the desired env name (according to config / file structure)
- Check if an env exists with that name:
- If yes, then compare checksums of envs to ensure up-to-date with lock file (removing if not)
- If no, create env from lock file
- Activate desired env
- 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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ead41fa88fb299440c09ce1e847b0f0c246f7c8377ab3553e2a1435d4626d86 |
|
MD5 | f289d6dbae2f9f381c9a0ebe333847cf |
|
BLAKE2b-256 | 988ee70b931c1840fb93c5e55ffd65ecb966523c229a0c705107aefc7efb0ccd |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | d33b96689397506f64539334bc959d7eb93fc69929e4eaabbc150e637c244a68 |
|
MD5 | 754e27e74c3ed5b528f91c04323a9d3b |
|
BLAKE2b-256 | 937a352ee4d4d47015cce0f75d4a546e107be6e7166fa780445dd43f4e9b4cc1 |