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

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第三方库


热门话题
JavaGWT:何时使用Lazydemelement?   Java中跟踪消失线程的多线程处理   java Springboot未能配置数据源:“url”,但我没有使用数据库   java为按钮生成随机位置   math Java:包含二项式系数计算的表达式   java通过AsyncTask传递参数   从路径错误创建java文件   高流量网站的性能播放框架、Java、Apache、PostgreSQL、JPA和Hibernate   java将4D矢量转换为长矢量   arraylist Java循环在没有任何错误的情况下终止   java正在制作一个计算器应用程序,希望在第二个片段中更新历史,但无法完成   java将信息从IntentService发送到Activity   java如何在游戏中插入大量实体!工作   javascript如何在ScriptEngineforJava中从数学中获得准确的结果?