GithubHelp home page GithubHelp logo

zhubingbing / jupyterlab-kubeflow-kale Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kubeflow-kale/jupyterlab-kubeflow-kale

0.0 1.0 0.0 1.3 MB

JupyterLab extension to provide a Kubeflow specific left area for Notebooks deployment

License: Apache License 2.0

TypeScript 94.17% JavaScript 0.10% CSS 5.73%

jupyterlab-kubeflow-kale's Introduction

⚠️NOTICE⚠️: This repository has been archived. The code has been moved to the kale repository, where it is maintained under the labextension folder.

Kale JupyterLab Extension

This JupyterLab extension provides a Kubeflow specific left area that can be used to deploy a Notebook to Kubeflow Pipelines. The UI is just high level component designed to let the user annotate Notebook metadata and Cells metadata easily and visually. In order to convert the notebook to a Kubeflow Pipeline workflow and have it run in KFP, Kale needs to be installed in the same Python environment as the running Notebook Kernel.

Getting started

# install jupyter lab
pip install jupyterlab==1.1.1

# install kale: see instructions in Kale repository
# ...

# install the extension
jupyter labextension install kubeflow-kale-launcher
# verify extension status
jupyter labextension list

# run
jupyter lab

KaleLauncherScreenshot

How it works

Kale Launcher UI lets you update Notebook and Cells metadata according to Kale spec. The extension reads and saves Notebook metadata automatically, keeping a consistent view of the Notebook spec. You don't have to worry about manually saving the Notebook, the extension will write any new changes automatically.

When clicking the big blue run button, Kale will be run in the background over the active Notebook and perform the required action based on the button option selected.

The Launcher is able to invoke Kale in the background by programmatically executing shell commands in the Kernel environment. Specifically, it will run:

kale --nb <current_active_notebook_name> [--upload_pipeline] [--run_pipeline]

Development

Build

To build and run the extension in dev mode, first clone the repository in your local machine.

# Move to repository folder
cd jupyterlab-kubeflow-kale

# Install dependencies
jlpm install

# Build the extension. This will generate a dist/ folder with build files
jlpm run build

# Add the extension to jupyterlab.
# Be sure to uninstall any other version first (e.g. npm kubeflow-kale-launcher package)
jupyter labextension install .

When developing, you can run jlpm in watch mode to incrementally compile the new changes:

jlpm run watch

And run JupyterLab in watch mode to load the new compiled version:

jupyter lab --no-browser --watch

Contribute

This repository uses husky to set up git hooks.

For husky to function properly, you need to have yarn installed and in your PATH. The reason that is required is that husky is installed via jlpm install and jlpm is a yarn wrapper. (Similarly, if it was installed using the npm package manager, then npm would have to be in PATH.)

Currently installed git hooks:

  • pre-commit: Run a prettier check on staged files, using pretty-quick

jupyterlab-kubeflow-kale's People

Contributors

stefanofioravanzo avatar elikatsis avatar dependabot[bot] avatar

Watchers

James Cloos avatar

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.