假设我的代码中有一个抽象类,db并且类, , ...继承自。\n我的项目使用Hydra并具有以下结构:db1db1db1db
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_app.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 conf.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 db\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 db1.yaml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 db2.yaml\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 db3.yaml\nRun Code Online (Sandbox Code Playgroud)\n我需要一个列表,db所以我想得到一个最终的配置文件,如下所示:
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_app.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 conf.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 db\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 db1.yaml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 db2.yaml\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 db3.yaml\nRun Code Online (Sandbox Code Playgroud)\n所以这是, , .\n在文件中db的参数列表,我想像这样:db1db2db3conf.yaml
db:\n -\n param1_of_db1: key_1_1\n param2_of_db1: key_1_2\n -\n param1_of_db2: key_2_1\n param2_of_db2: key_2_2\n -\n param1_of_db3: key_3_1\n param2_of_db3: key_3_2\nRun Code Online (Sandbox Code Playgroud)\n有没有办法做类似的事情?
\nHydra 不支持您所要求的内容。
不过,您可以接近它(无法从命令行覆盖该结构,类似于:config.yaml:
defaults:
- db/db1
- db/db2
- db/db3
Run Code Online (Sandbox Code Playgroud)
此语法记录在此处。
在每个数据库配置文件中,您可以执行以下操作:
db/db1.yaml:
# @pacakge _group_._name_
host: localhost
port: 3306
Run Code Online (Sandbox Code Playgroud)
包覆盖记录在此处。
结果配置如下:
db: # from the config group of the corresponding config (path)
db1: # from the name of the corresponding config
host: localhost
port: 3306
db2:
...
Run Code Online (Sandbox Code Playgroud)