Skip to main content

生成配置文件的实用程序

项目描述

这个项目的诞生是为了在资源太有限而无法运行 LDAP 服务器的机器上生成 dhcp/dns 配置文件。

它的基本作用是:

  • 从目录中加载一堆文件,并使其在字典中可访问。

  • 通过一些模板引擎渲染一堆文件,传递上下文。

构建状态

安装

生产版本:

$ pip install config-gen

开发版:

$ pip install -e git+git@github.com:rshk/config-gen.git#egg=config-gen

或者只是从源目录运行python setup.py install 。

尝试

开始使用 config-gen 的最快方法是快速启动脚本,它负责在当前目录中创建所有需要的目录和 Makefile:

$ confgen-quickstart
$ make
$ cat build/example.html
<h1>Hello, world!</h1>

它是如何工作的?

以一种非常简单的方式:templates目录中的所有文件都内置到build中的文件中,去掉了原始扩展名。例如:

templates/hello.jinja -> build/hello
templates/hello.html.jinja -> build/hello.html
templates/example.html.jinja -> build/example.html

渲染文件的上下文是从数据目录中的文件构建的。通过读取文件扩展名,与该目录中的每个文件关联一个“阅读器”。

然后,一个与文件同名(无扩展名)的上下文变量将在模板中可用。

包括的读者

读取器用于读取数据文件并使其在模板上下文中可访问。

它们的名称(不带扩展名)在数据目录中必须是唯一的 ,以防止冲突。

txt ( config_gen.readers.read_txt.txt_reader )

加载纯文本文件,直接返回其原始内容。

py ( config_gen.readers.read_py.PyFileAccessor )

加载并返回一个 Python 模块。

然后可以从模板完全访问模块内容。

json ( config_gen.readers.read_json.json_reader )

读取 JSON 文件并直接返回。然后可以像往常一样从模板中访问它。

csv ( config_gen.readers.read_csv.csv_reader )

将逗号分隔值文件读入元组列表。

CSV 文件必须以逗号分隔(不支持分号)。包含逗号的字段必须用双引号引起来。

ini ( config_gen.readers.read_ini.IniFileReader )

配置/.ini 文件的阅读器。

文件将可通过以下方式访问:

{{ filename.section.option }}

或者,对于包含点的部分/选项:

{{ filename["my.sect.ion"]["my.opt.ion"] }}

模板引擎

为了将模板渲染到配置文件中,我们使用了很棒的Jinja2 模板引擎。

我曾经考虑过允许可插入的模板引擎,但 Jinja 的厉害让我重新考虑了这个决定 :)

(顺便说一句,如果您绝对需要对另一个模板引擎的支持,请告诉我,以及为什么..)

测试

要运行完整的测试套件:

$ python -m unittest discover -s tests

要仅在特定子模块中运行测试:

$ python -m unittest tests.test_something

待办事项列表

  • 添加对 XML/YAML 文件的支持

  • 添加对数据库连接的支持(sqlite、mysql、postgres、mongo..)

  • 通过某种配置文件添加对“自定义案例”的支持 * 例如。用于分号分隔的 CSV 文件

  • 添加对导入外部阅读器的支持(添加--load选项?)

  • 编写缺失的测试用例

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

Config-gen-1.0-alpha6.tar.gz (7.1 kB 查看哈希

已上传 source