ArkMowers / arknights-mower

《明日方舟》长草助手
https://arkmowers.github.io/arknights-mower/
MIT License
505 stars 53 forks source link

[♻️ Refac] 重构 Config #649

Closed MuelNova closed 1 month ago

MuelNova commented 1 month ago

见 #648 以了解详情。占坑随时确定进度,请帮忙测试。就目前来说,应该不会造成破坏性变更导致用户无法使用。

目前完成的工作 / 需要完成的工作

实现细节

对老版本的兼容与迁移

目前替换老的 load_conf 为 arknights_mower.model.Config.load_conf,生成一个 Config 对象。

文件读取方面,手工选取了配置项用于生成 MowerConfig 设置,到时候写完了可以直接 load 新的 conf 对象,或是从旧版本迁移过来。

配置利用方面,通过 extra=allow 和 __getitem__ 以实现老版本调用的兼容

文件保存方面,同时保存 ./conf.yml./conf.upgraded.yml 两个文件,其中 ./conf.upgraded.yml 为新版的 conf,仅含有新版字段

实现想法

第一段先按照这个分类吧,根据小功能慢慢替换。 image

第二段,再把 config 那个 module 的配置项也拿出来

第三段,将不合理的配置项合并 / 拆分

fuyn101 commented 1 month ago

破不破坏我不是很清楚 不过我遇见了报错,好像还是我写的*

是在运行 auto_get_res_new.py 遇到的,这文件是自动生成一些资源文件/json/模型, 其中调用 arknights_mower.utils.image import loadimg, thres2 之前没有什么问题

还有 删掉根目录下的conf.yml会提示No such file or directory,应该是漏写了生成配置?

9aae9539a0d57096c61a2bca796468f7

MuelNova commented 1 month ago

是,新 pr 修了,还没合。