jupyterlab_commands¶
Support for arbitrary python commands in the command palette.
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
import tornado
import os
import os.path
import json
data = json.loads(tornado.escape.json_decode(request.body))
path = os.path.join(os.getcwd(), data['path'])
print(path)
print(path)
print(path)
print(path)
print(path)
subprocess.run(["jupyter", "nbconvert", path, '--template', '/Users/theocean154/.jupyter/test.tpl', '--to', 'html'])
return {'body': 'testing'}
c.JupyterLabCommands.commands = {'sample_command': convertMe}
command palette¶
terminal log¶
Install¶
pip install jupyterlab_commands
jupyter labextension install 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, ...}