From 8b4b270806e0552f2f58bad49967e0193cf7244c Mon Sep 17 00:00:00 2001 From: sam-paech <152407511+sam-paech@users.noreply.github.com> Date: Fri, 17 Oct 2025 03:49:09 +1100 Subject: [PATCH] ensure submodule dirs are present and non-empty --- main.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index 6071dde..c3631a3 100644 --- a/main.py +++ b/main.py @@ -21,20 +21,32 @@ sys.path.insert(0, str(ROOT_DIR)) # so "utils" is on sys.path # ── Hard fail early if required submodules are missing ───────────────────────── def _ensure_required_submodules(): + def _dir_nonempty(p: Path) -> bool: + try: + return p.is_dir() and any(p.iterdir()) + except Exception: + return False + required = ("slop-forensics", "antislop-vllm") - missing = [name for name in required if not (ROOT_DIR / name).is_dir()] - if missing: + missing_or_empty = [] + for name in required: + path = ROOT_DIR / name + if not _dir_nonempty(path): + missing_or_empty.append(name) + + if missing_or_empty: msg = ( - "Required git submodules are missing: " - + ", ".join(missing) + "Required git submodules are missing or empty: " + + ", ".join(missing_or_empty) + "\n\nClone the repo with submodules:\n" " git clone --recurse-submodules \n\n" - "If you already cloned without submodules, run:\n" + "If you already cloned without submodules, fix an existing clone:\n" " git submodule update --init --recursive\n" ) print("WARNING: " + msg, file=sys.stderr) sys.exit(2) + _ensure_required_submodules() # ── guarantee NLTK data is present *before* any other project import ───────────