具有env变量的无样板配置。

environ-config的Python项目详细描述


CI statusTest Coverage

environ_config允许您使用环境变量(如The Twelve-Factor App方法论中建议的那样)配置应用程序,使用优雅、无样板和声明性代码:

>>> importenviron>>> # Extracts secrets from Vault-via-envconsul: 'secret/your-app':>>> vault=environ.secrets.VaultEnvSecrets(vault_prefix="SECRET_YOUR_APP")>>> @environ.config(prefix="APP")... classAppConfig:... @environ.config... classDB:... name=environ.var("default_db")... host=environ.var("default.host")... port=environ.var(5432,converter=int)# Use attrs's converters and validators!... user=environ.var("default_user")... password=vault.secret()...... env=environ.var()... lang=environ.var(name="LANG")# It's possible to overwrite the names of variables.... db=environ.group(DB)... awesome=environ.bool_var()>>> cfg=environ.to_config(... AppConfig,... environ={... "APP_ENV":"dev",... "APP_DB_HOST":"localhost",... "LANG":"C",... "APP_AWESOME":"yes",# true and 1 work too, everything else is False... # Vault-via-envconsul-style var name:... "SECRET_YOUR_APP_DB_PASSWORD":"s3kr3t",... })# Uses os.environ by default.>>> cfgAppConfig(env='dev', lang='C', db=AppConfig.DB(name='default_db', host='localhost', port=5432, user='default_user', password=<SECRET>), awesome=True)
>>> cfg.db.password's3kr3t'

功能

  • 无声明性模板。
  • 来自扁平环境变量名的嵌套配置。
  • 默认值和必需值:在不编写代码行的情况下强制配置结构。
  • 有帮助的调试日志记录,它将告诉您哪些变量存在,以及environ_config正在查找什么。
  • 建立在attrs之上,免费提供数据验证和转换。
  • 可插入的秘密提取。 随附:

项目信息

environ_configMIT许可证下发布。 它的目标是python 2.7、3.5和更新版本,以及pypy。

发布信息

18.2.0(2018-01-12)

向后不兼容的更改:

  • 使用RawConfigParser作为ini样式机密,以避免插值错误。

更改:

none

Full changelog

学分

environ_configHynek Schlawack编写和维护。

这项发展得到了Variomedia AG的善意支持。

贡献者的完整列表可以在GitHub’s overview中找到。

^如果没有attrs project,{tt1}$是不可能的。

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

推荐PyPI第三方库


热门话题
oop是Java中装饰器模式的替代方案吗?   java Kafka使用者进程和线程与主题分区的关系是什么   java进程。破坏不起作用   java问题,声明Map<String,Class<?扩展可序列化>>   涉及泛型的java类型安全异构容器   用于转换native2ascii和native2ascii的java库   java填充对象字段的简单方法   java如何将正确的数组返回到方法中并正确修复主方法   java如何解析日期字符串,如'21Jul12'   在Python或Java中旋转图像的更快方法   java异步任务在构造函数处取消   安全性在java中有加密代码的选项吗?它应该只在运行时解密和执行?   java如何编译。jrxml仅一次   java错误Msg=ORA00932:数据类型不一致:预期日期为二进制   java如何设置每行不同的JTextArea文本对齐方式?