跳转到主要内容

一个用于定义、解析和验证作为环境变量传递的设置的库

项目描述

Varsity可以帮助您定义应用程序的设置,从环境变量中读取它们,将它们解析为原生Python类型,并进行验证。

加载一个简单的字符串

假设FOO环境变量已被设置为‘3’。在设置加载器并调用其.load()方法后,我们得到一个包含我们添加到加载器中的每个设置的键的字典。

>>> from varsity import Loader
>>> l = Loader()
>>> l.add('FOO')
>>> settings = l.load()
>>> settings.FOO
'3'

如果您想在Python中为设置使用不同的名称,您可以提供自己的名称。

>>> l.add('FOO', 'foo')
>>> settings = l.load()
>>> settings.foo
'3'

从.load()返回的对象还提供了设置字典式的访问。

>>> settings['foo']
'3'

您可以提供一个可调用的‘typ’,该可调用用于将环境变量字符串转换为所选类型。

>>> l.add('FOO', 'foo', typ=int)
>>> settings = l.load()
>>> settings.foo
3

您可以提供默认值,如果环境变量不存在,则返回这些默认值。

>>> l.add('SOME_UNSET_VAR', default=0)
>>> settings = l.load()
>>> settings.SOME_UNSET_VAR
0

如果您不提供默认值,并且环境变量未设置,则将引发ValueError。

您可以提供自己的可调用作为‘typ’参数。假设‘TODAY’环境变量设置为‘2016-05-05’。

>>> from varsity import Loader
>>> from iso8601 import parse_date
>>> l = Loader()
>>> l.add('TODAY', 'today', typ=lambda x: parse_date(x).date())
>>> settings = l.load()
>>> settings.today
datetime.date(2016, 5, 5)

如果您不提供‘typ’,但提供了默认值,则环境变量将被转换为与默认值相同的类型。(在这里,我们得到一个整型3而不是字符串‘3’,因为默认值是一个整型。)

>>> l.add('FOO', 'foo', default=0)
>>> settings = l.load()
>>> settings.foo
3

如果您使用属性式语法访问设置,则可以使用该语法访问嵌套字典。在这个例子中,FOO环境变量设置为‘{"bar": {"baz": 1.23}}’

>>> l.add('FOO', 'foo', typ=json.loads)
>>> settings = l.load()
>>> settings.foo.bar.baz
1.23

项目详情


下载文件

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

源分布

varsity-0.0.5.tar.gz (2.9 kB 查看哈希值)

上传时间

由以下支持