Reputation: 325
I am looking for suggestions, I would like to share my Jupyter Notebook/Lab analysis with not technical people inside my organisation, ideally I would like to share only the output and not the code, for example through Voila. I am also planning to update the analysis daily, therefore I would like to avoid updating manually the code. I read few articles about JupyterHub and Dockerand they seem the best direction, do you have any other ideas?
Upvotes: 4
Views: 1082
Reputation: 5849
The Mercury is an open-source tool that converts Jupyter Notebook into shareable web applications. You can add widgets to the notebook with YAML header. Widgets are connected with variables in the code, so no need to change the notebook itself. There is an show-code
parameter in the YAML that you can use to hide the code. To run notebook daily you can set schedule
parameter with crontab-like time interval definition for automatic execution.
The YAML header:
---
title: My notebook
description: Notebook with plot
show-code: False
params:
name:
input: text
label: What is your name?
value: Piotr
points:
input: slider
label: How many points?
value: 200
min: 10
max: 250
---
You can read more in the article how to share notebook with non-programmers.
The framework is created on top of the Django. It can be easily deployed on any machine with Python. The deployment to Heroku can be done with two commands, for other providers there is a docker-compose
available. You can check details in the docs.
Upvotes: 0
Reputation: 933
You should take a look at Curvenote it's aimed at exactly this problem and integrates directly with Jupyter.
You can use it's chrome extension to save versions of your notebooks, with outputs and then view nbviewer style renderings these in the Curvenote web app. You then get a collaborative google doc style editor where you can include only the outputs, with supporting text/analysis if you need it, and share that.
The automation features for daily runs you'd be able to setup around Jupyter and Docker as you mention (Note not JupyterHub for your use case) and use the python library / cli to push updates to Curvenote.
Upvotes: 1
Reputation: 4324
Disclaimer: I'm a bit biased because I work at Deepnote.
We're building a tool to help you do that - check out https://deepnote.com
You can run the notebook there (or just upload it), and just share the link with the less technical people the same way you would do with Google Docs. They'll be able to immediately see any changes you make. You can also schedule it to re-run daily.
There's a way to hide the code (CMD/CTRL + P, then Hide code), and we're planning some more ways to present data soon.
Let me offer some alternatives as well:
Upvotes: 0