对于OmegaConf,是否可以“关闭”节点内插,这样当您访问插值节点时,它只返回文字字符串,即"${resolver:value}",而不是计算插值值。
我有一个程序,它使用一些自定义内插的配置文件,但有时我想通过编程计算或比较这些配置文件,而不必担心插值(例如,它们可能对应于未设置的环境变量)。
发布于 2022-09-10 03:03:39
可以使用内部API访问原始值:
c = OmegaConf.create({"a" :10, "b": "${a}"})
v = c._get_node("b")._value()
print(type(v), v)
# <class 'str'> ${a}在您所描述的情况下(或者在某些自定义解析器无法解析时),比较信任是正确的:
c1 = OmegaConf.create({"e": "${oc.env:FOO}", "a": 1})
c2 = OmegaConf.create({"e": "${oc.env:FOO}", "a": 1})
print(c1 == c2)
# True
c2.a = 2
print(c1 == c2)
# Falsehttps://stackoverflow.com/questions/73666041
复制相似问题