#!/usr/bin/env bash # Create QuickUMLS venv for query entity export on a new machine. set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$ROOT" VENV_DIR="$ROOT/.venv-quickumls" VENV_PY="$VENV_DIR/bin/python3" if [[ -d "$VENV_DIR" ]]; then echo "Removing existing $VENV_DIR (venvs are machine-specific; do not copy them)." rm -rf "$VENV_DIR" fi if command -v uv >/dev/null 2>&1; then uv venv --python 3.11 "$VENV_DIR" # shellcheck disable=SC1091 source "$VENV_DIR/bin/activate" uv pip install -r requirements-quickumls.txt else python3 -m venv "$VENV_DIR" # shellcheck disable=SC1091 source "$VENV_DIR/bin/activate" python3 -m pip install --upgrade pip python3 -m pip install -r requirements-quickumls.txt fi echo "" echo "Verifying QuickUMLS import..." if ! "$VENV_PY" -c "from quickumls import QuickUMLS; import spacy; spacy.load('en_core_web_sm')"; then echo "ERROR: QuickUMLS or spaCy model failed to load in $VENV_PY" exit 1 fi echo "" echo "QuickUMLS venv ready: $VENV_DIR" echo "" echo "Next steps:" echo " export ICD_QUICKUMLS_DATA_DIR=\"/path/to/quickumls_data\"" echo " export ICD_QUICKUMLS_VENV_PYTHON=\"$VENV_PY\"" echo " ./run_export.sh --query \"Type II Diabetes Mellitus Uncontrolled\""