配置器
miniconfig的Python项目详细描述
微型配置
在应用程序中进行配置阶段。 (几乎棱锥体的配置器对象的微小版本)
# yourapp/__init__.pyfromminiconfigimportConfiguratorCoreclassConfigurator(ConfiguratorCore):defmake_app(self):self.commit()returnApp(self.settings)classApp:def__init__(self,settings):self.settings=settings
YourApp/plugina.py
classA:passdefincludeme(config):config.settings["A"]=A()
YourApp/pluginb.py
classB:passdefincludeme(config):config.include(".pluginA")config.settings["B"]=B()
应用程序用户
fromyourappimportConfiguratorconfig=Configurator()config.include("yourapp.pluginB")app=config.make_app()print(app.settings.keys())# dict_keys(['A', 'B'])
添加指令
指令意味着配置器的动作。
如何定义和使用指令
defhello(config,name):defregister():assertconfig.settings["foo"]=="foo"print("hello: {}".format(name))discriminator=(hello,name)config.action(discriminator,register)config=Configurator(settings={"foo":"foo"})config.add_directive("hello",hello)config.hello("foo")
还支持使用虚线名称定义指令
## foo/bar.pydefhello(config):defregister():print("hai")discriminator=id(object())# xxxconfig.action(discriminator,register)## yourappconfig=Configurator()config.add_directive("hello","foo.bar:hello")config.hello()config.commit()# hai
0.3.0
- 支持冲突检查(但实际需要鉴别器)