• Stars
    star
    254
  • Rank 154,471 (Top 4 %)
  • Language
    TypeScript
  • License
    Other
  • Created almost 6 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Conda environment and package management extension from within Jupyter

Gator

The Mamba Navigator, a Web UI for managing conda environments

Binder Install with conda npm Github Actions Status Coverage Status Swagger Validator

Provides Conda/Mamba environment and package management as a standalone application or as extension for JupyterLab.

Install

Requirements

  • conda >= 4.5 or mamba >=0.5
  • JupyterLab 1.x, 2.x or 3.x (for the JupyterLab extension only)

Starting from 3.4, this extension will use mamba instead of conda if it finds it.

To install in the classical notebook:

mamba install -c conda-forge mamba_gator

To install in the JupyterLab:

mamba install -c conda-forge jupyterlab mamba_gator

If you use JupyterLab 1.x or 2.x, you can install the extension with the following command:

jupyter labextension install @mamba-org/gator-lab

Optionally, you could install jupyterlab-tour to add a help tour for the conda packages manager.

JupyterLab

This extension adds a new entry Conda Packages Manager in the Settings menu.

The first time, it can take quite some time to build the available packages list. But once it is obtained, it will be cached and updated to the background to have a smoother user experience.

jupyterlab_conda_extension

Gator (Mamba navigator)

This project contains a standalone navigator application sharing much of the code of the JupyterLab extension.

Classical Jupyter Notebook

The classical Jupyter Notebook is supported only for version prior to 5. But you can directly manage the conda environments with the standalone navigator tool. For that you need to execute the following command in a terminal:

gator

Creating New Environments

There are three ways to create an environment:

  • Create a new environment Use the New Environment button at the top of the page, and select Python 3, or R to create a base environment with the corresponding packages. Note that if you want to run a Jupyter python kernel in the new environment, you must also install the ipykernel package in the environment.

  • Clone an existing environment Click the clone button next to an environment in the list, and enter the desired name of the new environment.

  • Import an exported environment from a YAML file

Try it online

Open Gator (Mamba Navigator): Binder

Open JupyterLab: Binder

lab-launcher

Development

mamba create -c conda-forge -y -n gator python jupyterlab=3
mamba install -c conda-forge -y -n gator --file requirements_dev.txt
conda activate gator
pip install -e .
jupyter server extension enable mamba_gator --sys-prefix

yarn install
yarn run build:dev
jupyter labextension link packages/common/ packages/labextension/

Acknowledgements

This work started as a fork by @fcollonval of the Anaconda nb_conda package. The decision to fork it came due to apparently dead status of the previous package and a need to integrate it within JupyterLab.

Then with the mamba initiative pushed by QuantStack it made sense to move the project in the mamba-org organization.

Changelog

