将环境变量中的配置解析为typing.namedtuple
env-var-config的Python项目详细描述
此项目允许您将应用程序的配置描述为 typing.NamedTuple,就像这样:
importtypingclassMyAppConfig(typing.NamedTuple):some_string:strsome_int:intsome_float:floatsome_bool:bool=True
然后,从环境变量中收集配置:
importenv_var_configconfig=env_var_config.gather_config_for_class(MyAppConfig)
代码将查找像元组字段一样调用但大写的变量。
您可能已经注意到,可以在字段上设置默认值。 如果在环境中找不到具有默认值的字段,则将其设置为默认值 (这并不奇怪)。 但是,如果缺少没有默认值的值,则会引发错误。 也就是说,除非将allow_empty选项设置为True 在对gather_config_for_class的调用中。 然后所有缺少的值都将使用其类型的默认值初始化, 例如,空字符串表示str,0表示int,等等。
安装
pip install env_var_config