Skip to main content

Tool for parametrizing, executing, and displaying Jupyter Notebooks as reports.

Project description

Notebooker

Productionise and schedule your Jupyter Notebooks, just as interactively as you wrote them. Notebooker is a webapp which can execute and parametrise Jupyter Notebooks as soon as they have been committed to git. The results are stored in MongoDB and searchable via the web interface, essentially turning your Jupyter Notebook into a production-style web-based report in a few clicks.

CircleCI Documentation Status

Run a Jupyter notebook as a report with parameters

Screenshot of "Run A Report" dialog

Execute Jupyter notebooks either on the webservice or command line

Screenshot of Executing a notebook

View the output of notebooks as static HTML

Screenshot of some notebook results

All results are accessible from the home page

Screenshot of the Notebooker homepage

Drill down into each template's results

Screenshot of result listings

Getting started

See the documentation at https://notebooker.readthedocs.io/ for installation instructions.

Notebooker has been tested on Linux, Windows 10, and OSX; the webapp has been tested on Google Chrome.

If you want to explore an example right away, you can use docker-compose:

cd docker
docker-compose up

That will expose Notebooker at http://localhost:8080/ with the example templates.

Contributors

Notebooker has been actively maintained at Man Group since late 2018, with the original concept built by Jon Bannister. It would not have been possible without contributions from:

And these fantastic projects:

0.8.0 (2026-05-22)

  • feature: standalone scheduler process for improved reliability in Kubernetes deployments
  • feature: new --scheduler-management-only flag for webapp to manage jobs without executing them
  • feature: add /healthz liveness probe endpoint to the webapp
  • bugfix: fix template dropdown showing folder names instead of templates
  • bugfix: Encode cloned report parameters in the results page URL so values containing # are preserved. (#210)

0.7.3 (2026-05-20)

  • breaking: namespace packages (notebooker and notebooker.serializers) now use pkgutil.extend_path instead of pkg_resources.declare_namespace. Plugins contributing to the notebooker.serializers namespace must update their own __init__.py files to use pkgutil.extend_path and remove namespace_packages from their setup.py.
  • packaging: remove dependency on pkg_resources / setuptools at import time, fixing ModuleNotFoundError on Python 3.11 in fresh virtualenvs.

0.7.2 (2025-01-17)

  • feature: added a cleanup script to delete reports older than a given number of days, optionally filterable by report name.

0.7.1 (2025-01-02)

  • packaging: refresh package description and metadata for pypi

0.7.0 (2025-01-02)

  • compat: compatibility with python 3.11 and later
  • deps: do not pin werkzeug/flask 2.
  • docs: do not pin old versions of docutils/sphinx, optional extra dependencies to build docs
  • bugfix: fix an issue where deleting a report was not deleting the associated GridFS objects as expected.

0.6.3 (2024-07-11)

  • Feature: Flag to preserve original working directory when running notebooks to make local imports and relative paths work.

0.6.2 (2024-05-02)

  • Bugfix: Folders with spaces in their names are now correctly handled in the webapp.
  • Chore: Fix readthedocs build and broken CircleCI link.
  • Chore: Applying & enforcing Black and Prettier to Python and JS code, respectively. Setting Black version to 22.8.0 for CircleCI.
  • Bugfix: Preserve the "mailfrom" parameter on notebook rerun.

0.6.1 (2024-02-26)

  • Feature: GridFS document storage in Mongo-backed instances is now sharded if the mongo server supports it.
  • Bugfix: None will stop appearing at the top of reports with nbconvert>7.0.0

0.6.0 (2023-09-01)

  • Feature: Reports are now grouped by their containing folder on the main UI.
  • Feature: Allow configuring error email addresses and email subject via UI.
  • Bugfix: . and .. should now be allowed to be used when specifying the templates directory.
  • Bugfix: corrected cron schedule incorrectly shifting back one day upon save.

0.5.1 (2023-02-22)

  • Feature: A new --readonly-mode is available for the webapp. This allows users to have an instance of Notebooker which only displays the results of externally-run or scheduler-run reports. See the docs for more details.
  • Bugfix: Scheduler-executed reports will now correctly record stdout.
  • Bugfix: Pull from current upstream instead of hard-coded origin/master in git backend of webapp.
  • Bugfix: Ensure that the hide_code option is consistent when a rerun is executed via the webapp.

0.5.0 (2023-01-19)

  • Feature: Added support for Reveal.js notebook outputs
  • Bugfix: Small bugfix for synchronous report execution
  • Improvement: Delete functionality in mongo now also deletes files from GridFS

