为大型应用程序加载配置字典
yakonfig的Python项目详细描述
yak on fig
==
另一个配置管理库,或图上的yak
yakonfig在应用程序启动时解析yaml配置文件,并将该配置的一部分提供给应用程序中的模块。它适用于每个模块都需要单独配置的多模块应用程序。yakofig库合并应用程序提供的默认配置、用户提供的配置文件和命令行选项,以生成统一的全局配置。
----
>使用yakofig的应用程序通常创建一个“argparse.argumentparser”对象并调用“yakofig.parse args()`”,给出它是可配置模块或其他项的列表。典型的应用程序设置如下:
``python
import-argparse
import-dblogger
import-kvlayer
import-yakofig
def-main():
parser=argparse.argumentparser()
yakofig.parse-args(parser,[yakofig,dblogger,kvlayer])
…
模块可以提供额外的命令行参数。
传递给“parse_args()”的模块列表是一个类似于“yakonfig.configurable”对象的对象列表。它们可以是实际的对象,通常是工厂,也可以是碰巧包含相同名称的类甚至python模块。顶级python模块可能如下所示:
`` python
导入一个_包。子模块
17}
```
``子模块``列表中包含的对象具有相同的格式。运行`./my_program.py--dump config=default``将打印出一个yaml文件:
``yaml
a_包:
random_number:17
子模块:…
```
一个典型的模式是创建一个工厂对象,其中包含许多可配置的对象,例如数据处理管道中的阶段。“yakonfig.factory.autofactory”类支持此模式。由工厂构建的对象不声明任何配置元数据;相反,yakonfig通过检查对象的构造函数或函数的参数列表来确定配置名称和默认配置。工厂类本身需要包含标准的配置元数据。
`` python
类a阶段(对象):
def初始(self,随机数=17):
self.random\u number=random\u number
def\u call\uu(self):
print self.random\u number
class stage factory(yakonfig.factory.autofactory):
config\u name='stage\u factory'
auto config=[a_stage]
def\uu call\uu(self):
stage=self.create(a_stage)
stage()。
==
另一个配置管理库,或图上的yak
yakonfig在应用程序启动时解析yaml配置文件,并将该配置的一部分提供给应用程序中的模块。它适用于每个模块都需要单独配置的多模块应用程序。yakofig库合并应用程序提供的默认配置、用户提供的配置文件和命令行选项,以生成统一的全局配置。
>使用yakofig的应用程序通常创建一个“argparse.argumentparser”对象并调用“yakofig.parse args()`”,给出它是可配置模块或其他项的列表。典型的应用程序设置如下:
``python
import-argparse
import-dblogger
import-kvlayer
import-yakofig
def-main():
parser=argparse.argumentparser()
yakofig.parse-args(parser,[yakofig,dblogger,kvlayer])
…
模块可以提供额外的命令行参数。
传递给“parse_args()”的模块列表是一个类似于“yakonfig.configurable”对象的对象列表。它们可以是实际的对象,通常是工厂,也可以是碰巧包含相同名称的类甚至python模块。顶级python模块可能如下所示:
`` python
导入一个_包。子模块
17}
```
``子模块``列表中包含的对象具有相同的格式。运行`./my_program.py--dump config=default``将打印出一个yaml文件:
``yaml
a_包:
random_number:17
子模块:…
```
一个典型的模式是创建一个工厂对象,其中包含许多可配置的对象,例如数据处理管道中的阶段。“yakonfig.factory.autofactory”类支持此模式。由工厂构建的对象不声明任何配置元数据;相反,yakonfig通过检查对象的构造函数或函数的参数列表来确定配置名称和默认配置。工厂类本身需要包含标准的配置元数据。
`` python
类a阶段(对象):
def初始(self,随机数=17):
self.random\u number=random\u number
def\u call\uu(self):
print self.random\u number
class stage factory(yakonfig.factory.autofactory):
config\u name='stage\u factory'
auto config=[a_stage]
def\uu call\uu(self):
stage=self.create(a_stage)
stage()。