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) }}
Compruebe si esto es causado por el argumento leeway
. El valor predeterminado cambió recientemente.
https://github.com/pallets/jinja/blob/master/jinja2/filters.py#L467
Está. Establecer el margen de maniobra en 0 soluciona el problema. Yo diría que es una violación de POLA cuando se usan cadenas cortas.
Sí, estoy de acuerdo @ AMDmi3 . También abordamos este problema.
El problema es que Jinja tiene una implementación obstinada que es incompatible con el uso como motor de plantillas de propósito general.
También encontré este problema y pasé varias horas encontrando el error. Claramente, las nuevas opciones deberían ser compatibles con versiones anteriores y el valor predeterminado debería ser leeway = 0
.
Quien comience a usar la nueva opción leeway
sabrá que existe y usará el valor que desee. Aquellos que no conocen el nuevo parámetro no necesitarán cambiar su código ...
Comentario más útil
Está. Establecer el margen de maniobra en 0 soluciona el problema. Yo diría que es una violación de POLA cuando se usan cadenas cortas.