0.4.5 (2022-09-29)

  • Bugfix: The frontend should now show the correct "time since" for non-UTC timezones
  • Bugfix: The scheduler now follows UNIX conventions for day-of-week specifications. (#72)
  • Bugfix: Use Collection.count_documents() for mongo compat
  • Improvement: The raw_results will now also display in full screen
  • Improvement: Improve setup.cfg for better wheel building
  • Improvement: Pin Werkzeug<2.2 since it causes RuntimeErrors
  • Improvement: Fix docs regarding setup + yarn bundling

0.4.4 (2022-07-18)

  • Improvement: The results screen has been widened to show as much content as possible (#79).
  • Bugfix: The delete button will now work on non-first pages for the scheduler and result listings (#90).
  • Feature: "View fullscreen" button added to all result pages

0.4.3 (2022-06-24)

  • Feature: The results page now includes a "View Stdout" button to view and copy stdout from the notebook run
  • Improvement: Prometheus improvement to allow increase() metric to be used in alerting

0.4.2 (2022-04-27)

  • Improvement: Prometheus metrics now record number of successes/failures which have been captured by the webapp.
  • Improvement: Unpinned nbconvert and added ipython_genutils dependency

0.4.1 (2022-03-09)

  • Improvement: The email "from" address is now fully configurable.
  • Bugfix: The default "from" email address domain is no longer non-existent.
  • Improvement: --running-timeout parameter allows customization of max allowed notebook runtime

0.4.0 (2021-12-17)

  • Improvement: The index page has been overhauled to be a lot more user-friendly, divided up by notebook template name.

0.3.2 (2021-11-10)

  • Feature: .ipynb files are now natively supported and can be used as Notebook Templates (#57)

0.3.1 (2021-10-29)

  • Improvement: index page should be a lot quicker due to storage improvements.
  • Bugfix: hide_code and generate_pdf options now work as intended with the scheduler.
  • Bugfix: Large notebooks were causing serialisation errors; now safely stored in gridfs.
  • Incompatibility: Reports run with this version onwards will not be readable by older versions of Notebooker.

0.3.0 (2021-10-05)

  • Major feature: scheduling natively within Notebooker
  • Bugfix: Newer versions of uuid now work properly with Notebooker
  • Improvement: See the version number in the Notebooker GUI and with a /core/version GET call.

0.2.1 (2021-02-11)

  • Bugfix: notebooker_execute entrypoint should now work as intended
  • Bugfix: Sanity and template regression tests should now work as intended
  • Improvement: Specifying a git repo should be a little simpler

0.2.0 (2020-12-17)

  • Code output can now be hidden from PDF and email output! Either check the box in the "Run Report" dialog or, using the cli, use the new --hide-code option.
  • Performance improvement for queries

0.1.0 (2020-11-30)

Support for database plugins and tidying up configuration to be consistent across the board.

Breaking changes

  • 3 primary entrypoints have been consolidated under one - notebooker-cli, e.g. notebooker-cli start-webapp and notebooker-cli execute-notebook. Run notebooker-cli --help for more info.
  • In config, PY_TEMPLATE_DIR has been renamed to PY_TEMPLATE_BASE_DIR
  • In config, GIT_REPO_TEMPLATE_DIR has been renamed to PY_TEMPLATE_SUBDIR

0.0.2 (2020-10-25)

Bugfixes & cleanup Docker support (#14)

0.0.1 (2020-09-04)

Initial release of Notebooker

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notebooker-0.8.0.tar.gz (42.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notebooker-0.8.0-py3-none-any.whl (56.3 MB view details)

Uploaded Python 3

File details

Details for the file notebooker-0.8.0.tar.gz.

File metadata

  • Download URL: notebooker-0.8.0.tar.gz
  • Upload date:
  • Size: 42.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for notebooker-0.8.0.tar.gz
Algorithm Hash digest
SHA256 16d0bed8ff2280d6e1620f3b427dc33bb1ad035af0460d5867f7d114da8960a0
MD5 dd6cf27f72bd79433e93d1844d78770f
BLAKE2b-256 2d62bc24c2a76a8e3d2b88ce705702f3069b0ee54271ab17454305028a2fdbaa

See more details on using hashes here.

File details

Details for the file notebooker-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: notebooker-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 56.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for notebooker-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44c43fd48777acf26adf7850062dd010444a31ca9c3bee92550cc039ec485151
MD5 1dcf8635553a633e216b55562ab5cd4a
BLAKE2b-256 8dd40fe92fd8d4251e256d759b85bb26208b00a90a38cb2476e3c6a306076eb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page