辅助工具 (helper)
本模块提供了常用辅助功能,主要用于项目配置管理和获取项目信息。通过 Helper 类,用户可以方便地进行以下操作: - 定位项目根目录 - 获取配置文件路径 - 设置、获取以及删除配置值
Helper 类详细说明
- class Helper(project_root: str = '', config_file_name: str = 'common_info.yaml')
Helper 类封装了项目配置管理功能。当未指定 project_root 时,会自动根据调用者所在目录确定项目根目录;同时,配置文件名称默认为 “common_info.yaml”。
方法:
__init__(self, project_root: str = ‘’, config_file_name: str = ‘common_info.yaml’)
初始化 Helper 实例。
参数:
project_root: 项目根目录的路径。如果为空,则自动根据调用者所在文件的目录确定项目根目录。
config_file_name: 配置文件名称,默认为 “common_info.yaml”。
应用场景:
用于项目启动阶段的配置管理,确保项目根目录和配置文件正确定位。
示例:
helper = Helper()
get_proj_root(self) -> str
获取项目根目录的名称。
返回:
项目根目录的名称(字符串)。
示例:
root = helper.get_proj_root() print("项目根目录:", root)
get_config_path(self) -> str
获取配置文件的名称或路径。
返回:
配置文件的名称(字符串)。
示例:
config_name = helper.get_config_path() print("配置文件:", config_name)
set_module_value(self, *keys, value)
设置配置文件中嵌套键的值。通过可变参数指定键的层级,最终将 value 存入相应的位置。
参数:
keys: 配置项的键,按照嵌套层级排列。
value: 要设置的值。
应用场景:
用于更新或保存项目的动态配置,例如数据库连接参数或其他模块的配置项。
示例:
helper.set_module_value('database', 'host', value='127.0.0.1')
get_module_value(self, *keys, max_waiting_time: float = 0.0, debug: bool = True)
从配置文件中获取指定嵌套键的值,并可设置最大等待时间以便在配置尚未生成时轮询获取。
参数:
keys: 待查询的配置键,按照嵌套层级排列。
max_waiting_time: 最大等待时间(单位为秒),若大于0,则在该时间内反复查询配置文件。
debug: 是否启用调试信息输出,默认为 True。
返回:
获取到的配置值,如果未找到则返回 None。
应用场景:
用于动态读取配置值,如启动时读取数据库配置或外部服务参数,支持等待机制确保读取到配置。
示例:
db_host = helper.get_module_value('database', 'host', max_waiting_time=5) if db_host is None: print("未获取到数据库配置。") else: print("数据库主机:", db_host)
delete_module_value(self, *keys)
删除配置文件中指定键的配置项。
参数:
keys: 待删除的配置项键,按照嵌套层级排列。
应用场景:
用于移除不再需要的配置项,或者实现配置重置操作。
示例:
helper.delete_module_value('database', 'host')
使用示例
下面的示例展示了如何使用 Helper 类进行配置管理:
from pywayne.helper import Helper
# 初始化 Helper 对象(使用当前目录作为项目根目录)
helper = Helper('./')
# 设置多个配置项
helper.set_module_value('a', 'b', value=2)
helper.set_module_value('a', 'c', value=1)
helper.set_module_value('d', 'e', 'f', value=3)
# 删除部分配置项
helper.delete_module_value('a', 'c')
helper.delete_module_value('a')
helper.delete_module_value('d')
以上详细介绍了 helper 模块中 Helper 类各个方法的功能、参数、应用场景和示例代码,帮助用户快速掌握项目配置管理和辅助工具的使用。