Wagtail: El uso de funciones de uggettext está en desuso

Creado en 18 feb. 2020  ·  5Comentarios  ·  Fuente: wagtail/wagtail

Resumen de asuntos

Llamar a cualquiera de las funciones ugettext(), ugettext_lazy(), ugettext_noop(), ungettext() y ungettext_lazy() desde django.utils.translation generará una advertencia de depreciación RemovedInDjango40Warning .

Pasos para reproducir

  1. Inicie el servidor de desarrollo con advertencias habilitadas para un proyecto Wagtail con Django 3.0 instalado: python -Wall manage.py runserver
  2. Observa la salida. Producirá docenas de advertencias similares a esta:
/Users/stormh/torchbox/wagtail/wagtail/admin/edit_handlers.py:762: RemovedInDjango40Warning: django.utils.translation.ugettext_lazy() is deprecated in favor of django.utils.translation.gettext_lazy().
  'heading': ugettext_lazy('Scheduled publishing'),
  • He confirmado que este problema se puede reproducir como se describe en un nuevo proyecto Wagtail: sí

ugettext funciones

El motivo de la desaprobación es que estos son alias heredados para sus contrapartes correspondientes gettext . Una vez se usaron para la compatibilidad Unicode con Python 2.7 de acuerdo con este ticket

¿Cómo resolvemos esto?

Deberíamos reemplazar todas las referencias a las funciones ugettext con sus contrapartes gettext . Esto no debería tener una influencia negativa porque Wagtail ya no es compatible con Python 2.7 y este cambio sería compatible con Django 2.2 LTS.

Ahora, ¿tenemos que apurarnos en implementar este cambio? No en realidad no. Las funciones ugettext están programadas para ser eliminadas en Django 4.0. Que está programado para ser lanzado en 2022 de acuerdo con este cuadro que tomé de https://www.djangoproject.com/download/

Sin embargo, sería bueno deshacerse de esas desagradables advertencias de desaprobación para esa experiencia de mi-proyecto-está-completamente-actualizado 👌

Detalles técnicos

  • Versión de Python: 3.8.1
  • Versión de Django: 3.0.3
  • Versión Wagtail: 2.9a0
  • Versión del navegador: n / a
Django i18n good first issue Bug

Comentario más útil

@danihodovic Depende de su caso de uso, así es como los oculta cuando ejecuta pytest.

[pytest]
filterwarnings =
    ignore::django.utils.deprecation.RemovedInDjango40Warning

Todos 5 comentarios

¿Hay alguna forma de silenciar esta advertencia hasta que se resuelva?

@danihodovic Depende de su caso de uso, así es como los oculta cuando ejecuta pytest.

[pytest]
filterwarnings =
    ignore::django.utils.deprecation.RemovedInDjango40Warning

¡Gracias @marteinn !

Completado en el n. ° 5907, pero dado que es muy posible que se produzcan nuevas ocurrencias como resultado de la fusión de los RP existentes, dejaré esto abierto para recordarnos que hagamos otro barrido antes de la versión 2.9.

Vuelva a verificar y no se han producido nuevos sucesos, así que creo que todos estamos bien 👍

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

spoetnik picture spoetnik  ·  3Comentarios

tmsndrs picture tmsndrs  ·  3Comentarios

bmoe872 picture bmoe872  ·  3Comentarios

muhammad-saleh picture muhammad-saleh  ·  3Comentarios

letops picture letops  ·  3Comentarios