runthedocs-repl

0.0.1 • Public • Published

Installation

$ yarn add runthedocs-repl

or

$ npm install --save runthedocs-repl

Usage

// easiest to use ES6 imports from the CDN
import { Repl } from 'https://cdn.skypack.dev/runthedocs-repl';

// Repl() constuctor is synchronous
const repl = new Repl();

// each call to run() returns a promise that resolves
// to the Repl() object. The value of the executed
// expression is stored as `.value` on the Repl()
repl
  .init()
  .then((repl) => repl.load(['numpy']))
  .then((repl) => repl.run('import numpy as np'))
  .then((repl) => repl.run('a = [[1, 0], [0, 1]]'))
  .then((repl) => repl.run('b = [[4, 1], [2, 2]]'))
  .then((repl) => repl.run('np.dot(a, b)'))
  .then((repl) => console.log(repl.value)); //=> Array[ Int32Array [ 4, 1 ], Int32Array [ 2, 2 ] ]

If you want to run a chunk of code in a single call you can use Javascript template literals.

// NOTE: importing a library twice (numpy here) can cause an error
// so we leave the import out of the code chunk.
const code = `
a = [[1, 0], [0, 1]]
b = [[4, 1], [2, 2]]
np.dot(a, b)
`.trim();

// you can use await syntax as long as you are in an async function
const dotProduct = (async () => {
  const repl = await new Repl().init();
  await repl.load(['numpy']);
  await repl.run('import numpy as np');

  const result = await repl.run(code);
  console.log(result.value); //=> Array[ Int32Array [ 4, 1 ], Int32Array [ 2, 2 ] ]
})();

Contributing/Requests

Open an issue or post a message in the chatroom. If you would like to contribute to the project (code, documentation, tutorials, etc.) see the contributing guide for how to get started 🙌

License

Run the Docs uses the GNU Affero General Public License Version 3.0.

Package Sidebar

Install

npm i runthedocs-repl

Weekly Downloads

1

Version

0.0.1

License

AGPL-3.0-or-later

Unpacked Size

53.3 kB

Total Files

9

Last publish

Collaborators

  • psychothan