5.1.2

  • Security updates:
    • Bump handlebars from 4.7.6 to 4.7.7 (#143)
    • Bump hosted-git-info from 2.8.8 to 2.8.9 (#144)
    • Bump lodash from 4.17.20 to 4.17.21 (#145)
    • Bump browserslist from 4.16.1 to 4.16.6 (#146)
    • Bump ws from 7.4.2 to 7.4.6 (#148)
    • Bump postcss from 7.0.35 to 7.0.36 (#149)
    • Bump tar from 4.4.13 to 4.4.15 (#151)
    • Bump path-parse from 1.0.6 to 1.0.7 (#152)
    • Bump tar from 4.4.15 to 4.4.19 (#153)
  • Maintenance:
    • Add keywords and PyPI classifiers

5.1.1

  • Bug fix
    • Fix gator not displayed after updating or re-installing #139

5.1.0

  • Feature
    • Use much faster mamba repoquery search command to list packages instead of conda search #133 (Thanks to @ericpre)
  • Bug fix
    • Fix mamba detection on Windows #135 (Thanks to @ericpre)

5.0.0

  • Features
    • Update to JupyterLab 3 and the new Jupyter Server
      You don't need to install anything more than the pip or conda package.
    • Drop support for the classical notebook.

4.1.0

  • Features
    • Dependencies graph (by clicking on the installed version for now) #83
  • Bug fix
    • Fix missing classical notebook extension #115
    • Fix mamba not detected on Windows #119

4.0.0

  • Features
    • Moving to mamba-org
    • Integrate a standalone application
    • Common frontend for JupyterLab, classical Notebook and Gator
    • Depend optionally on nb_conda_kernels

3.4.1

  • Features
    • Better logger
  • Bugs
    • Reduce UI freezing time by running expensive code in asynchronous executor

3.4.0

  • Features
    • Use mamba if available. Otherwise use conda #46
    • Move to GitHub workflow (extend coverage to JupyterLab code)
  • Bugs
    • Fix wrong redirection url in classic notebook #47
    • Fix channel given by full URL not properly handle #55

3.3.1

  • Bugs
    • Fix export always from history (settings ignored)

3.3.0

  • Features
    • Add a settings fromHistory to export an environment using --from-history (available for conda >= 4.7.12) #39
  • Bugs
    • Fixes absent channeldata.json file #36
    • Fixes environment update absent from public API #37
  • Documentation
    • Start REST API description with Swagger

3.2.0

  • Available package cache file is now writable for everybody to avoid trouble in multi-user context. #25

  • Add update environment from file through REST endpoint PATCH /environments/ #26

  • Switch to newer Python syntax async-await

  • To improve UI reactivity in Jupyterlab:

    • Long running task can now be cancelled #32
    • The available packages list is used to find updatable package. conda update --dry-run --all is not used any longer. But it is still used if the user request updating all possible packages.

3.1.0

  • Request environment list accept now whitelist=0 or 1 query arguments. If 1, the environment list is filtered to respect KernelSpecManager.whitelist. Default is 0, but it could be modified in user settings.
  • JupyterLab extension
    • IEnvironmentManager.getPackageManager() returns always the same Conda.IPackageManager otherwise signaling package operations would have been meaningless.
    • Add ability to specify kernel companions; i.e. check that if some packages are installed in a kernel, they must respect a certain version range. Companions can be specified through user settings.
    • Small UI tweaks

3.0.0

  • Rework the server/client API to be more RESTful and returns 202 status for long operations
  • Cache available packages list in temp directory
  • Improve greatly the coverage for the server extension
  • JupyterLab extension only:
    • Allow the user to change the proposed environment when creating one from scratch
    • Add signals to handle environnements and packages changes (see labextension\src\__tests__\services.spec.ts)
    • Improve the UI reactivity by using react-virtualized for the packages list
    • Improve the look and feel
  • Available packages truncation has been removed.

2.5.1

  • Catch SSLError when requesting channeldata.json file

2.5.0

  • Export in YAML format the environment (import in the older format is still supported).
  • Improve responsiveness by loading first installed packages. Then request available one.
  • BUG error is prompt when an environment is deleted although everything went well
  • Cache some API requests (GET environments, GET channels and GET available packages).
  • Available packages are now truncated to 100.
    • Use query argument $skip to skip N first packages
    • If the list is longer than 100, a entry $next in the response is returned. This is the request url to use to get the next batch of packages.
  • Report full error message in web browser console to ease debugging.

2.4.2

  • BUG environment not shown
  • BUG Installing package in develop mode fails if in user home or containing spaces
  • Improve error feedback from API to frontend

2.4.1

  • BUG conda search crashes for conda 4.6

2.4.0

  • Add installation of package in development mode (through pip)

2.3.x

  • Add JupyterLab extension inspired by Anaconda Navigator
    • Retrieve conda package description
    • Add link to package website (if available)
  • Support conda >=4.5
  • Make all conda request asynchronously
  • Use the automatic installation for Jupyter Notebook extension (see here)

2.2.1

  • fix bug in check updates feature

2.2.0

  • support conda 4.3
  • support notebook security fix introduced in notebook 4.3.1

2.1.0

  • fix environment export button
  • allow environment names with one letter and validate against "suspicious" characters

2.0.0

  • update to new jupyter_conda_kernels naming scheme
  • namespace all API calls into /conda/

1.1.0

  • fix usage in root environment

1.0.1

  • minor build changes

1.0.0

  • Update to notebook 4.2

More Repositories

1

mamba

The Fast Cross-Platform Package Manager
C++
6,027
star
2

quetz

The Open-Source Server for Conda Packages
Python
262
star
3

boa

The fast conda package builder, based on mamba
Python
248
star
4

micromamba-docker

Rapid builds of small Conda-based containers using micromamba.
Shell
243
star
5

rattler

Rust crates to work with the Conda ecosystem.
Rust
214
star
6

resolvo

Fast package resolver written in Rust (CDCL based SAT solving)
Rust
127
star
7

setup-micromamba

GitHub Action to set up micromamba
TypeScript
86
star
8

provision-with-micromamba

[DEPRECATED] Use setup-micromamba instead
JavaScript
74
star
9

vscode-micromamba

A VSCode extension to generate development environments using micromamba and conda-forge package repository
TypeScript
69
star
10

rhumba

The R package manager that is blazingly fast âš¡. Powered by mamba.
C++
68
star
11

micromamba-releases

Micromamba executables mirrored from conda-forge as Github releases
Python
42
star
12

micromamba-devcontainer

A micromamba-based VS Code development container image.
Shell
34
star
13

setup-mamba

A GitHub action for setting up the Mamba package manager
TypeScript
20
star
14

picomamba

Minimalistic, experimental mamba, compiles to WASM
Python
16
star
15

multisheller

Python
15
star
16

powerloader

C++
15
star
17

minirhumba

Mini installer that contains everything that's necessary to run rhumba
Shell
14
star
18

mamba-navigator

A web UI for exploring Mamba environments
TypeScript
12
star
19

monstructor

The mamba constructor
C++
11
star
20

boa-forge

New style recipes for boa, with features enabled
Python
11
star
21

ansible-role-micromamba

Install micromamba, and optionally create a base conda environment.
9
star
22

quetz-frontend

Quetz Frontend
TypeScript
8
star
23

rattler-server

A server that solves environments using rattler!
Rust
7
star
24

quetz-client

A Python client for Quetz.
Python
5
star
25

build-locally-ansible

Build locally (in the cloud) with Ansible
Jinja
4
star
26

devcontainer-features

Shell
4
star
27

bitfurnace

Cross platform build helpers for conda-forge
Python
3
star
28

conda-specs

A collection of specs, and spec proposals for Mamba packages, recipes and repositories
3
star
29

design

Design resources
3
star
30

cmake-micromamba

Install dependencies using micromamba directly from a CMake script
CMake
2
star
31

quetz-theme

A dark-yellow theme for JupyterLab and Quetz
CSS
2
star
32

libcred

Cross-platform secure credential storage - port of keytar to pure C++ library
C++
2
star
33

conda_oci_mirror

Tools to mirror conda packages to an OCI registry
Python
1
star
34

quetz-plugin-cookiecutter

cookiecutter template for quetz plugins
Python
1
star