[Python-es] Reemplazando Jinja2 con f-strings

AGTUGO agtugo en gmail.com
Mie Jul 17 20:23:07 EDT 2019


La raz'on es eliminar esa dependencia porque nadie de mis colaboradores
conoce Jinja2, y en este momento no cuentan con el tiempo para entenderlo.
Pero bueno eso ya es otro tema. Pero s'i la mejor soluci'on sigue siendo
Jinja

On Tue, Jul 16, 2019 at 12:49 AM lasizoillo <lasizoillo en gmail.com> wrote:

> 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
>>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>


-- 
Arturo Muñoz Tolosa
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20190717/061e7ea2/attachment.html>


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