Skip to main content

Reproduce Jupyter Notebooks inside Docker Containers.

Project description

nbreproduce

PyPI version

Reproduce Jupyter Notebooks and projects inside Docker Containers (based on Jupyter Docker-Stacks images) using the nbreproduce CLI.

Installation:

$ pip install nbreproduce

Features:

  • Reproduce a Jupyter Notebook (URL or local file) inside a Docker container for consistent builds across all the devices capable of running docker and Python.

  • To test the hello_world.ipynb example in this repo.

$ nbreproduce --url https://github.com/econ-ark/nbreproduce/blob/master/tests/hello_world.ipynb
  • The nbreproduce will create a new Jupyter notebook ending with filename-reproduce.ipynb in the same directory which is a copy of the original notebook but executed inside the docker container environment.

  • nbreproduce requires a special metadata tag (docker_image) inside in the Jupyter notebook to find the link to docker image on DockerHub. On the first run of nbreproduce with a normal Jupyter notebook it will prompt you to add a docker image tag, these docker images are built on top of Jupyter Docker-Stacks. The hello_world.ipynb example can run with the scipy-notebook standard image. Using the --docker flag you can point it towards the right docker image. (Currently only DockerHub imgags are supported)

$ nbreproduce --docker jupyter/scipy-notebook:latest hello_world.ipynb
  • For a Jupyter notebook which already has the metadata tag (docker_image), we can directly execute the notebook, kind of like papermill but inside a standardised docker environemnt :)
$ nbreproduce hello_world.ipynb
  • Reproduce entire folders and projects inside a Docker environment (it works by mounting the current directory to the docker container and running a bash file which has all the required steps to reproduce all the content like figures, builiding latex documents, slides, etc).
$ nbreproduce --docker econark/econ-ark-notebook do_all.sh

Executing do_all.sh using the econark/econ-ark-notebook environment inside a docker container.
Executing do_all.sh in the current directory /Users/ms/dev/REMARK/REMARKs/CGMPortfolio
....
....
....
  • The project is in pre alpha developement mode, so things will break. Don't use this in production. The documentation website doesn't exist yet, use nbreproduce -h to get a quick desciption of various flags. Feel free to open up any issue for suggestions or submit a PR to fix bugs/implement new features.

Credits

This package was created with Cookiecutter_ and the audreyr/cookiecutter-pypackage_ project template.

Cookiecutter

audreyr/cookiecutter-pypackage

History

0.3.0 (2020-09-16)

  • Add --inplace suppport for individual notebooks.

0.2.0 (2020-08-12)

  • Add --live interactive mode.
  • Add ability to execute bash scripts.
  • Docker SDK.

0.1.0 (2020-06-10)

  • Pre-alpha release to get the ball rolling.
  • First release on PyPI.

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

nbreproduce-0.3.0.tar.gz (97.8 kB view details)

Uploaded Source

Built Distribution

nbreproduce-0.3.0-py2.py3-none-any.whl (8.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file nbreproduce-0.3.0.tar.gz.

File metadata

  • Download URL: nbreproduce-0.3.0.tar.gz
  • Upload date:
  • Size: 97.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.4

File hashes

Hashes for nbreproduce-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6382254e681ac86766fd76288d163841dcfef660f9b28d7b9bc75ebcc8e87db1
MD5 cb4eacf75b5eeee8ef0005df130aee77
BLAKE2b-256 2f753230ded14a689905bca47268d67817834c6cbce0c38c681823c4bc6d5b3c

See more details on using hashes here.

File details

Details for the file nbreproduce-0.3.0-py2.py3-none-any.whl.

File metadata

  • Download URL: nbreproduce-0.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.4

File hashes

Hashes for nbreproduce-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1bcbb14f67aefec1a5134fc80f12507f0c883411c72845eb0e7458dee880e406
MD5 3972803b2a7af2367e0dc7cc88b3c943
BLAKE2b-256 c835a0af5b0644f6dac38321c505641a8ec9579b823854dd943101a0acce117f

See more details on using hashes here.

Supported by

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