映射数据类和环境变量的库
envclasses的Python项目详细描述
| |
___ _ ____ _____| | __ _ ___ ___ ___ ___
/ _ \ '_ \ \ / / __| |/ _` / __/ __|/ _ \/ __|
| __/ | | \ V / (__| | (_| \__ \__ \ __/\__ \
\___|_| |_|\_/ \___|_|\__,_|___/___/\___||___/
envClass是一个位于dataClass之上的元编程库。 一旦在数据类中指定了envClass decorator, 它将生成dunder函数,该函数从 环境变量。这个功能非常有用 在一个像你想要覆盖现有配置的情况下 对于由环境变量中定义的应用程序。
要求
python=3.6.0
安装
从pypi安装
pip install envclasses
从github安装开发版本
pip install git+https://github.com/yukinarit/WebSocketSample.git
用法
创建hoge实例
fromtypingimportList,Dictfromdataclassesimportdataclass,fieldfromenvclassesimportenvclass,load_env@envclass@dataclassclassHoge:i:ints:strf:floatb:boollst:List[int]=field(default_factory=list)dct:Dict[str,float]=field(default_factory=dict)# Create an instance.hoge=Hoge(i=10,s='hoge',f=0.1,b=False)# Load values from environment variables.load_env(hoge,prefix='HOGE')print(hoge)
运行
$ python hoge.py
Hoge(i=10, s='hoge', f=0.1, b=False, lst=[], dct={})
通过环境变量覆盖hoge值
$ exportHOGE_I=20 $ exportHOGE_S=hogehoge $ exportHOGE_F=0.2 $ exportHOGE_B=true $ exportHOGE_DCT="{key: 100.0}" $ exportHOGE_LST="[1, 2, 3]" $ python hoge.py
Hoge(i=20, s='hogehoge', f=0.2, b=True, lst=[1, 2, 3], dct={'key': 100.0})