Git Product home page Git Product logo

jupyter-package-manager's Introduction

Package manager for SWAN and Jupyter Notebooks

Build Status Build status Quality Gate Status

Link to Final Report

This Jupyter notebook extension will allow the users to install python modules (and their respective versions) via a user interface and make them available automatically inside the corresponding project.

Each project is internally mapped to a separate conda environment. This helps abstract the processing part, while providing an independent environment for each project.

Features

  • View packages installed for a specific project
  • Update / Delete existing packages
  • Search for new packages and install them
  • Sync your project if any of your packages are missing or misconfigured

Setup Instructions

  • This project assumes a SWAN setup. The APIs require certain actions as prerequisites, which are already fulfilled by SWAN.

  • Please find the install instructions here

Usage Instructions

  • From the Projects tab, you can create a folder by clicking on the + button. Internally, this will create a new conda environment for all the notebooks inside it.

  • To configure the project, click the cog button. This would reveal a side panel listing down the installed packages, along with their corresponding versions.

  • If in case the project metadata and the underlying environment are not in sync, the sidebar will also list the packages that need to be additionally installed. This is fundamental to share projects and collaborate with peers. By default, when a user clones a shared project, the required packages are not installed. This extension will let users install them.

  • To install a new package, the user can search for them (an autocomplete feature is available). The selected packages are installed only when the user clicks the 'install' button. This allows the selection of other packages before issuing the 'install' command, which might take a while.

  • Users can check for updates, for all or only the selected packages, by clicking the small cog button beside the list of installed packages. A pop-up modal will list the packages that need to be updated, along with their versions. Similarly, users can select one or more packages and uninstall them by clicking the bin icon.

  • In order to create a notebook, click on the + button from inside a project or a regular folder. A list will then appear with the available kernels. Users will be able to launch notebooks only using the kernel corresponding to that project. Any external notebook (requiring a python kernel) placed under the project will also be using the same kernel.

Documentation

  • Please find the API Specification here
  • The code is documented with necessary inline comments and docstrings

Screenshot

Alt text

About

This extension is made for the purpose of fulfilment of the GSoC 2019 project at CERN (Project Summary)

jupyter-package-manager's People

Contributors

dependabot[bot] avatar renovate-bot avatar techtocore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

jupyter-package-manager's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.