Klipper-配置解析
打印机配置系统的参数解析流程,系统跟踪493个配置参数,包含配置文件和程序默认设置,并管理124个打印机组件对象。核心方法read_main_config通过读取配置文件、分离常规/自动保存配置、构建配置包装器等步骤完成配置加载。其中_build_config_wrapper方法使用RawConfigParser解析配置数据,最终生成包含打印机对象和解析结果的配置包装器。
·
配置参数
- 配置跟踪的参数有493个
- 493个配置参数,包含打印机配置文件里的,以及程序里默认设置的参数
- 打印机的组件对象共有124个
- status_raw_config:在 _read_config的 pconfig.check_unused_options(config) 里面实现的
主代码解析
def read_main_config(self):
filename = self.printer.get_start_args()['config_file']
data = self._read_config_file(filename)
regular_data, autosave_data = self._find_autosave_data(data)
regular_config = self._build_config_wrapper(regular_data, filename)
autosave_data = self._strip_duplicates(autosave_data, regular_config)
self.autosave = self._build_config_wrapper(autosave_data, filename)
cfg = self._build_config_wrapper(regular_data + autosave_data, filename)
return cfg
- data = self._read_config_file(filename):读取配置文件数据,返回字符串结果
- regular_data, autosave_data = self._find_autosave_data(data):解析出常规配置数据和通过页面操作自动保存的配置数据
- regular_config = self._build_config_wrapper(regular_data, filename):构建常规配置的包装器
- autosave_data = self._strip_duplicates(autosave_data, regular_config):解析自动保存配置和常规配置里的重复项,并去除自动保存重复的配置字段
- self._build_config_wrapper(autosave_data, filename):构建自动保存配置的包装器
- cfg = self._build_config_wrapper(regular_data + autosave_data, filename):配置合并,构建一个所有配置的包装器
def _build_config_wrapper(self, data, filename):
if sys.version_info.major >= 3:
fileconfig = configparser.RawConfigParser(
strict=False, inline_comment_prefixes=(';', '#'))
else:
fileconfig = configparser.RawConfigParser()
self._parse_config(data, filename, fileconfig, set())
return ConfigWrapper(self.printer, fileconfig, {}, 'printer')
- fileconfig = configparser.RawConfigParser():创建解析器对象
- self._parse_config(data, filename, fileconfig, set()):将配置信息解析到 解析器对象里
- ConfigWrapper(self.printer, fileconfig, {}, ‘printer’): 返回配置包装器,包含打印机对象,解析器对象
更多推荐
所有评论(0)