remove PYTHONPATH stuff, add sys.path.append to create_runner_dict instead
This commit is contained in:
parent
4c821a92b2
commit
9121128935
2 changed files with 7 additions and 6 deletions
6
main.py
6
main.py
|
|
@ -31,12 +31,6 @@ ENV_PATHS = ";".join([x.as_posix() for x in ENV_FILES])
|
||||||
RECIPES_DIR = Path("../recipes").resolve()
|
RECIPES_DIR = Path("../recipes").resolve()
|
||||||
OUTPUT_DIR = Path("./test-output").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 ----------------------------------- #
|
# ------------------------------------ run ----------------------------------- #
|
||||||
|
|
||||||
subprocess.run(
|
subprocess.run(
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import importlib
|
import importlib
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
@ -90,11 +91,17 @@ class Coordinator:
|
||||||
"wordpress": RunnerWordpress,
|
"wordpress": RunnerWordpress,
|
||||||
"nextcloud": RunnerNextcloud,
|
"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_DICT: dict[str, type["Runner"]] = dict()
|
||||||
runner_discovery_pattern = re.compile("Runner.+")
|
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"):
|
for module_path in recipes_dir.rglob("*/runner*.py"):
|
||||||
rel_path = module_path.relative_to(recipes_dir).as_posix().replace("/", ".").replace(".py", "")
|
rel_path = module_path.relative_to(recipes_dir).as_posix().replace("/", ".").replace(".py", "")
|
||||||
module = importlib.import_module(rel_path)
|
module = importlib.import_module(rel_path)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue