jinja2 выравнивает строки в два столбца - PullRequest
0 голосов
/ 25 апреля 2019

Я хотел бы создать шаблон jinja для генерации sql, и я хотел бы, чтобы он выровнял имена столбцов и типы данных для удобства чтения, вот так:

CREATE TABLE test_destination_table_csv (
      col1              STRING
     ,asdfg             INT
     ,somethingelse     DOUBLE
     ,datestr           TIMESTAMP
)

Обычно я делаю это с помощью вкладок в редакторе, но, похоже, это не работает в моем шаблоне jinja.

Что я получу, это:

CREATE TABLE test_destination_table_csv (
      col1          STRING
    , asdfg         INT
    , somethingelse         DOUBLE
    , datestr           TIMESTAMP
)

используя следующий шаблон:

CREATE TABLE {{ table_name }}_csv (
 {% for col, dtype in columns %}
    {{ "," if not loop.first else " " }} {{col}}   {{ dtype }}
 {% endfor %}
)

Я пытался добавить что-то вроде следующего:

{{ " " * max(2,(20 - len(col))) }}

но Джинджа не понял этого. Я думал, что Jinja должен был поддерживать произвольный код на Python, как некоторые другие языки шаблонов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...