我有一个配置文件,其中(故意)包含一些未定义的别名:
base:
foo: *args_foo
bar: *args_bar
fuz: fuz_val
buz: buz_val
同时,我有一个以 --foo 和 --bar 作为参数的 cli,其中 --foo 可以多次指定。我最终得到一个如下所示的字典:
args = {}
args["foo"] = ["foo_val_1", "foo_val_2", "foo_val_3"]
args["bar"] = "bar_val"
我想将参数转储到 yaml,但参数中的每个键都有自定义锚点。如下所示:
args:
foo: &args_foo
- foo_val_1
- foo_val_2
- foo_val_3
bar: &args_bar "bar_val"
我可以编写自己的代码来生成文档,但我更希望以某种方式告诉 ruamel.yaml 在序列化之前添加锚点。问题是,这是否可能,如果可能,如何实现?
目的是将这两个文件连接起来,像这样:
args:
foo: &args_foo
- foo_val_1
- foo_val_2
- foo_val_3
bar: &args_bar "bar_val"
base:
foo: *args_foo
bar: *args_bar
fuz: fuz_val
buz: buz_val
并在加载连接文档后提取“base”作为最终配置。