chronaxis.configuration.cli
源码基线:8904c2f744951857659abd40aaa3535d57faf53c
1"""配置辅助命令;复用同一模板及配置入口,不执行分析。"""2from .template_catalog import available_templates3from .initialization import initialize_configuration456def run_configuration_cli(arguments):7 """执行已解析的配置命令。参数: argparse结果。返回: 退出码。异常: 配置/文件/取消上交CLI。89 初始化显示实际入口与合成预期;可运行不代表适合真实设备。10 """11 if arguments.config_command=='origins':12 from .origins import configuration_origins,render_origins13 import json14 report=configuration_origins(arguments.input,fields=arguments.fields)15 print(json.dumps(report,ensure_ascii=False,indent=2) if arguments.format=='json' else render_origins(report),16 end='\n' if arguments.format=='json' else '')17 return 018 if arguments.config_command=='convert':19 from .file_tools import convert_configuration20 path=convert_configuration(arguments.input,arguments.output)21 print('已转换:'+str(path)+';配置类型和值保持,注释不保留。')22 return 023 if arguments.config_command=='resolve':24 from .resolution import resolve_configuration25 result=resolve_configuration(arguments.input,output=arguments.output,format=arguments.format,defaults=arguments.defaults)26 if arguments.output is None:print(result,end='')27 else:print('已导出有效配置:'+str(result)+';路径固定为原输入的绝对位置。')28 return 029 if arguments.list:30 if arguments.scene is not None or arguments.output is not None:31 raise ValueError('--list不能同时指定场景或输出目录')32 for template in available_templates():print(template.name+' — '+template.title)33 return 034 if arguments.scene is None or arguments.output is None:35 raise ValueError('初始化需要场景名和--output新目录;用--list查看场景')36 path=initialize_configuration(arguments.scene,arguments.output,style=arguments.style)37 template=next(t for t in available_templates() if t.name==arguments.scene)38 print('已生成合成场景:'+str(path))39 print('预期:'+template.expected)40 print('真实使用前请核实单位、方向、有效期和阈值。')41 return 042