Caiotru
Caiotru

Reputation: 325

Sharing Jupyter Notebook/Lab output with not technical people

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

Answers (3)

pplonski
pplonski

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 example notebook with YAML header

Jupyter Notebook with YAML header for Mercury framework

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
---

The web application from notebook

web app from notebook

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

stevejpurves
stevejpurves

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

Robert Lacok
Robert Lacok

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

Related Questions