带类型的环境变量解析器!
envreader的Python项目详细描述
嫉妒者
环境变量类型解析器!对!在
每次创建新服务时,都需要一些类来接收、验证和存储环境变量。在
有了这个包裹,一切都会变得简单有趣。在
只需创建一个带类型字段的类。。。就这样。在
要求
Python3.6及更高版本。没有任何其他依赖项。在
安装
pip install envreader
简单用法
fromenvreaderimportEnvReaderclassMyEnv(EnvReader):PATH:strNONE_EXIST:int=1234# Variable with default valuee=MyEnv()print(e.PATH)# /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbinprint(e.NONE_EXIST)# 1234
与变换函数一起使用
我不想做一个像奇妙的Pydantic这样的大型验证库。因此,默认情况下,EnvReader只支持简单类型(bool、str、int、float)。这在大多数情况下已经足够了。在
转换函数允许在更复杂的情况下使用环境读取器。在
^{pr2}$使用静态方法作为转换函数。
您可以将所有的helper函数存储在同一个类中。但别忘了添加@staticmethod decorator。在
fromtypingimportListfromenvreaderimportEnvReader,FieldclassMyEnv(EnvReader):@staticmethoddeftrans(x:str)->List[str]:returnx.split(':')PATH:List[str]=Field(transform=trans)e=MyEnv()print(e.PATH)# ['/usr/local/bin', '/usr/bin', '/bin', '/usr/sbin', '/sbin']
使您的环境变量自我记录。
所有好的应用程序都需要文档,对吗?在
fromenvreaderimportEnvReader,FieldclassMyEnv(EnvReader):PATH:str=Field("/sbin",description="Application path",example="/usr/bin:/bin:/usr/sbin:/sbin")e=MyEnv()print(e.help())# PATH# Application path# Example: /usr/bin:/bin:/usr/sbin:/sbin# Default: /sbin
错误处理?简单。
importsysfromenvreaderimportEnvReader,EnvMissingErrorclassMyEnv(EnvReader):SOME_VAR:strtry:e=MyEnv()exceptEnvMissingErrorase:print(f"Missing required env var {e.field}")sys.exit(-1)# Missing required env var SOME_VAR享受吧!
- 项目
标签: