Как создать несколько подпапок в шаблоне cookiecutter, используя шаблон подпапки - PullRequest
0 голосов
/ 02 февраля 2020

Я хочу создать шаблон для наших внутренних проектов.

Макет проекта содержит переменное количество подпапок.

Я хотел бы указать подпапки для создать внутри некоторого файла конфигурации. Например, у меня следующая структура папок:

my_project
|
|___ Tables
|  |
|  |__ Table1    <--- The folders I would like to create
|  |__ Table2    <---|
|  |__ Table3    <---|
|
|___ Other_folders

Файл конфигурации должен иметь что-то вроде этого:

{
  "prj_name": "my_project",
  "tables": ["Table1", "Table2", "Table3"]
}

Я попытался создать следующую структуру:

{{cookiecutter.prj_name}}
|
|___ Tables
|  |
|  |__ {% for table in cookiecutter.tables %}{{table}}{% endfor %}
|
|___ Other_folders

и добавил к cookiecutter.json упомянутую конфигурацию.

Я запустил cookiecutter, используя --no-input. В результате была получена только одна подпапка (Таблица1).

Также попытался использовать следующее имя папки: {% for table in cookiecutter.tables.keys() %}{{table}}{% endfor %} При следующей конфигурации:

{
  "prj_name": "my_project",
  "tables": {
    "table1": "table1",
    "table2": "table2",
    "table3": "table3"
  }
}

Вывод был все еще одна подпапка (Table2Table1Table3)

Есть идеи, как мне добиться желаемой структуры?

1 Ответ

0 голосов
/ 05 февраля 2020

Ну, в конце концов я написал python скрипт, который использует Функции пакета Cookiecutter с двумя папками шаблонов.

Одна папка шаблонов для основного проекта и одна папка шаблонов для папок таблиц .

И сценарий будет использовать функцию cookiecutter.main.cookiecutter для создания основного проекта и вложенных папок в al oop.

Я написал более подробный пост в блоге. Не уверен насчет правил размещения ссылок на личные блоги. Так что если кто-то в будущем хотел бы увидеть это, дайте мне знать в комментариях.

...