Skip to main content

Create, Manage, Re-create conda environments & specifications with ease.

Project description

EZconda

EZconda

Conda (channel only)

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 between mamba and conda.

  • Built-in Good Practices & Guardrails : Enables the user to follow good practices, by default.

Requirements

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ezconda-0.8.0.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

ezconda-0.8.0-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

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

Hashes for ezconda-0.8.0.tar.gz
Algorithm Hash digest
SHA256 6fdba639fdafa2559e321eb5abb96b9c6fc803e492d5b961fb6d042befd5cad7
MD5 32d55c9b1ebf06cf681544b2868b2a14
BLAKE2b-256 5bab406bad5a9e86401095ceb9813478da8b7555d06f5ae02ec68804f65d6d5e

See more details on using hashes here.

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

Hashes for ezconda-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 50b360de9e75ff9aaaf6c7467be4194648c8c10094982cff7d73a8837b048005
MD5 a2368811cd655d8dc0665f22db802e51
BLAKE2b-256 09a937635c5dd30dc3f27d4bbd02a4bc3e4cbd1e7a3963ec42ec145239710df8

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