#!/bin/bash
# Copyright 2021 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

# Run a Python (Colab/Jupyter) notebook in an isolated virtual environment.
# Fails if the notebook has errors.
#
# Usage: run_python_notebook.sh /path/to/notebook.ipynb
#
# This is intended for use on continuous integration servers within a Docker
# container and as a reference for users, but it can also be run locally.

set -e
set -x

# Run under a virtual environment to isolate Python packages.
#
# This is informed by Docker workarounds and we're walking a thin line here.
# --system-site-packages: leverage system packages for common notebook
#     requirements (tensorflow, numpy, and other large packages)
# --clear: delete existing venv contents (package installs within notebooks)
#
# See also:
#   * https://stackoverflow.com/a/63805343
#   * https://askubuntu.com/a/897004
python3 -m venv .notebook.venv --system-site-packages --clear
source .notebook.venv/bin/activate 2> /dev/null
trap "deactivate 2> /dev/null" EXIT

# Update pip within the venv (you'd think this wouldn't be needed, but it is).
python3 -m pip install --quiet --upgrade pip

# Install general Jupyter notebook requirements, ignoring any system versions
# This ensures that the `jupyter` command runs within the venv.
#
# See also:
#   * https://stackoverflow.com/q/42449814
#   * https://stackoverflow.com/a/19459977
python3 -m pip install --ignore-installed --quiet \
  jupyter_core nbconvert ipykernel

# Install common notebook requirements, reusing system versions if possible.
python3 -m pip install --quiet \
  numpy \
  matplotlib \
  tensorflow \
  tensorflow_hub \
  bottleneck

# Tone down TensorFlow's logging by default.
export TF_CPP_MIN_LOG_LEVEL=${TF_CPP_MIN_LOG_LEVEL:-2}

# Run the notebook, discarding output (still fails if an exception is thrown).
jupyter nbconvert --to notebook --execute $1 --stdout > /dev/null
