| #!/usr/bin/env bash |
| |
| 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" |
| |
| source "$VENV_DIR/bin/activate" |
| uv pip install -r requirements-quickumls.txt |
| else |
| python3 -m venv "$VENV_DIR" |
| |
| 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\"" |
|
|