基于文件和环境配置的简单工具。
项目描述
EasyConf
基于文件和环境配置的简单工具。
用法
首先创建一个Config对象
config = easyconf.Config('config.yaml')
然后通过这个对象的属性引用配置变量
some_variable = config.SOME_VARIABLE()
在运行时,EasyConf将按以下顺序尝试从以下来源获取每个变量
匹配的环境变量
配置文件内的匹配变量
默认属性(如果没有提供属性,将引发一个easyconf.config.RequiredConfigVarMissing异常)
配置文件生成
如果Config文件尚不存在且文件位置可写,EasyConf将使用每个配置变量中定义的初始值和注释默认值生成该文件。
如果配置文件位于git仓库中,它也将被添加到.gitignore文件。
不要在条件语句中隐藏配置变量,在模块顶部加载它们,以便它们可以被生成。
如果您不希望为不存在的配置生成文件,请在创建Config对象时使用generate=False。
示例Django配置
import easyconf
config = easyconf.Config('myproject.yaml')
DEBUG = config.DEBUG(default=False)
DATABASES = {'default': config.DATABASE(
default='postgres:///myproject',
cast=easyconf.dict_or_url,
)}
SECRET_KEY = config.SECRET_KEY(initial=easyconf.random_text_generator(60))
配置变量选项
- default
如果未在环境或配置文件中提供变量,则该变量的默认值。
- initial
用于在配置文件中设置变量初始值的值或可调用对象。
- 帮助
用于配置文件中该变量的帮助文本。
- 类型转换
将传入值(从环境变量或默认值)转换为正确Python类型的可调用对象。
如果从配置文件转换是安全的,将此可调用对象的cast_from_config属性设置为True。
Config对象选项
- default_files
要尝试从中读取配置变量的文件或文件列表。如果提供了多个文件,则只使用找到的第一个文件。
如果没有找到提供的任何文件,将在可写位置创建第一个文件并自动填充。
- file_env_var
一个环境变量,可用于指定配置文件路径。
如果提供且与环境变量匹配,则覆盖任何指定的default_files。
- generate
如果无法加载默认文件之一,则是否生成新配置文件。默认为True。
辅助模块
easyconf.dict_or_url
将定义在django-environ中的URL字符串展开为字典。例如
>>> import easyconf
>>> easyconf.dict_or_url('mysql:///abc')
{'NAME': 'abc', 'USER': '', 'PASSWORD': '', 'HOST': '', 'PORT': '', 'ENGINE': 'django.db.backends.mysql'}
这还将转换来自配置文件的URL字符串。
easyconf.random_text_generator
创建一个函数,可以调用以安全地生成一个预定义长度的随机文本字符串(包含base64字符)。
对于initial配置变量选项很有用。
>>> import easyconf
>>> gen = easyconf.random_text_generator(20)
>>> gen()
'sYw0D/7xjXqxfCyUdHqr'
>>> gen()
'ig1Z1n+mFLt+qYNOmD6I'
变更日志
1.3.1 (2019-08-26)
无需安装git可执行文件。
1.3 (2019-08-02)
使用环境值进行自动配置生成。
1.2.2 (2019-08-02)
这次正确锁定ruamel.yaml(它是v0.16,而不是v16)。
1.2.1 (2019-08-01)
避免新版本的ruamel.yaml,它更改了加载格式。
1.2 (2019-05-21)
当在git存储库中生成配置时,将其添加到.gitignore中。
如果类型转换可调用对象具有设置为True的cast_from_config属性,则转换来自配置文件的值。这对于dict_or_url辅助方法设置为True。
1.1.1 (2019-05-16)
修复了在YAML配置文件末尾生成多个注释(对于多个默认值)的问题。
写入配置时转换默认值。
1.1 (2019-05-15)
允许显式禁用自动配置生成。
如果提供了cast参数,则转换默认值。
1.0 (2019-05-15)
初始发布
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。