45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
# 尝试导入 toml 解析库 (兼容 Python 3.11+ 和旧版本)
|
|
import os
|
|
import sys
|
|
|
|
try:
|
|
import tomllib as toml # Python 3.11+ 内置
|
|
except ImportError:
|
|
try:
|
|
import tomli as toml # 需要 pip install tomli
|
|
except ImportError:
|
|
print("错误: 缺少 TOML 解析库。请运行: pip install tomli")
|
|
sys.exit(1)
|
|
|
|
|
|
# ==========================================
|
|
# 1. 配置加载 (Config Loader)
|
|
# ==========================================
|
|
def load_config(config_path="config.toml"):
|
|
"""读取 TOML 配置文件并转换为扁平字典"""
|
|
if not os.path.exists(config_path):
|
|
print(f"错误: 找不到配置文件 {config_path}")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
with open(config_path, "rb") as f:
|
|
data = toml.load(f)
|
|
|
|
# 将 TOML 的层级结构映射回原本的扁平结构,保持代码其余部分不用大改
|
|
config = {
|
|
"source_file": data["paths"]["source_file"],
|
|
"output_folder": data["paths"]["output_folder"],
|
|
"excel_file": data["paths"]["excel_file"],
|
|
"image_folder": data["paths"]["image_folder"],
|
|
"fonts_dir": data["paths"]["fonts_dir"],
|
|
"class_name": data["class_info"]["class_name"],
|
|
"teachers": data["class_info"]["teachers"],
|
|
"default_comment": data["defaults"].get("default_comment", "暂无评语"),
|
|
"age_group": data["defaults"].get("age_group", "大班上学期"),
|
|
"ai": data["ai"]
|
|
}
|
|
return config
|
|
except Exception as e:
|
|
print(f"读取配置文件出错: {e}")
|
|
sys.exit(1)
|