跳转到主要内容

基于文件和环境配置的简单工具。

项目描述

EasyConf

基于文件和环境配置的简单工具。

用法

首先创建一个Config对象

config = easyconf.Config('config.yaml')

然后通过这个对象的属性引用配置变量

some_variable = config.SOME_VARIABLE()

在运行时,EasyConf将按以下顺序尝试从以下来源获取每个变量

  1. 匹配的环境变量

  2. 配置文件内的匹配变量

  3. 默认属性(如果没有提供属性,将引发一个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中。

  • 如果类型转换可调用对象具有设置为Truecast_from_config属性,则转换来自配置文件的值。这对于dict_or_url辅助方法设置为True

1.1.1 (2019-05-16)

  • 修复了在YAML配置文件末尾生成多个注释(对于多个默认值)的问题。

  • 写入配置时转换默认值。

1.1 (2019-05-15)

  • 允许显式禁用自动配置生成。

  • 如果提供了cast参数,则转换默认值。

1.0 (2019-05-15)

  • 初始发布

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分发

easyconf-1.3.1.tar.gz (9.8 kB 查看哈希值)

上传时间:

构建分发

easyconf-1.3.1-py2.py3-none-any.whl (8.6 kB 查看哈希值)

上传于 Python 2 Python 3

由以下支持