Skip to content

Add arbitrary python commands to the jupyterlab command palette

License

Notifications You must be signed in to change notification settings

UlfR/jupyterlab_commands

 
 

Repository files navigation

jupyterlab_commands

Support for arbitrary python commands in the command palette.

Build Status GitHub issues codecov PyPI PyPI npm

About

This code lets you inject arbitrary commands into the JLab frontend. There are a variety of reasons why one might want to execute python commands outside of a notebook and a console:

  • a predefined NBConvert function that you dont want included in the converted result
  • interacting with VCS without including that interaction in the notebook
  • etc...

Example

jupyter_notebook_config.py

def convertMe(request, *args, **kwargs):
    import subprocess, tornado, os, os.path, json
    data = json.loads(tornado.escape.json_decode(request.body))
    path = os.path.join(os.getcwd(), data['path'])
    subprocess.run(["jupyter", "nbconvert", path, '--template', '/Users/theocean154/.jupyter/test.tpl', '--to', 'html'])
    return {'body': 'ok'}

c.JupyterLabCommands.commands = {'sample_command': convertMe}

command palette

terminal log

No Code

Install

pip install jupyterlab_commands
jupyter labextension install @frontierkz/jupyterlab_commands
jupyter serverextension enable --py jupyterlab_commands

Adding commands

install the server extension, and add the following to jupyter_notebook_config.py

c.JupyterLabCommands.commands = {'command display name': python_function, ...}

About

Add arbitrary python commands to the jupyterlab command palette

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 51.2%
  • TypeScript 35.8%
  • Makefile 8.4%
  • JavaScript 4.6%