允许轻松加载配置设置的库。
theatro-cfg-loader的Python项目详细描述
Cfg装载机
Cfg Loader是一个允许轻松加载配置设置的库。 它使用marshmallow将输入数据反序列化为目标格式的配置数据。
主要特点
- 使用marshmallow进行输入数据验证和自动处理
- 在输入数据中替换环境变量(在docker compose variable substitution syntax之后)
- 从.yaml文件加载配置
要求
Python>;=3.6
一个简单的例子
>>>fromcfg_loaderimportConfigSchema,BaseConfigLoader>>>frommarshmallowimportfields# Declare your configuration schema>>>classMyConfigSchema(ConfigSchema):...setting1=fields.Str()...setting2=fields.Int(required=True)...setting3=fields.Float(missing=13.2)# Declare mapping to substitute environment variable>>>substitution_mapping={'FILE_PATH':'file'}# Initialize config loader>>>my_config_loader=BaseConfigLoader(MyConfigSchema,substitution_mapping=substitution_mapping)# Load configuration>>>config=my_config_loader.load({'setting1':'/home/folder/${FILE_PATH?:file path required}','setting2':'4'})>>>config=={'setting1':'/home/folder/file','setting2':4,'setting3':13.2}True# Invalid input data>>>my_config_loader.load({'setting1':'/home/folder/${FILE_PATH?:file path required}','setting3':13.4})Traceback(mostrecentcalllast):...cfg_loader.exceptions.ValidationError:{'setting2':['Missing data for required field.']}>>>my_config_loader.load({'setting2':12,'setting3':'string'})Traceback(mostrecentcalllast):...cfg_loader.exceptions.ValidationError:{'setting3':['Not a valid number.']}# Variable substitution invalid>>>my_config_loader.load({'setting2':'${UNSET_VARIABLE?Variable "UNSET_VARIABLE" required}'})Traceback(mostrecentcalllast):...cfg_loader.exceptions.UnsetRequiredSubstitution:Variable"UNSET_VARIABLE"required
文档
完整的文档可在https://cfg-loader.readthedocs.io/en/stable/上找到。
- 项目
标签: