配置管理
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的强大之处并不仅限于此,更多功能可参看官方文档

参考及扩展阅读