实用程序函数,使操作系统更易于使用。

python-env-utils的Python项目详细描述


https://travis-ci.org/yunojuno/python-env-utils.svg?branch=masterhttps://badge.fury.io/py/python-env-utils.svghttps://codecov.io/gh/yunojuno/python-env-utils/branch/master/graph/badge.svg

环境实用程序

这个库扩展了标准库的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

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

推荐PyPI第三方库


热门话题
java使用servlet的正确方法是什么?   java Android ListView选中所有复选框(自定义ResourceCursorAdapter)   java如何在一个活动中正确处理多个片段交互侦听器?   java jUnit和忽略继承的测试   具有多个权限的java ActivityResultLauncher   Java:我可以通过应用程序将客户端重定向到loadbalancer后面的同一个会话/节点吗?   java如何使用Hibernate保存具有一对一关系的两个类?   java JEditorPane字体大小设置不准确   java为什么JUnit4导入不被识别,即使JUnit4在我的有效pom中。xml?   多次使用流后的java空映射   JavaSwing中AccessibleContext的用途是什么?   java指定使用T的类   java查找twitter4j转发速率限制   枚举的Java数组(类)   java通过Maven build排除了一些类