Skip to content

Jaykul/beakerx

 
 

Repository files navigation

BeakerX: Beaker extensions for Jupyter

Build Status Gitter chat

BeakerX is a collection of JVM kernels with widgets, plotting, tables, autotranslation, and other extensions to the Jupyter Notebook and Jupyter Lab. BeakerX is in alpha, with major features still under development, including incompatible changes without notice.

BeakerX is the successor to the Beaker Notebook (source code archive).

Dependencies

  • yarn
  • conda (any Python 3 environment should be fine, but our documentation assumes conda).

Build and run

conda create -y -n beakerx python=3.5 jupyter pandas
source activate beakerx
conda install -y -c conda-forge openjdk
./gradlew --no-daemon build
./gradlew --no-daemon kernelInstall
./gradlew --no-daemon :beakerx:install
(cd beakerx; pip install -e .)
python -m beakerx.install --enable --prefix="${CONDA_PREFIX}"
jupyter notebook

Build including C++ kernel

Make sure you have clang installed, then:

./gradlew --no-daemon build -DincludeCpp=true
./gradlew --no-daemon kernelInstall -DincludeCpp=true

Update after Java change

The kernels are installed to run out of the repo, so just a build should update the java code.

  • ./gradlew build

Update after JS change

  • cd beakerx/js; yarn webpack

Beaker Notebooks Converter

python -m beakerx.bkr2ipynb *.bkr

Groovy with Interactive Plotting and Table Saw:

screen shot 2016-12-20 at 11 35 17 am

Autotranslation from Python to JavaScript:

screen shot 2016-12-10 at 10 43 22 pm

Running with docker

In root project call

gradle clean

Go to /docker/base

docker build . -t beakerx-base

Move to /docker

docker build . -t beakerx

Now if you would like to start BeakerX execute

docker run -p 8888:8888 beakerx

Contributing

We welcome developers to extend and improve BeakerX in ways that can benefit everyone. In order for us to accept your code or pull request, we need for you to fill out and email back to us a scan of a signed copy of the Contributor License Agreement.

BeakerX uses Google Java style, and all Java code needs unit tests. For JavaScript we use Google JS style with require instead of goog.

Attribution

Beaker contains and depends on many projects including:

The kernel is originally derived from lappsgrid, but has been rewritten in Java and refactored and expanded.

The Java support uses Adrian Witas' org.abstractmeta.toolbox.

ANTLR Copyright (c) 2012 Terence Parr and Sam Harwell

d3 Copyright (c) 2010-2015, Michael Bostock

IPython Copyright (c) 2008-2014, IPython Development Team Copyright (c) 2001-2007, Fernando Perez Copyright (c) 2001, Janko Hauser Copyright (c) 2001, Nathaniel Gray

Julia Copyright (c) 2009-2015: Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors

Scala Copyright (c) 2002-2015 EPFL Copyright (c) 2011-2015 Typesafe, Inc.

H2 database engine This software contains unmodified binary redistributions for H2 database engine (http://www.h2database.com/), which is dual licensed and available under the MPL 2.0 (Mozilla Public License) or under the EPL 1.0 (Eclipse Public License). An original copy of the license agreement can be found at: http://www.h2database.com/html/license.html

About

Beaker Extensions for Jupyter Notebook

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 72.3%
  • JavaScript 21.9%
  • Python 2.1%
  • ANTLR 1.5%
  • Scala 1.0%
  • CSS 0.6%
  • Other 0.6%