[Python-es] Reemplazando Jinja2 con f-strings

lasizoillo lasizoillo en gmail.com
Mar Jul 16 03:48:59 EDT 2019


Buenas,

Creo conveniente leer esto antes que nada
http://lucumr.pocoo.org/2016/12/29/careful-with-str-format/

El mar., 16 jul. 2019 a las 7:27, Sergio Fernández (<sergio en wikier.org>)
escribió:

> Un f-string es código, no un string. Yo no seguiría ese camino... es una
> mala idea y potencialmente un riesgo.
>
> ¿Por qué no seguir con Jinja?
>

Correcto, son potencialmente un riesgo, pero como ponen en el ejemplo sobre
todo porque implican extender string.Formatter y que incluso el código que
no use f-strings puede verse afectado por el cambio :-O


> On Mon, Jul 15, 2019, 20:05 AGTUGO <agtugo en gmail.com> wrote:
>
>> Dada la evaluación dentro de los f-strings, parece natural reemplazar los
>> lenguajes de plantillas, como Jinja2 con f-string, con simplemente unos
>> ajustes, excepto:
>>
>>
No, no resulta natural reemplazar un lenguaje de plantillas por algo que no
te ofrece una sandbox, sentencias de control, separación entre el parseo
del template (se realiza una sola vez y se cachea) y su uso, template
loaders personalizables,...

Otra cosa es que en tu caso particular no utilices casi nada de lo que te
ofrece el sistema de plantillas y puedas quitarte una dependencia extra.
Pero creo que sería un caso bastante alejado de la norma.


> Convertir de manera limpia los strings a f-strings.
>>
>> La única manera que he encontrado es usar eval, ¿Alguien tiene una idea
>> mejor?
>>
>
Usar string.Formatter, pero si y solo si no te vas a disparar en el pié al
hacerlo.


>
>> Resultado deseado = void hola{ std::cout << "hola\n"};
>> F-string para generarlo = f"void{saludo}{{std::cout << "{saludo}\n"}};"
>> Ejemplo Jinja = void {{saludo}}{std::cout <<"{{saludo}}\n"};"
>>
>> --
>> Arturo Muñoz
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20190716/c39eceaf/attachment.html>


Más información sobre la lista de distribución Python-es