remove PYTHONPATH stuff, add sys.path.append to create_runner_dict instead

This commit is contained in:
Daniel 2023-12-07 17:15:12 +01:00
parent 4c821a92b2
commit 9121128935
2 changed files with 7 additions and 6 deletions

View file

@ -31,12 +31,6 @@ ENV_PATHS = ";".join([x.as_posix() for x in ENV_FILES])
RECIPES_DIR = Path("../recipes").resolve()
OUTPUT_DIR = Path("./test-output").resolve()
# -------------------------------- pythonpath -------------------------------- #
# add recipes dir to pythonpath, so that python imports from there are possible
# the custom classes of Runner will be imported from there
os.environ["PYTHONPATH"] = RECIPES_DIR.as_posix()
# ------------------------------------ run ----------------------------------- #
subprocess.run(

View file

@ -1,5 +1,6 @@
import importlib
import re
import sys
from pathlib import Path
from loguru import logger
@ -90,11 +91,17 @@ class Coordinator:
"wordpress": RunnerWordpress,
"nextcloud": RunnerNextcloud,
}
The Runner classes are automatically imported with importlib. The imports are successful
because recipes_dir is added to sys.path.
"""
RUNNER_DICT: dict[str, type["Runner"]] = dict()
runner_discovery_pattern = re.compile("Runner.+")
# make it possible to import modules from recipes_dir
sys.path.append(recipes_dir.as_posix())
for module_path in recipes_dir.rglob("*/runner*.py"):
rel_path = module_path.relative_to(recipes_dir).as_posix().replace("/", ".").replace(".py", "")
module = importlib.import_module(rel_path)