更好的环保剂。
easy-env的Python项目详细描述
在env vars上实现公共操作,例如读取布尔值和整数。
安装
pip install easy_env
用法
importosimporteasy_env# setup env varssetup_vars=[('int','42'),('float','42.9'),('bool','yes'),('str','foo bar'),('bytes','Zm9v'),# base64 encoded b'foo'('list','1,2,3'),('list2','4 5 6'),]forvar,valueinsetup_vars:os.environ[var]=value# get varasserteasy_env.get_int('int')==42asserteasy_env.get_float('float')==42.9asserteasy_env.get_bool('bool')isTrueasserteasy_env.get_str('str')=='foo bar'asserteasy_env.get_bytes('bytes')==b'foo'asserteasy_env.get_list('list')==['1','2','3']# get w/ defaultasserteasy_env.get_int('NEW_VAR',5)==5# get w/o defaultasserteasy_env.get_int('NEW_VAR')isNone# get w/o default and raise exceptiontry:easy_env.get_int('NEW_VAR',raise_error=True)assertFalseexceptKeyError:assertTrue# get list of integersasserteasy_env.get_list('list',item_factory=int)==[1,2,3]# get list w/ another separatorasserteasy_env.get_list('list2',separator=' ')==['4','5','6']# detect type based on type of defaultasserteasy_env.get('int',1)==42asserteasy_env.get('int')=='42'asserteasy_env.get('float',1.0)==42.9asserteasy_env.get('bool',False)isTrueasserteasy_env.get('bytes',b'')==b'foo'asserteasy_env.get('list2',default=[],separator=' ')==['4','5','6']# set inteasy_env.set_int('int_var',42)assertos.getenv('int_var')=='42'# set floateasy_env.set_float('float_var',42.0)assertos.getenv('float_var')=='42.0'# set booleasy_env.set_bool('bool_var',True)assertos.getenv('bool_var')=='1'easy_env.set_bool('bool_var',False)assertos.getenv('bool_var')=='0'# set stringeasy_env.set_str('str_var','foo bar')assertos.getenv('str_var')=='foo bar'# set byteseasy_env.set_bytes('bytes_var',b'foo')assertos.getenv('bytes_var')=='Zm9v'# set listeasy_env.set_list('list_var',[1,2,3])assertos.getenv('list_var')=='1,2,3'easy_env.set_list('list_var',[1,2,3],separator=' ')assertos.getenv('list_var')=='1 2 3'easy_env.set_list('list_var',[1,2,3],serializer=lambdax:str(x-1))assertos.getenv('list_var')=='0,1,2'