Код:
from jinja2 import Template
print(Template('{{ "2016.10.26_cc37528" | truncate(11, True) }}').render())
print(Template('{{ "2016.10.26_cc37528" | truncate(12, True) }}').render())
print(Template('{{ "2016.10.26_cc37528" | truncate(13, True) }}').render())
print(Template('{{ "2016.10.26_cc37528" | truncate(14, True) }}').render())
2016.10....
2016.10.2...
2016.10.26...
2016.10.26_...
2016.10....
2016.10.2...
2016.10.26_cc37528
2016.10.26_cc37528
{{ "2016.10.26_cc37528" | truncate(13, True) }}
Проверьте, не вызвано ли это аргументом leeway
. Значение по умолчанию для него недавно изменилось.
https://github.com/pallets/jinja/blob/master/jinja2/filters.py#L467
Это. Установка для leeway значения 0 устраняет проблему. Я бы сказал, что это нарушение POLA при использовании коротких струн.
Да, согласен @ AMDmi3 . Мы просто затронули и эту проблему.
Проблема в том, что у Jinja есть самоуверенная реализация, несовместимая с использованием в качестве движка шаблонов общего назначения.
Я тоже обнаружил эту проблему и потратил несколько часов на поиск ошибки. Очевидно, что новые параметры должны быть обратно совместимы, а значение по умолчанию должно быть leeway = 0
.
Кто бы ни начал использовать новую опцию leeway
они будут знать, что она существует, и будут использовать то значение, которое им нравится. Тем, кто не знает о новом параметре, не нужно будет менять свой код ...
Самый полезный комментарий
Это. Установка для leeway значения 0 устраняет проблему. Я бы сказал, что это нарушение POLA при использовании коротких струн.