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.4.0 (2020-09-22)

  • .dockerimage file let's you add the name of the docker image, it should exist either in the root directory or the reproduce/ directory.

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.4.0.tar.gz (98.0 kB view details)

Uploaded Source

Built Distribution

nbreproduce-0.4.0-py2.py3-none-any.whl (8.5 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: nbreproduce-0.4.0.tar.gz
  • Upload date:
  • Size: 98.0 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.4.0.tar.gz
Algorithm Hash digest
SHA256 76d6667de410a5b3ad74006a651f91d6adb1818cf384db79a2e941d21767d1bd
MD5 d0765cc9b525e3acc5c289e30b7b4815
BLAKE2b-256 3d33550f117c35f69baffec41ac117556494b4fd5179bdc34e027ef3cd598d82

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nbreproduce-0.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 8.5 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.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d4f9b1d03e39422a8d3669d95f0236b7a665dc4f6e2c57e1f19423290738d45b
MD5 e8bc8553b4fc06a378c53c4d963aa4bc
BLAKE2b-256 93bbd04acd2838eb06ee314c2adb78a23a6de7ac3f51c547a95600b447c92d8f

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