带ENV插值的YAML阅读器。

envyconfig的Python项目详细描述


环境配置

Envyconfig是一个python包,用于读取带有指向外部键的指针的YAML配置文件。它读取指定的YAML文件,从配置的源获取数据,并返回相应的dict结构。在

主要目的是允许秘密配置项的密钥存储在YAML文件中,以便于在程序加载期间使用。在

在PyYAML包的基础上构建,添加了以下内容:

  • 环境变量可以指定为配置值。在
  • GCP机密可以指定为配置值。在
  • 嵌套的YAML结构可以扁平化以获得简单的键/值dict
  • 可以指定默认值,例如从命令行。在

基本用途

>>>importenvyconfig>>>config=envyconfig.load('config.yaml')>>>print(config){'foo':{'bar':'baz'}}

配置文件示例。

^{pr2}$

使用详细信息

插值键。

您可以通过包装器指定要由其中一个配置的引擎插值的值 ${<method>:<key>:<default>},例如${env:MY_VAR:my_default}。当前支持的引擎是

  • 环境(os.environ)变量(键:env),以及
  • 谷歌秘密管理器(密钥:gs)。 引擎是延迟加载的,因此除非您请求其中一个引擎的插值,否则不会加载配置。 这对于依赖外部库和配置的高级引擎(目前是gs)非常有用。在

作为方法,键和默认值用:分隔,方法或中不允许使用此字符 关键字名称。但在默认值中是允许的。所以$(env:REDIRECT_PAGE:https://localhost/}是合法语法。在

环境变量

环境变量的行为与您期望的一样。在

谷歌秘密管理器

此引擎需要可选的依赖项(或单独安装)googlesecrets (即pip install envyconfig[googlesecrets]),以及指向GCP密钥(GOOGLE_APPLICATION_CREDENTIALS)的指针 适当的证书。在

信用证和其他文件

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用Java将JSON转换为哈希映射   java如何通过使用MapStruct从源对象复制值来填充目标对象内部的映射?   注入泛型类型为@InjectGuice的类时发生java错误   字符串如何在JavaIDE中导入基本符号   在Java中将JSON转换为List<List<String>>   java Java9 HttpClient SSLHandshakeException   java jOOQ代码生成器   java如何调整图标(图像按钮),使其不会放大?   java我可以在使用Eclipse时安装2个或更多Android SDK吗   sqlite Java实现DAO   如何解决此错误?“java.lang.NoSuchFieldError:org.apache.http.conn.ssl.SSLConnectionSocketFactory上的实例。<clinit>。”   java Maven:将基于OSP的zip文件解压缩到WEBINF/lib   java如何在每次调用函数时获取当前gps位置?