配置管理
facebook hydra 简介
背景
平时工作中,个人比较喜欢用yaml来管理配置关于yaml可进一步参看之前的文章yaml在python中的应用
常规做法
写一个工具函数来读取配置如
import yaml
def get_config(config_path):
with open(config_path, 'r') as f:
config = yaml.safe_load(f)
return config
if __name__ == '__main__':
config_path = "config/dev.yaml"
print(get_config(config_path))
Hydra
相关文档
Hyadra配置管理示例
import hydra
from omegaconf import DictConfig
@hydra.main(version_base=None, config_path="config", config_name="dev")
def main(cfg: DictConfig) -> None:
print(cfg.db.driver)
print(cfg.db.user)
print(cfg.db.password)
if __name__ == '__main__':
main()
在需要用到配置的函数上方使用装饰器hydra.main
装饰器hydra.main的参数config_path指定存放配置文件的文件夹,config_name用来指定配置文件的名字(去掉.yaml)即可
其实Hyadra的强大之处并不仅限于此,更多功能可参看官方文档