/jupita

🌞 Jupyter executor for executable documents

Primary LanguageJavaScriptApache License 2.0Apache-2.0

🌞 Jupita

Jupyter executor for executable documents

Build Status Code coverage NPM Docs

👋 Introduction

Stencila Executa defines an API executing nodes within an executable document that is based on JSON-RPC and able to used across multiple transports (e.g. stdio, http, ws). This package acts a bridge between that API and the Jupyter API, which uses it's own Jupyter Messaging Protocol (JMP) and ZeroMQ as a transport. It allows users of Stencila's interfaces to delegate execution to Jupyter kernels, instead of, or in addition to, Stencila's own executors.

📦 Install

npm install @stencila/jupita --global --python=python2.7

This package relies on dependencies with native add-ons (xeromq). So you will need to have node-gyp installed (https://github.com/nodejs/node-gyp#readme). The --python flag is necessary because, on OSX and Windows, node-gyp is only compatible with Python 2.7.

🚀 Use

Register Jupita so that it can be discovered by other executors on your machine,

jupita register

📖 Docs

API documentation is available at https://stencila.github.io/jupita.

💬 Discuss

We love feedback. Create a new issue, add to existing issues or chat with members of the community.

🛠️ Develop

Most development tasks can be run directly from npm or via make wrapper recipes.

Task npm make
Install and setup dependencies npm install make setup
Check code for lint npm run lint make lint
Run tests npm test make test
Run tests with coverage npm run cover make cover
Build documentation npm run docs make docs

Note that the some of the tests require python3 and the Python packages matplotlib and Pillow to be installed.

🙏 Acknowledgments

Many thanks to the nteract community for kernelspecs and spawnteract, and to Nicolas Riesco for jmp, all of which made this implementation far easier!