跳转到主要内容

生成配置文件的实用工具

项目描述

该项目诞生于在资源不足以运行LDAP服务器的计算机上生成dhcp/dns配置文件的需求。

它的基本功能是

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

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

Build status

安装

生产版本

$ 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

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

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

包含的读取器

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

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

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 查看哈希值)

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面