一个用于定义、解析和验证作为环境变量传递的设置的库
项目描述
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 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 1539cda580f009a81438acb3af702e9cb037633a5b8bc57091a127a95e89fee1 |
|
| MD5 | 4250bd2a93fbe9074fed92b5f39ed5f8 |
|
| BLAKE2b-256 | 350fadc7d29a1bff0aa0843b35db9758ecc9df38f828d34da776611a2ca4ad8c |