一个更令人愉快的环境变量getter和setter-用于python。

envjo的Python项目详细描述


envjoyBuild StatusPyPI version

一个更有趣的环境变量getter和setter-for python。

简介

环境变量获取和设置有点棘手。这是一个不太烦人的库,它使获取和设置环境变量变得更容易,并且可以选择更智能的数据类型解释。

安装

使用pip安装

$ pip install envjoy

使用

非常基本的example

from__future__importprint_function# Optional: Python 2 support for `env.print`fromenvjoyimportenv# non-casted access - never throws annoying errorsenv.FOOenv.FOO=1delenv.FOOenv.FOO=1# casted access - never throws annoying errorsdelenv['FOO']print('---')print(env['FOO'])# => Noneenv['FOO']=1# set value without complaints (casted to string)print(env['FOO'])# => "1"print(env['FOO'])# => 1print('---')env['FOO']=Noneprint(env['FOO'])# => ''print(env['FOO',bool])# => Falseprint(env['FOO',int])# => 0print(env['FOO',float])# => 0.0print(env['FOO',str])# => ''print(env['FOO',tuple])# => ()print(env['FOO',list])# => []print(env['FOO',dict])# => {}print('---')env['FOO']=Trueprint(env['FOO'])# => 'True'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => 1print(env['FOO',float])# => 1.0print(env['FOO',str])# => 'true'print(env['FOO',tuple])# => (True)print(env['FOO',list])# => [True]print(env['FOO',dict])# => {}print('---')env['FOO']='true'# => 'true'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => 1print(env['FOO',float])# => 1.0print(env['FOO',str])# => 'true'print(env['FOO',tuple])# => (True)print(env['FOO',list])# => [True]print(env['FOO',dict])# => {}print('---')env['FOO']=0print(env['FOO'])# => '0'print(env['FOO',bool])# => Falseprint(env['FOO',int])# => 0print(env['FOO',float])# => 0.0print(env['FOO',str])# => '0'print(env['FOO',tuple])# => (0)print(env['FOO',list])# => [0]print(env['FOO',dict])# => {}print('---')env['FOO']='0'print(env['FOO'])# => '0'print(env['FOO',bool])# => Falseprint(env['FOO',int])# => 0print(env['FOO',float])# => 0.0print(env['FOO',str])# => '0'print(env['FOO',tuple])# => (0)print(env['FOO',list])# => [0]print(env['FOO',dict])# => {}print('---')env['FOO']=1print(env['FOO'])# => '1'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => 1print(env['FOO',float])# => 1.0print(env['FOO',str])# => '1'print(env['FOO',tuple])# => (1)print(env['FOO',list])# => [1]print(env['FOO',dict])# => {}print('---')env['FOO']='1'print(env['FOO'])# => '1'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => 1print(env['FOO',float])# => 1.0print(env['FOO',str])# => '1'print(env['FOO',tuple])# => (1)print(env['FOO',list])# => [1]print(env['FOO',dict])# => {}print('---')env['FOO']=-1print(env['FOO'])# => '-1'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => -1print(env['FOO',float])# => -1.0print(env['FOO',str])# => '-1'print(env['FOO',tuple])# => (-1)print(env['FOO',list])# => [1]print(env['FOO',dict])# => {}print('---')env['FOO']='-1'print(env['FOO'])# => '-1'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => -1print(env['FOO',float])# => -1.0print(env['FOO',str])# => '-1'print(env['FOO',tuple])# => (-1)print(env['FOO',list])# => [1]print(env['FOO',dict])# => {}print('---')env['FOO']=12.34print(env['FOO'])# => '12.34'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => 12print(env['FOO',float])# => 12.34print(env['FOO',str])# => '12.34'print(env['FOO',tuple])# => (12.34)print(env['FOO',list])# => [12.34]print(env['FOO',dict])# => {}print('---')env['FOO']='12.34'print(env['FOO'])# => '12.34'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => 12print(env['FOO',float])# => 12.34print(env['FOO',str])# => '12.34'print(env['FOO',tuple])# => (12.34)print(env['FOO',list])# => [12.34]print(env['FOO',dict])# => {}print('---')env['FOO']=-12.34print(env['FOO'])# => '-12.34'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => -12print(env['FOO',float])# => -12.34print(env['FOO',str])# => '-12.34'print(env['FOO',tuple])# => (-12.34)print(env['FOO',list])# => [-12.34]print(env['FOO',dict])# => {}print('---')env['FOO']='-12.34'print(env['FOO'])# => '-12.34'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => -12print(env['FOO',float])# => -12.34print(env['FOO',str])# => '-12.34'print(env['FOO',tuple])# => (-12.34)print(env['FOO',list])# => [-12.34]print(env['FOO',dict])# => {}print('---')env['FOO']='foo bar baz 1 2 3'print(env['FOO'])# => 'foo bar baz 1 2 3'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => 123print(env['FOO',float])# => 123.0print(env['FOO',str])# => 'foo bar baz 1 2 3'print(env['FOO',tuple])# => ('foo bar baz 1 2 3')print(env['FOO',list])# => ['foo bar baz 1 2 3']print(env['FOO',dict])# => {}print('---')env['FOO']='foo,bar,baz,1,2,3'print(env['FOO'])# => 'foo,bar,baz,1,2,3'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => 123print(env['FOO',float])# => 123.0print(env['FOO',str])# => 'foo,bar,baz,1,2,3'print(env['FOO',tuple])# => ('foo', 'bar', 'baz')print(env['FOO',list])# => ['foo', 'bar', 'baz']print(env['FOO',dict])# => {0: 'foo', 1: 'bar', 2: 'baz'}print('---')env['FOO']=('foo','bar','baz',1,2,3)print(env['FOO'])# => '(foo,bar,baz,1,2,3)'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => 123print(env['FOO',float])# => 123.0print(env['FOO',str])# => '(foo,bar,baz,1,2,3)'print(env['FOO',tuple])# => ('foo', 'bar', 'baz')print(env['FOO',list])# => ['foo', 'bar', 'baz', 1, 2, 3]print(env['FOO',dict])# => {} # TODO:  {0: 'foo', 1: 'bar', 2: 'baz', 3: 1, 4: 2, 5: 3}print('---')env['FOO']=['foo','bar','baz',1,2,3]print(env['FOO'])# => '[foo,bar,baz,1,2,3]'print(env['FOO',bool])# => Trueprint(env['FOO',int])# => 123print(env['FOO',float])# => 123.0print(env['FOO',str])# => '[foo, bar, baz, 1, 2, 3]'print(env['FOO',tuple])# => ('foo', 'bar', 'baz', 1, 2, 3)print(env['FOO',list])# => ['foo', 'bar', 'baz', 1, 2, 3]print(env['FOO',dict])# => {} # TODO:  {0: 'foo', 1: 'bar', 2: 'baz', 3: 1, 4: 2, 5: 3}print('---')env['FOO']={'foo':1,'bar':2,'baz':3}print(env['FOO'])# => '{foo:1,bar:2,baz:3}' # REVIEW: handle nested jsonprint(env['FOO',bool])# => Trueprint(env['FOO',int])# => 123print(env['FOO',float])# => 123.0print(env['FOO',str])# => '{foo: 1, bar: 2, baz: 3}'print(env['FOO',tuple])# => ({0: 'foo', 1: 'bar', 2: 'baz', 3: 1, 4: 2, 5: 3})print(env['FOO',list])# => [{0: 'foo', 1: 'bar', 2: 'baz', 3: 1, 4: 2, 5: 3}]print(env['FOO',dict])# => {'foo': 1, 'bar': 2, 'baz': 3}# etc.print('---')env.inspect()print('---')env.print()print('---')

