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

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如何让ruby和maven协同工作   如何从Java代码中调用Excel VBA宏?   java是公共类的默认成员   java Android TextToSpeech总是无法运行   导入JAVA包的类不存在   java中有很多JSP/Servlet应用程序示例,为什么是。使用inc扩展代替。包含的jsp?   tomcat向JavaWebApp添加JAR   java如何在MySQL中向表中插入变量   java在Spring web app中找不到类[org.springframework.scheduling.quartz.SchedulerFactoryBean]   swing Java GUI布局建议   java Google HTTP库JSON解析,空值默认为True   java使用Eclipse和Apache Tomcat 9.0开发聊天机器人   java我可以使用vmware软件包更改虚拟机的IP地址吗?   java在单击“后台运行”后返回进度监视器对话框   java uibinder onload not调用   java Spring数据分页和排序存储库的工作原理