JupyterLab Services
Javascript client for the Jupyter services REST APIs
Note: All functions and classes using the REST API allow a serverSettings
parameter to configure requests.
Requests are made using the fetch
API, which is available in modern browsers
or via npm install fetch
for node users. The whatwg-fetch
npm package
can be used to polyfill browsers that do not support the fetch
API.
Package Install
Prerequisites
npm install --save sophon-servicesconda install notebook # notebook 4.3+ required
Source Build
Prerequisites
git clone https://github.com/jupyterlab/jupyterlab.gitcd packages/servicesnpm installnpm run buildconda install notebook # notebook 4.3+ required
Rebuild
npm run cleannpm run build
Run Tests
Follow the source build instructions first.
npm test
Build Docs
Follow the source build instructions first.
npm run docs
Navigate to docs/index.html
.
Supported Runtimes
The runtime versions which are currently known to work are listed below. Earlier versions may also work, but come with no guarantees.
- Node 0.12.7+
- IE 11+
- Firefox 32+
- Chrome 38+
Note: "requirejs" may need be included in a global context for Comm
targets
using the a target_module
(in the classic Notebook).
This can be as a <script>
tag in the browser or by using the requirejs
package in node (npm install requirejs
and setting
global.requirejs = require('requirejs');
).
Starting the Notebook Server
Follow the package install instructions first.
The library requires a running Jupyter Notebook server, launched as:
jupyter notebook
Bundling for the Browser
Follow the package install instructions first.
See examples/browser
for an example of using Webpack to bundle the library.
Note: Some browsers (such as IE11), require a polyfill for Promises.
The example demonstrates the use of the polyfill. See also notes about
the fetch
API polyfill above.
Usage from Node.js
Follow the package install instructions first.
See examples/node
for an example of using an ES5 node script.
Usage Examples
Note: This module is fully compatible with Node/Babel/ES6/ES5. The examples below are written in TypeScript using ES6 syntax. Simply omit the type declarations when using a language other than TypeScript. A translator such as Babel can be used to convert from ES6 -> ES5.
Kernel
; // Get a list of available kernels and connect to one.Kernel.listRunning.then;}); // Get info about the available kernels and start a new one.Kernel.getSpecs.then;
Session
; // Get a list of available sessions and connect to one.Session.listRunning.then; // Start a new session.; Session.startNewoptions.then;
Comm
; // Create a comm from the server side.//// Get info about the available kernels and connect to one.Kernel.getSpecs .then .then; // Create a comm from the client side.Kernel.getSpecs .then .then;
Contents
; ; // Create a new python file.contents.newUntitled.then; // Get the contents of a directory.contents.get'/foo/bar'.then; // Rename a file.contents.rename'/foo/bar.txt', '/foo/baz.txt'; // Save a file.contents.save'/foo/test.ipynb'; // Delete a file.contents.delete'/foo/bar.txt'; // Copy a file.contents.copy'/foo/bar.txt', '/baz'.then; // Create a checkpoint.contents.createCheckpoint'/foo/bar.ipynb'.then; // List checkpoints for a file.contents.listCheckpoints'/foo/bar.txt'.then;
Configuration
; // The base url of the Jupyter server. ConfigSection.create.then;
Terminals
; // Create a named terminal session and send some data.TerminalSession.startNew.then;