` konfetti'为用python编写的应用程序或库的配置提供了一种独立于框架的方法。
konfetti的Python项目详细描述
说明
konfetti是一个python配置管理系统,具有直观的 API、延迟评估和(a)同步保险库支持。
界面设计和功能的灵感来自decouple、Django、envparse和dynaconf。
主要功能:
- 惰性计算;
- 内置环境变量支持;
- 内置异步保险存储访问支持;
- 测试助手;
- Django&Flask集成。
延迟评估的好处:
- 更快更简单的测试运行;无需评估整个 如果未使用项目配置
- 在必要时避免在导入期间进行网络调用;
快速启动
要使用konfetti,您需要定义:
- 模块或类中的配置变量;
- 接入点;
设置模块
# app_name/settings/production.pyfromkonfettiimportenv,vaultVAULT_ADDR=env("VAULT_ADDR")VAULT_TOKEN=env("VAULT_TOKEN")DEBUG=env("DEBUG",default=False)DATABASE_URI=vault("path/to/db")
变量名的命名约定为大写,其他变量 将被忽略。要使用Vault,需要指定 VAULT_ADDR和VAULT_TOKEN在设置模块中。
接入点
# app_name/settings/__init__.pyfromkonfettiimportKonfig,AsyncVaultBackendconfig=Konfig(vault_backend=AsyncVaultBackend("/secret/team"))
konfetti依赖于KONFETTI_SETTINGS环境变量 在上述情况下,探索您的设置模块:
export KONFETTI_SETTINGS=app_name.settings.production
或者,可以从对象、可导入字符串、映射或json文件启动访问点。
classTestSettings:VALUE="secret"config=Konfig.from_object(TestSettings,...)
config=Konfig.from_object("path.to.settings",...)# If the config is in the same moduleSECRET=vault("/path/to")["secret"]config=Konfig.from_object(__name__,...)
config=Konfig.from_mapping({"SECRET":42},...)
config=Konfig.from_json("/path/to.json")
使用量
带有配置选项的设置模块/类不应该是 直接访问,因为前面提到的功能已经实现 在接入点级别。
fromapp_name.settingsimportconfigasyncdefsomething():awaitconfig.DATABASE_URI# asynchronously taken from Vaultdebug=config.DEBUG# Usual sync access
python支持
Konfetti支持Python2.7、3.5、3.6、3.7和3.8
许可证
此项目中的代码是根据MIT license授权的。通过向Konfetti投稿,您同意您的投稿将根据其麻省理工学院许可证获得许可。