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.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.7.3.tar.gz (43.0 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.7.3-py3-none-any.whl (55.9 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: notebooker-0.7.3.tar.gz
  • Upload date:
  • Size: 43.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for notebooker-0.7.3.tar.gz
Algorithm Hash digest
SHA256 3cf4874498ef527619366e210fb26045f5494fd7d16f18f9e88d1f7f4d8c2b46
MD5 188b6b31f4f87aba5578ac85e8d592df
BLAKE2b-256 ff4c44659fdf20841bb040aa7bdd99e2c16e9b551379827682b4868530f05926

See more details on using hashes here.

File details

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

File metadata

  • Download URL: notebooker-0.7.3-py3-none-any.whl
  • Upload date:
  • Size: 55.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for notebooker-0.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 85fd8226593b59d61f73489f09101e4c2298ff4ff96b12ae67237495e07d22c2
MD5 8e599324a58d225de409f766cd8e6d34
BLAKE2b-256 06e697aeaa81f15f46f19db7713026d1ffc1278a70859e167097b9a64a7a637a

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