Create, Manage, Re-create conda environments & specifications with ease.
Project description
EZconda
Create, Manage, Re-create conda environments & specifications with ease.
EZconda is a command line interface application that helps practitioners create and manage conda
environment and related specifications with ease.
It provides an easy to use higher level abstraction for creating and managing reproducible
conda
environments.
Key Features
-
Environment Management : Create and manage
conda
environments with ease. -
Specifications Management : Add and remove packages from the specifications file as you install & remove them.
No manual file edits! No exporting entire environments!
-
Reproducible Environments : Auto lock current environment state and re-create it exactly anywhere!
-
Easy & Intuitive : Intuitive commands and autocompletions by default.
-
Fast & Reliable Environment Resolution : Get fast and reliable environment solves by default.
EZconda uses
mamba
by default, but you can easily switch betweenmamba
andconda
. -
Built-in Good Practices & Guardrails : Enables the user to follow good practices, by default.
Requirements
- Conda installation
Installation
The recommended way to install EZconda is using conda
or mamba
in the base
environment :
Using conda
:
$ conda install ezconda -c conda-forge -n base
Using mamba
:
$ mamba install ezconda -c conda-forge -n base
A Minimal Example
Create a new environment
Create a new environment with Python 3.9
installed -
$ ezconda create -n ds-proj python=3.9
// Creates ds-proj with Python=3.9 installed
EZconda creates the conda
environment as well as a specifications file ds-proj.yml
(named after the environment name) -
name: ds-proj
channel:
- defaults
dependencies:
- python=3.9
Install packages
As you install packages, the specifications file is also updated accordingly.
$ ezconda install -n ds-proj -c conda-forge numpy pandas scipy
// Installs numpy, scipy, pandas from conda-forge channel
name: ds-proj
channel:
- conda-forge
- defaults
dependencies:
- python=3.9
- numpy
- pandas
- scipy
The conda-forge
channel was also added to the specifications along with the packages.
Remove packages
The specifications file is also updated when you remove packages.
$ ezconda remove -n ds-proj pandas
// Removes pandas from ds-proj
name: ds-proj
channel:
- conda-forge
- defaults
dependencies:
- python=3.9
- numpy
- scipy
Informed Package Removal: If you try to remove a package that is a dependency for an installed package, EZconda will inform you before removing the package. See docs for more details.
Sync environment with changes
Let's say you are working with collaborators and they update the specifications file (ds-proj.yml
) with a new dependency. Now, your local conda environment is out of sync with the new dependencies.
To bring it back in sync, you can use the sync
command.
$ ezconda sync -n ds-proj --with specfile
// Syncs ds-proj environment with new changes in specifications file (ds-proj.yml)
Sync changes: Learn more about syncing environments in the user guide.
Re-create environment
As you create, install and remove packages, in addition to the specifications file, EZconda also generates and maintains a lock file.
You can use this lock file to reproducibly re-create an environment.
Lock file: You can learn more about reproducible environments and lock file in docs.
$ ezconda create --file ds-proj-darwin-x86_64.lock
// Creates a new environment 'ds-proj-darwin-x86_64.lock'
Summary
In summary, EZconda provides an easy to use higher level abstraction for creating and managing reproducible conda
environments.
To learn more, check out the User Guide
Contributing Guidelines
Run tests
docker-compose up --build test
Local iterative development
docker-compose build dev && docker-compose run dev bash
Project details
Release history Release notifications | RSS feed
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 ezconda-0.8.0.tar.gz
.
File metadata
- Download URL: ezconda-0.8.0.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.8.13 Linux/5.13.0-1031-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fdba639fdafa2559e321eb5abb96b9c6fc803e492d5b961fb6d042befd5cad7 |
|
MD5 | 32d55c9b1ebf06cf681544b2868b2a14 |
|
BLAKE2b-256 | 5bab406bad5a9e86401095ceb9813478da8b7555d06f5ae02ec68804f65d6d5e |
File details
Details for the file ezconda-0.8.0-py3-none-any.whl
.
File metadata
- Download URL: ezconda-0.8.0-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.8.13 Linux/5.13.0-1031-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50b360de9e75ff9aaaf6c7467be4194648c8c10094982cff7d73a8837b048005 |
|
MD5 | a2368811cd655d8dc0665f22db802e51 |
|
BLAKE2b-256 | 09a937635c5dd30dc3f27d4bbd02a4bc3e4cbd1e7a3963ec42ec145239710df8 |