wordmarker.utils.yaml 源代码

import logging
from wordmarker.utils import log


[文档]class YamlUtils: """ :: yaml文件工具类 """ @log def __init__(self): pass
[文档] def get_value(self, yaml_dict, prop_list, temp_prop, file_name): """ .. note:: 递归调用获取yaml文件中属性对应的值 :param yaml_dict: yaml文件中的数据,以字典形式存放 :param prop_list: 属性列表,例如: ``pdbc.engine.url`` -> ``[pdbc, engine, url]`` :param temp_prop: 临时属性,在日志中进行提示,例如: ``pdbc.engine.url`` :param file_name: yaml文件名 :return: - yaml文件中属性对应的值 """ prop_list = prop_list if (len(prop_list) == 1) and (len(prop_list[0]) == 0): self._logger.error("输入的属性的值为空,在{file_name}中获取不到".format(file_name=file_name)) else: value = yaml_dict.get(prop_list.pop(0)) if type(value) == dict: return self.get_value(value, prop_list, temp_prop, file_name) else: if value is not None: self._logger: logging.Logger self._logger.info( "{file_name}文件中,属性 {prop} 对应的值获取成功".format(file_name=file_name, prop=temp_prop)) return value else: self._logger: logging.Logger self._logger.warning( "{file_name}文件中,属性 {prop} 对应的值为空。".format(file_name=file_name, prop=temp_prop))