Fix(clan_lib.api): fix cyclic import problem for api schema export
This commit is contained in:
@@ -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)}""")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user