Files
anonymisation/install.sh
Domi31tls 8339069c83 Initial commit — Pseudonymisation de PDF v5
- GUI v5 : vue unique épurée (tkinter), 2 étapes visuelles
- Core ONNX : anonymisation regex + NER optionnel
- Extraction globale des noms depuis champs structurés
  (Patient, Rédigé par, MME/Madame, DR)
- Génération simultanée PDF Image + PDF Anonymisé (structure préservée)
- Build Windows via Nuitka (script batch + GitHub Actions CI)
- install.sh pour setup/run Linux

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:03:37 +01:00

93 lines
2.6 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
set -euo pipefail
# ===========================
# install.sh — GUI ONNX only
# Ubuntu 24.04, Python 3.12
# ===========================
APP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
VENV_DIR="${APP_DIR}/.venv"
PYTHON_BIN="${PYTHON_BIN:-python3}"
GUI_MODELS="Pseudonymisation_Gui_V5.py" # nom du fichier GUI (vue unique v5)
usage() {
cat <<'USAGE'
Usage:
./install.sh --setup # crée .venv + installe requirements (ONNX/Optimum/Transformers inclus)
./install.sh --run # lance la GUI ONNX
./install.sh --clean # supprime le venv .venv
USAGE
}
log() { echo -e "[install] $*"; }
die() { echo -e "[install:ERROR] $*" >&2; exit 1; }
exists() { command -v "$1" >/dev/null 2>&1; }
ensure_python() {
exists "${PYTHON_BIN}" || die "Python introuvable. Installez python3 (sudo apt-get install -y python3 python3-venv)."
log "Python: $(${PYTHON_BIN} -V)"
}
ensure_venv() {
if [[ ! -d "${VENV_DIR}" ]]; then
log "Création du virtualenv (.venv)…"
"${PYTHON_BIN}" -m venv "${VENV_DIR}" || die "Échec création venv."
fi
# shellcheck disable=SC1091
source "${VENV_DIR}/bin/activate"
python -m pip install --upgrade pip setuptools wheel >/dev/null
}
install_requirements() {
# shellcheck disable=SC1091
source "${VENV_DIR}/bin/activate"
[[ -f "${APP_DIR}/requirements.txt" ]] || die "requirements.txt introuvable à la racine du projet."
log "Installation des dépendances (requirements.txt)…"
pip install -r "${APP_DIR}/requirements.txt"
# docTR pour OCR de PDF scannés (optionnel, nécessite torch)
log "Installation de docTR pour l'OCR (optionnel)…"
pip install "python-doctr[torch]" || log "⚠ docTR non installé (optionnel OCR désactivé pour les PDF scannés)"
}
run_gui_models() {
# shellcheck disable=SC1091
source "${VENV_DIR}/bin/activate"
export PYTHONUTF8=1
[[ -f "${APP_DIR}/${GUI_MODELS}" ]] || die "Fichier ${GUI_MODELS} introuvable à la racine du projet."
# Vérif onnxruntime
python - <<'PY' || (echo "[install] ONNX Runtime manquant (vérifiez requirements)."; exit 1)
import onnxruntime as ort
print("onnxruntime OK:", ort.__version__)
PY
log "Lancement: ${GUI_MODELS}"
exec python "${APP_DIR}/${GUI_MODELS}"
}
clean_venv() {
[[ -d "${VENV_DIR}" ]] && rm -rf "${VENV_DIR}"
log "Venv supprimé."
}
MODE="${1:-}"
[[ -z "${MODE}" ]] && { usage; exit 0; }
ensure_python
case "${MODE}" in
--setup)
ensure_venv
install_requirements
log "✅ Installation terminée. Lancez: ./install.sh --run"
;;
--run)
ensure_venv
run_gui_models
;;
--clean)
clean_venv
;;
*)
usage; exit 1 ;;
esac