vars收集器和模板运行器。

c2c.template的Python项目详细描述


c2c.模板

支持的模板jinja,mako,template。

收集一些var并将其发送到模板引擎的工具。

支持的模板:JinjaMako

使用c2c-template--help获取命令行帮助。

VARS文件

vars收集器从yaml文件获取vars,如下所示:

extends:inherit.yamlvars:string_var:a stringint_var:42interpreted_var:__import__('datetime').date.today()combined_var:'Today:{interpreted_var:%Y-%m-%d}'facter_json:/usr/bin/facter --jsonfacter_yaml:/usr/bin/facter --yamlpi:console.log(Math.PI.toPrecision(3))obj:v1:1v2:'2'v3:[1,2,3]interpreted:python:-interpreted_varbash:-facter_json-facter_yamljson:-facter_jsonyaml:-facter_yamlnode:vars:["pi"]cmd:["node","-e"]update_path:-obj

inherit.yaml是另一个具有相同语法的文件,它将提供 初始变量。

vars部分是我们定义vars值、yaml文件的地方 支持键入,42将是整数。

用于解释某些变量的interpreted配置, pythonbashenvironjsonyaml是预定义的 解释器,node是自定义解释器。

update_path是一个“.”分隔的路径列表,这些路径将被更新(对于dict) 或附加(用于列表),而不是覆盖。子路径将被隐式添加。

我们可以重用预定义的变量并格式化它们(请参见combined_var), 见:str.format()

用法示例

在模板中解释变量

c2c-template --vars vars.yaml --engine jinja --files template.jinja

结果将存储在名为template的文件中。

获取变量

把变量放在外面是很有用的。

`c2c-template --vars vars.yaml --get-vars INT_VAR=int_var string_var`

将bash变量INT_VAR设置为42,将STRING_VAR设置为“字符串”。

获取配置文件

c2c-template --vars vars.yaml --get-config config.yaml string-var int-var combined-var

将创建名为config.yamlthis的文件:

string-var:a stringint-var:42combined-var:Today:2014-12-12

基于模板构建一组文件

创建以下vars文件(vars.yaml):

vars:var1:commoniter:-name:onevar2:first-name:twovar2:second

以及以下模板(template.jinja):

var1: {{ var1 }}
var2: {{ var2 }}

并运行以下命令:

c2c-template --vars vars.yaml --files-builder template.jinja {name}.txt iter

这将创建两个文件:

one.txt文件,具有:

var1: common
var2: first

two.txt文件,具有:

var1: common
var2: second

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
记录打印JAVA控制台客户端的SOAP消息   java camunda异常找不到id为空的任务任务   java如何将json文件转换为以下格式{“Description”:“Cmd是一个开源工具”,数据{“别名”:“xCmd”,“软件”:“xCmd”,“_raw”:“}   java在Hibernate期间清理连接池花费的时间太长   用Java实现基本FTP客户端的socket   Java生成文本文件格式的格式化报告   java hibernate createQuery vs get   TriggerBuilder<Trigger>类型中带有Schedule(ScheduleBuilder<SBT>)的java不适用于参数(可变触发器)   JavaSwing:GlassPane防止鼠标指针更改   java使用for循环创建上下三角形   maven“Java Home”在cmd中运行“mvn v”时不显示   java客户端无法联机连接到服务器   java面向对象程序设计问题   java如何按升序和降序对hashmap数据进行排序   java为什么JPanel从不调用reapint