Yaml项目加载程序
YAML-Project-Loader的Python项目详细描述
yaml项目配置读取器
谁需要这个模块?
任何开发必须通过文本文件配置的应用程序的开发人员。如果您可以将一组这样的配置称为“项目”,则此模块可能适合您。
示例
- 您的应用程序是一个代码生成器。
- 应用程序的用户应该能够决定如何为不同的项目生成代码。
- 它可以为多种语言自动生成代码。您决定每种语言都是软件的plugin。
- 根据不同的条件,代码必须包含或不包含某些内容(注释、优化、详细内容…)。似乎您有不同的上下文
- 您希望有一种简单的方法来定义应用程序的项目与所有可能的配置有关的内容,例如:
- 用户希望在一个项目中生成用于调试和发布的Matlab和C代码。对于调试,它还必须生成开发文档。
- 该用户还希望生成python、node.js和dockerfiles,以便开发和发布。每个上下文的展开凭据和url都不同。
什么是项目?
在开发应用程序时,有时值得将project定义为我们的软件将使用的实体。
项目是一组具有已知格式并排列在一组已知文件夹中的文件。
它由保存此类文件结构的根目录的路径定义。
什么提供了这个模块?
- 这个模块提供了一个约定关于如何安排项目文件和一个python api来读取这组文件。
- 它将应用一种逻辑,说明插件和上下文配置必须如何合并到一个single配置对象中。
这个模块没有提供什么?
此模块不会告诉您在项目中需要哪些配置属性,或者哪些插件或上下文。
您必须决定plugins + contexts
的结构是否适合您的软件,并决定在哪里放置什么。
然后,使用该模块,您可以调用一个api函数并获得一个完整的对象,在这里您可以读取所需的所有属性。
上下文
上下文是一组与应用程序的不同运行方式相关的条件。
想想经典开发中的debug
或release
。或推出时development
和production
。
插件
插件是应用程序的可选部分,需要在每个项目中配置。 在一个项目中,插件配置在大多数情况下是相同的。
考虑一个报表生成器插件;您的应用程序对项目执行任何逻辑,并且可以选择生成报表。 这样的报告需要一种格式,一个输出文件夹,也许一些约定,一种语言……这些都是插件配置,它们几乎不会改变,不管上下文如何。
覆盖
上下文有时可以覆盖特定任务的插件配置。这并不常见,但是这个模块提供了一个简单的方法来实现这一点。
配置
配置是一个上下文和一个或多个插件配置的混合。 您的应用程序可能会:
- 询问项目中定义的配置
- 从中选择一个
- 调用yamlproject api从所选配置检索合并的配置
- 将合并对象传递给逻辑,以便可以使用值修改行为
本模块
此模块从定义项目配置的一组yaml文件在内存中创建结构。 项目是一个抽象的概念,建模为一组文件和文件夹,这些文件和文件夹将由某些软件读/写。 项目的结构是:
- 在
root.yaml
定义的属性的根集。例如:名称、说明等。 - 一组插件配置。处理项目的应用程序可以有插件。项目配置提供