带类型的环境变量解析器!

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
享受吧!

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

推荐PyPI第三方库


热门话题
java如何在mongodb中获取用户有权访问的数据库列表?   基于契约和类不变量的java设计   java我的代码有什么问题,似乎是正确的,但事实并非如此   java Android初学者:布局按钮和文本   400错误Paypal令牌API与Java(HttpURLConnection)   为什么Java从socket中随机读取数据,而不是整个消息?   如果我调用scanner,我会扫描两次。先是下一个,然后是扫描仪。下一个   如果消息发送失败,java ActiveMQ/JMS不重试   java有没有类似于dynaTrace的开源框架?   java Android:获取zip中的文件数(使用存储卷/存储访问框架)   java无法将流图像解码为片段   java如何修复Jenkins插件中的“此位置的预期stackmap帧”   java如何使用javac编译器编译AndroidManifest。xml文件?