易于基于文件和环境配置。

easyconf的Python项目详细描述


方便快捷

易于基于文件和环境配置。

使用量

首先创建一个Config对象:

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

然后引用配置变量作为此对象的属性:

some_variable=config.SOME_VARIABLE()

在运行时,easyconf将尝试从以下源中获取每个变量 顺序:

  1. 匹配的环境变量
  2. 配置文件中的匹配变量
  3. 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)

  • 初次发行

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

推荐PyPI第三方库


热门话题
java编辑并重新运行spring引导单元测试,无需重新加载上下文即可加快测试速度   为什么我不能做演员?   java为什么是线程。join通常用于停止安卓中的线程   java从weblogic服务器调用JSON POST REST服务时收到400:错误请求   java在DeviceAdmin模式禁用时设置身份验证?   java SortedMap的keySet()能否始终安全地强制转换到SortedSet?   安卓 java。lang.NoSuchMethodException可包裹类   java JOGL库安装   javatomcat内存管理   java使用getString()中的变量   java将最小星号设置为评级栏   Java中字符串相等的println()方法。。。它到底是如何工作的?   java如何从文本中输出的数组中放入随机图像