Игнорировать ошибки, оставив код без изменений, используя Jinja - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь отобразить файл Jinja в скрипте Python.В файле есть три типа инструкций -

  1. типичные для циклов
  2. инструкции по импорту
  3. запуск макросов из импорта

1) ВсеЯ хочу, чтобы петли были сплющены.2) Чтобы обойти неудачные операции импорта, я создал подкласс forgivingLoader.3) Однако у меня возникают проблемы с импортом, когда он вызывается.Я пробовал 2 разных способа - подкласс unDefined, но {{ abc.callf("arg1", "arg2") }} заменяется на arg1,arg2, так как unDefined не имеет доступа к вызывающей функции, только аргументы.В качестве альтернативы, когда я использую DebugUndefined (который также является подклассом unDefined), поскольку импорт молча завершился неудачей, он не может найти abc.callf

Ниже приведен пример ввода и предполагаемый вывод, на который я нацеливаюсь.Может ли кто-нибудь помочь мне здесь?Спасибо!

Ввод:

Starting  
{% import "abc.yml" as abc %}  
  {{ abc.callf("arg1", "arg2") }}  
{% set forloopvar = ["var1", "var2"] %}  
{% for var in forloopvar %}  
  {{ var }}here  
{% endfor %}  
the end

Ожидаемый результат:

Starting
{% import "abc.yml" as abc %}
  {{ abc.callf("arg1", "arg2") }}
  var1here
  var2here
the end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...