Cookiecutter在输入和渲染中为每个字典值生成一个输出

时间:2018-10-13 13:09:43

标签: python cookiecutter

我已经开始使用cookiecutter来生成项目树骨架,并且已经遇到了我似乎找不到答案的“简单”用例。

我在cookiecutter.json中有一个嵌套的字典,类似于:https://cookiecutter.readthedocs.io/en/latest/advanced/dict_variables.html我想遍历字典中的项目并呈现每个项目的属性。

但是,我的用例说字典中的每个元素都是一个不同的文件,并且模板化的输出文件应使用项目的内容呈现。

例如,如果我有:

{
"apiname": "API host root",
"project_slug": "repo/context name",
"context" : "context name",
"full_name": "Your name",
"email": "Your address email (eq. you@example.com)",
"release_date": "{% now 'local' %}",
"version": "0.1.0",
"_extensions": ["jinja2_time.TimeExtension"], 
"entities" : {
    "customer" : {
        "id" : {"name": "customer", "search_types" : ["eq"]},
        "name" : {"put_required" : "False"}
    },
    "order" : {
        "id" : {"name": "order", "search_types" : ["eq"]},
        "po" : {"put_required" : "True"}
    }
    }
}

并包含一个名为(大约){{cookiecutter.entities [key] .name}}。txt的模板文件:

{{cookiecutter.entities[key].put_required}}

我想要的输出是2个文件,名为:

customer.txt
order.txt

使用正确文件中呈现的每个项目的适当内容(在这种情况下,只有一个孤独字段中的put_required属性)。

我觉得这是一个钩子/脚本用例,用于在实际运行cookiecutter之前生成具有模板名称的模板文件(这样,在模板目录中“临时”创建了customer.txt和order.txt输出,然后运行渲染器。

当前,我仍在命令行中使用cookiecutter,但如果需要这样做,我很乐意直接切换到python api。

0 个答案:

没有答案