Cookiecutter генерирует один вывод для каждого значения словаря на входе и рендеринга - PullRequest
0 голосов
/ 13 октября 2018

Я начал использовать 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"}
    }
    }
}

И наличие IN в файле шаблона с именем (приблизительно) {{cookiecutter.entities [ключ] .name}}. txt:

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

Мой желаемый вывод - 2 файла с именем:

customer.txt
order.txt

С соответствующим содержимым для каждого элемента, отображаемым в правильномfile (в данном случае это просто атрибут put_required в одиноком поле).

Мне кажется, что это сценарий использования ловушки / сценария для создания шаблонных файлов с шаблонными именами до фактического запускаng cookiecutter (такой, что выходные файлы customer.txt и order.txt создаются «временно» в каталоге шаблонов, а затем запускаются через средство визуализации.

В настоящее время я все еще использую cookiecutter из командной строки, но яЯ был бы рад переключиться на API Python напрямую, если это требуется, чтобы сделать то, что я хочу сделать здесь.

...