实用程序函数,使操作系统更易于使用。
python-env-utils的Python项目详细描述
环境实用程序
这个库扩展了标准库的getenv函数,允许 将返回值强制为类型。
就这样。
它作为一个库发布,因为我们拥有的每个项目都包括 相同的需求-读入环境变量,强制它们进入 正确的类型。
问题是环境变量总是以字符串的形式存储,但是 如果强制转换为布尔值,python将对任何字符串(甚至是“”)求值为true。这个 几乎从未达到预期的行为。如果将环境变量设置为 “”或“0”或“false”,您希望它为false。
>>>os.environ['foo']="0">>>val=os.getenv('foo')>>>val"0">>>bool(val)True
env_utils.get_env将强制将值转换为所需的类型。该包包含基本的helper函数,这些函数强制布尔、整数、小数、浮点数、日期、列表和字典。
# FOO=0>>>env_utils.get_env('FOO')"0">>>env_utils.get_bool('FOO')False>>>env_utils.get_int('FOO')0# FOO=foo,bar>>>env_utils.get_list('FOO',separator=',')['foo','bar']# FOO='{"foo": true}'>>>env_utils.get_dict('FOO'){'foo':True}# FOO=2016-11-23>>>env_utils.get_date('FOO')datetime.date(2016,11,23)
您可以提供任何想要强制值的函数,例如:
>>>importos>>>os.getenv('FOO_NAME')'bob'>>>classFoo(object):...def__init__(self,name):...self.name=name>>>coerce=lambdax:Foo(x)>>>importenv_utils>>>foo=env_utils.get_env('FOO_NAME',coerce=coerce)>>>foo.name>>>'bob'
安装
该库在pypi上作为“python env utils”提供,可以使用pip:
$ pip install python-env-utils
测试
可以使用tox:
运行测试$ tox