Fix(clan_lib.api): fix cyclic import problem for api schema export

This commit is contained in:
Johannes Kirschbauer
2025-04-26 20:19:23 +02:00
parent f6628ec1a9
commit f67bf3c940
2 changed files with 29 additions and 2 deletions

View File

@@ -1,9 +1,35 @@
import importlib
import json
import pkgutil
from types import ModuleType
from clan_lib.api import API
def import_all_modules_from_package(pkg: ModuleType) -> None:
for _loader, module_name, _is_pkg in pkgutil.walk_packages(
pkg.__path__, prefix=f"{pkg.__name__}."
):
base_name = module_name.split(".")[-1]
# Skip test modules
if (
base_name.startswith("test_")
or base_name.endswith("_test")
or base_name == "conftest"
):
continue
importlib.import_module(module_name)
def main() -> None:
import clan_cli
import clan_lib
import_all_modules_from_package(clan_cli)
import_all_modules_from_package(clan_lib)
from clan_lib.api import API
schema = API.to_json_schema()
print(f"""{json.dumps(schema, indent=2)}""")

View File

@@ -3,8 +3,9 @@ import logging
import shutil
from pathlib import Path
from clan_cli import Flake, inventory
from clan_lib.api import API
from clan_cli import Flake, inventory
from clan_cli.completions import add_dynamic_completer, complete_machines
from clan_cli.dirs import specific_machine_dir
from clan_cli.secrets.folders import sops_secrets_folder