from .config import ConfigLoader import argparse import os from module_bank import PythonToSQLite from typing import Callable parser = argparse.ArgumentParser(description="chongming 应用启动脚本") parser.add_argument("--config", default="config.toml", help="配置文件路径") # parser.add_argument("--mode", default="dev", help="运行模式[dev, prod]") args = parser.parse_args() def init_module_bank(config): MODULE_BANK_PATH_LIST = config["production"]["module_system"]["path"] for module_path in MODULE_BANK_PATH_LIST: if os.path.exists(module_path) == False: raise ValueError(f"模块路径不存在: {module_path}") packer_list = [PythonToSQLite(module_path) for module_path in MODULE_BANK_PATH_LIST] for packer in packer_list: modules = packer.list_modules() for module in modules: print(f"{module['module_name']} {'[包]' if module['is_package'] else ''}") packer.install_importer() def launch(run_fun: Callable[[dict, dict], None], run_mode: str): config = ConfigLoader(args.config) # 获取对应运行模式的配置 default_config = config.get("default", {}) run_mode = default_config.get("env", "development") app_config = config.get(run_mode, {}) if run_mode == "production": init_module_bank(config) run_fun(app_config, default_config)