测试

克隆源代码:

$ make install
<>运行^ ^ {STR 1 } $多彩测试>,只使用本地环境(依赖沙箱向上):

$ make test

使用multi environment(使用tox)运行less colorgy测试

$ make test-tox

关于

这个项目主要是在缺乏现有的替代方案的情况下使用的,在我们的工作中使用^ {STR 1 } $Markable.ai在各种编程环境之间有共同的代码约定,其中{STR 1 } $ Python (研究,CV,AI)被大量使用。

许可证

在麻省理工学院的许可下发布。

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

推荐PyPI第三方库


热门话题
如何在Java和Javascript之间共享常量   c#无法使用Gson反序列化字节[]   如果字符串是实十进制数字,则在Java中仅显示十进制数字   与Android Studio的java FireBase同步失败   web应用程序的Java Oracle数据库更改通知问题   数组中缺少整数的java嵌套循环   zos在z/os上以TOD格式(一天中的时间)转换Java时间戳   java JAXB未根据注释生成XML(JDK 1.7)   java使用Twitter4j和Geolocation查找在该地区发布推文的用户,但如何获取用户ID?   在Libgdx中实现简单运动模糊的java意外结果   java在Android数据库中插入另一个EditText值?   java标准偏差数组(我的算法错误)   java如何修复M1 Mac的Ant javascript标记?   java遍历树标记值的长度   java理解Springboot中的Cron,自动发送电子邮件   java如何将“Data.Json”文件从资产保存到内部存储器,然后将其用于读/写   java代码在编写FirstDuplicate方法时会遇到时间限制问题   java将HTML转换为PDF并将其添加到段落中   javascript css()未设置正文标记的背景属性