chongming/utils/launch.py
2026-01-26 11:45:09 +08:00

39 lines
1.4 KiB
Python

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)