Files
clan-core/pkgs/clan-cli/api.py
2025-07-02 17:59:24 +07:00

41 lines
884 B
Python
Executable File

#!/usr/bin/env python3
import importlib
import json
import pkgutil
from types import ModuleType
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)}""")
if __name__ == "__main__":
main()