2025-04-25 09:21:18 -07:00
|
|
|
#!/usr/bin/env bash
|
2025-05-02 00:12:05 -07:00
|
|
|
set -eux
|
|
|
|
|
|
2025-04-29 13:28:25 -07:00
|
|
|
NOTEBOOK_DIR="notebooks"
|
2025-04-29 15:01:23 -07:00
|
|
|
mkdir -p "${NOTEBOOK_DIR}"
|
2025-04-29 11:40:06 -07:00
|
|
|
|
2025-05-02 00:12:05 -07:00
|
|
|
# sync notebooks from S3
|
2025-04-29 15:01:23 -07:00
|
|
|
aws --endpoint-url "$AWS_ENDPOINT_URL_S3" --region "$AWS_REGION" \
|
2025-05-02 00:12:05 -07:00
|
|
|
s3 sync "s3://$COMMON_BUCKET/$INSTANCE_PREFIX/notebooks/" "${NOTEBOOK_DIR}/"
|
|
|
|
|
|
|
|
|
|
# pick latest notebook
|
|
|
|
|
latest_ipynb=$(ls -t "${NOTEBOOK_DIR}"/*.ipynb | head -n1)
|
|
|
|
|
cp "$latest_ipynb" "${NOTEBOOK_DIR}/notebook.ipynb"
|
|
|
|
|
|
|
|
|
|
# convert notebook to script
|
|
|
|
|
jupyter nbconvert --to script "${NOTEBOOK_DIR}/notebook.ipynb" \
|
|
|
|
|
--output notebook --output-dir "${NOTEBOOK_DIR}"
|
|
|
|
|
|
|
|
|
|
# remove IPython magics only
|
|
|
|
|
sed -i '/get_ipython()/d' "${NOTEBOOK_DIR}/notebook.py"
|
|
|
|
|
sed -i '/^!/d' "${NOTEBOOK_DIR}/notebook.py"
|
|
|
|
|
sed -i '/^%/d' "${NOTEBOOK_DIR}/notebook.py"
|
2025-04-25 09:21:18 -07:00
|
|
|
|
2025-05-02 00:12:05 -07:00
|
|
|
# remove standalone Flask run calls
|
|
|
|
|
sed -i '/app\.run(/d' "${NOTEBOOK_DIR}/notebook.py"
|
2025-04-25 09:21:18 -07:00
|
|
|
|
2025-05-02 00:12:05 -07:00
|
|
|
# export path and launch server
|
|
|
|
|
export NOTEBOOK_PATH="$(pwd)/${NOTEBOOK_DIR}/notebook.py"
|
2025-04-30 15:09:22 -07:00
|
|
|
exec python snakeapi_server.py
|