一个用于定义、解析和验证作为环境变量传递的设置的库
项目描述
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 |