易于基于文件和环境配置。
easyconf的Python项目详细描述
方便快捷
易于基于文件和环境配置。
使用量
首先创建一个Config对象:
config=easyconf.Config('config.yaml')
然后引用配置变量作为此对象的属性:
some_variable=config.SOME_VARIABLE()
在运行时,easyconf将尝试从以下源中获取每个变量 顺序:
- 匹配的环境变量
- 配置文件中的匹配变量
- default属性(如果没有提供属性,则 easyconf.config.RequiredConfigVarMissing将引发异常)
配置文件生成
如果{tt1} $文件还不存在,文件位置是可写的, easyconf将使用initial值生成它并注释 default在每个配置变量中定义的值。
如果配置文件在git存储库中,它也将被添加到 .gitignore文件。
不要在条件语句中隐藏配置变量,请在 一个模块的顶部,因此它们可以不受限制地生成。
如果不想为非存在的配置生成文件,请使用 generate=False在实例化Config对象时。
django配置示例
importeasyconfconfig=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
- 用于设置 配置文件。
- help
- 要在此变量的配置文件中使用的帮助文本。
- cast
可用于转换传入值(来自环境或默认值)的调用 值)设置为正确的python类型。
将此可调用的cast_from_config属性设置为True,如果 从配置文件中强制转换也是安全的。
Config对象选项
- default_files
试图从中读取配置变量的文件或文件列表。如果 提供多个文件,只使用找到的第一个文件。
如果没有找到提供的文件,则 将自动创建和填充位置。
- file_env_var
可用于指定配置的环境变量 文件路径。
如果提供了且环境变量匹配,则此操作将重写任何 default_files指定。
- generate
- 如果没有默认的配置文件可以 加载。默认为True。
辅助模块
easyconf.dict_or_url
将在django-environ中定义的url字符串展开到字典中。例如:
>>> importeasyconf>>> easyconf.dict_or_url('mysql:///abc'){'NAME': 'abc', 'USER': '', 'PASSWORD': '', 'HOST': '', 'PORT': '', 'ENGINE': 'django.db.backends.mysql'}
这还将强制转换来自配置文件的url字符串。
easyconf.random_text_generator
创建一个函数,该函数可被调用以安全地生成随机文本字符串 具有预定义长度(包含base64个字符)。
对于initial配置变量选项很有用。
>>> importeasyconf>>> 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
- 如果cast callable的cast_from_config属性设置为True,则cast 来自配置文件的值。对于 dict_or_urlh页埃尔珀法。
1.1.1(2019-05-16)
- 修复在以下位置生成多个注释(用于多个默认值)的问题 yaml配置的结尾。
- 写入配置时强制转换默认值。
1.1(2019-05-15)
- 允许显式禁用自动配置生成。
- 如果提供了cast参数,则强制转换默认值。
1.0(2019-05-15)
- 初次发行