From 4943f5be62fc68b8129dc71c1a5ee6181edb83cd Mon Sep 17 00:00:00 2001 From: max Date: Thu, 24 Sep 2026 17:18:05 +0200 Subject: [PATCH] fix(licensing): use importlib loader in src/License_Authority.py proxy to prevent circular imports --- src/License_Authority.py | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/src/License_Authority.py b/src/License_Authority.py index 52f4d39..ee98c2e 100644 --- a/src/License_Authority.py +++ b/src/License_Authority.py @@ -7,27 +7,22 @@ Repo: https://gitea.eibl.tech/me0nline/LOGAR-LICENSING.git import os import sys +import importlib.util -# Prefer the submodule implementation ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) -SUBMODULE_DIR = os.path.join(ROOT_DIR, "LOGAR-LICENSING") -if SUBMODULE_DIR not in sys.path: - sys.path.insert(0, SUBMODULE_DIR) +SUBMODULE_FILE = os.path.join(ROOT_DIR, "LOGAR-LICENSING", "License_Authority.py") -from License_Authority import ( - init_authority_db, - extract_license_info_from_cert, - generate_master_root_ca, - sign_ca_csr_with_seats, - issue_license_from_csr, - renew_license_cert, - revoke_license, - list_licenses, - main, - OID_LOGAR_SEATS, - OID_LOGAR_LICENSE_ID, - OID_LOGAR_ISSUER_URL -) +if not os.path.exists(SUBMODULE_FILE): + raise ImportError(f"LOGAR-LICENSING submodule not found at {SUBMODULE_FILE}. Run 'git submodule update --init --recursive'.") + +spec = importlib.util.spec_from_file_location("_submodule_authority", SUBMODULE_FILE) +_sub = importlib.util.module_from_spec(spec) +spec.loader.exec_module(_sub) + +# Export public symbols from submodule into this module's namespace +for attr in dir(_sub): + if not attr.startswith("__"): + globals()[attr] = getattr(_sub, attr) if __name__ == "__main__": - main() + _sub.main()