Código:
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) }}
Verifique se isso é causado pelo argumento leeway
. O valor padrão para ele mudou recentemente.
https://github.com/pallets/jinja/blob/master/jinja2/filters.py#L467
Isto é. Definir a margem de manobra como 0 corrige o problema. Eu diria que é uma violação da POLA ao usar cordas curtas.
Sim, concordo @ AMDmi3 . Acabamos de abordar esse problema também.
O problema é que Jinja tem uma implementação opinativa que é incompatível com o uso como um mecanismo de modelagem de uso geral.
Eu também encontrei esse problema e passei várias horas procurando o bug. Claramente, as novas opções devem ser compatíveis com as versões anteriores e o padrão deve ser leeway = 0
.
Quem começar a usar a nova opção leeway
saberá que ela existe e usará o valor que desejar. Quem não conhece o novo parâmetro não vai precisar mudar o código ...
Comentários muito úteis
Isto é. Definir a margem de manobra como 0 corrige o problema. Eu diria que é uma violação da POLA ao usar cordas curtas.