GithubHelp home page GithubHelp logo

cmbrown89 / jupyter-sos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from binder-examples/jupyter-sos

0.0 1.0 0.0 1.46 MB

License: MIT License

Jupyter Notebook 82.12% HTML 17.85% Dockerfile 0.03%

jupyter-sos's Introduction

SoS: Using multiple kernels in a notebook

Script of Scripts is a polyglot notebook and a workflow engine. Ignoring the workflow engine part, SoS Notebook provides a SoS Kernel that acts as a super kernel to all Jupyter kernels so that you can use multiple Jupyter kernels in a single Jupyter notebook. Moreover, it provides a number of magics, most importantly %get to exchange variables between live kernels of supported languages.

sos-notebook

Use SoS with binder

Although it is almost trivial to install SoS, setting up multiple kernels in a single binder environment is not very easy at this point. This repository contains multiple branches that demonstrates how to do it for the languages you are interested in. For more details, please refer to the SoS Documentation on how to set up different kernels for SoS.

The master branch

Binder

The master branch uses a Dockerfile to set up most kernels that SoS supports. The docker file is derived from mdabioinfo/sos-notebook, which is in turn derived from Jupyter Notebook Data Science Stack and contains the following kernels:

  • Python 2 kernel for Python 2.7
  • Python 3 kernel for Python 3.6
  • Bash kernel for using bash commands
  • iJavaScript for node.js
  • iJulia for Julia
  • ir kernel for R
  • markdown kernel that allows the expansion of SoS (Python) expressions in markdown contents.
  • Octave Kernel for octave
  • SPARQL kernel for Sparql, included to demonstrate how SoS works with any Jupyter kernel (not in a language that SoS understands)

SoS also supports other languages such as Ruby, MATLAB, and SAS but they are not included since this image is already very big.

This branch includes mostly examples for a talk on SoS during JupyterCon2018. You can watch the talk on Youtube using this link if you are intested in learning SoS.

The Python-Julia branch

Binder

This branch is much more lightweight as it contains only Python 3, Julia, and SoS kernels. It specifies the environment using

  • environment.yml: an anaconda python environment, also installs SoS and SoS Notebook
  • REQURE: a Julia environment with recommended packages
  • postBuild: Post build command to install the SoS Kernel.

This branch contains a notebook python-and-julia.ipynb which demonstrates how to use Python3 and Julia in a single Jupyter notebook.

The Python-R branch

Binder

This branch contains only Python 3, R, and SoS kernels. It specifies the environment using

  • environment.yml: an anaconda python environment, also installs SoS and SoS Notebook
  • runtime.txt: specify version of R as MRAN snapshots
  • install.R: additional packages to install
  • postBuild: Post build command to install the SoS Kernel.

This branch contains a notebook python-and-r.ipynb which demonstrates how to use Python3 and R in a single Jupyter notebook.

jupyter-sos's People

Contributors

choldgraf avatar bopeng 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.