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.1 (2020-10-18)

  • auto fix EOL for bash scripts in windows.

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

Uploaded Source

Built Distribution

nbreproduce-0.4.1-py2.py3-none-any.whl (8.7 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: nbreproduce-0.4.1.tar.gz
  • Upload date:
  • Size: 98.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.6.0 requests-toolbelt/0.8.0 tqdm/4.43.0 CPython/3.7.4

File hashes

Hashes for nbreproduce-0.4.1.tar.gz
Algorithm Hash digest
SHA256 f7a7cd866a0c9f06a18053edd98ab9325a20ac1daa94577b248600b0ad388860
MD5 32edf2e28d0fee5c247acc9bf6286613
BLAKE2b-256 0222b784344893dbaede64dc74374d49a47e7e6c81deeb83f0bdcf40d39237df

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: nbreproduce-0.4.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.6.0 requests-toolbelt/0.8.0 tqdm/4.43.0 CPython/3.7.4

File hashes

Hashes for nbreproduce-0.4.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 22094f69ff19ef0ab4bcf0dc370823a27148caacd3849f10265600e9ec4133e0
MD5 89a9b9530382b7e7321451b368d0c598
BLAKE2b-256 bba89edc043d971aca3d648d1bdef7e8940b4d72fe78b0f0ef1f7f21277378ca

See more details on using hashes here.

Provenance

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