多层次特异性的级联设置
settingscascade的Python项目详细描述
简介
让用户自定义应用程序的最常用方法之一 工作是使用配置文件。这意味着很多项目都结束了 包括要在配置值中读取的实现,请指定 默认值,控制何时查找哪些值,并强制执行 某种模式。
设置scascade旨在处理此场景。尽管它可以 在简单的情况下使用,当你需要拉进来的时候,它真的会发光 来自各种来源的值,有一组丰富的默认值,以及 赋予用户在不同级别配置重写的灵活性。 它使用的模型是css,模仿css使用选择器的方式 从不同的特异性层次级联设置。你的用户 指定与css中相同的规则块-
# Each rule block has a selector, using CSS semantics# this block is for a task element with the class "default"task.default:command:"echohello"on_complete:"echoworld"# You can specify top level settings as well for a final# level of fallbackproject_name:"myproject"
然后您的应用程序可以使用配置
# Task represents an element (like a div or a in HTML).# you can specify what values are valid for this element typeclassTask(SettingsSchema):_name_=taskcommand:stron_complete:strconfig=SettingsManager(yaml.load("config.yml"),[Task])# In your code, you can pull an element from the settingsmanager# object and find the rules that apply. This is like an element# <task class="default"></task>task_config=config.task(class="default")run_task(command=task_config.command,on_complete=task_config.on_complete,name=config.project_name,)
安装
您可以从pypi安装settingscascade-
pip install settingscascade