3

I am using Jupyter for my company's Analytics. I want to make live page that displays some pretty charts. I will be displaying this page on a big monitor in the lobby, and I want it to refresh automatically.

Is there some way to trigger "run all cells" by refreshing the browser page? Alternately, is there some way to automatically run cells on a schedule?

I was hoping to find some %magic but I didn't. Anyone know?

Thanks P

opus111
  • 2,744
  • 4
  • 25
  • 41
  • This really isn't what Jupyter is designed for. Why not just have a Python script running on a schedule that saves static images and an html document that refreshes periodically? – A.R.Ferguson Feb 03 '16 at 20:18
  • I could do that, but I already have JupyterHub, and a nice document, nicely formatted etc. I just want to display it and share a URL – opus111 Feb 03 '16 at 21:43
  • Loop it indefinitely I guess, you can clear a cell programmatically http://stackoverflow.com/questions/24816237/ipython-notebook-clear-cell-output-in-code – A.R.Ferguson Feb 03 '16 at 23:35

2 Answers2

2

Here is what I did:

As suggested by A.R. Jupyter does not have a "Display Mode", so I set up a CRON job to run hourly

jupyter nbconvert --to slides --execute mynotebook.ipynb

and copied the generated files to a Tomcat server

Details on nbconvert found here

https://nbconvert.readthedocs.org/en/latest/usage.html

opus111
  • 2,744
  • 4
  • 25
  • 41
1

It is probably best to use voila, a project designed exactly for this purpose. This will make your analytics look professional.

If all you care to do is just run the notebook at intervals, or with different parameters and do not care about the visual aspect, then probably papermill is the way to go instead.

ntg
  • 12,950
  • 7
  • 74
  • 95