读取用 `oc.env` 解析的变量作为 hydra 中的整数

read variables resolved with `oc.env` as integer in hydra

在我的项目中,我使用 python-dotenv 设置环境变量。 然后我使用 co.env OmegaConf 解析器在我的 YAML 中引用它。

# config.yaml
var1: 42
var2: ${oc.env:PROJECT_NUMBER}
# .env
PROJECT_NUMBER=99

一旦我 运行 我的脚本,变量似乎总是被解析为一个字符串:

# content of config 
{'var1': 42, 'var2': '99'}

据我从 here 了解到,这是 oc.env 的预期行为,而 env 解析器会猜测原始类型已被弃用。
如何确保 var2 被读取为整数?
提前致谢。

您可以使用oc.decode解码得到它作为一个数字。

类似于:

var1: 42
var2: ${oc.decode:${oc.env:PROJECT_NUMBER}}