L'appel de l'une des fonctions ugettext(), ugettext_lazy(), ugettext_noop(), ungettext()
et ungettext_lazy()
partir de django.utils.translation
lèvera un avertissement d'obsolescence RemovedInDjango40Warning
.
python -Wall manage.py runserver
/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'),
ugettext
sont obsolètes dans Django 3.0
La raison de la dépréciation est qu'il s'agit d'alias hérités pour leurs équivalents gettext
. Ils étaient autrefois utilisés pour la compatibilité Unicode avec Python 2.7 selon ce ticket
Nous devrions remplacer toutes les références aux fonctions ugettext
par leurs équivalents gettext
. Cela ne devrait avoir aucune influence négative car Wagtail ne supporte plus Python 2.7 et ce changement serait compatible avec Django 2.2 LTS.
Maintenant, devons-nous nous dépêcher de mettre en œuvre ce changement? Non, pas vraiment. Les fonctions ugettext
doivent être supprimées dans Django 4.0. Qui devrait sortir en 2022 selon ce tableau que j'ai pris sur https://www.djangoproject.com/download/
Ce serait cependant bien de se débarrasser de ces vilains avertissements de dépréciation pour cette expérience mon-projet-est-entièrement à jour 👌
Existe-t-il un moyen de faire taire cet avertissement jusqu'à ce qu'il soit résolu?
@danihodovic Dépend de votre cas d'utilisation, c'est ainsi que vous les masquez lorsque vous exécutez pytest.
[pytest]
filterwarnings =
ignore::django.utils.deprecation.RemovedInDjango40Warning
Merci @marteinn !
Terminé dans # 5907, mais comme il est tout à fait possible que de nouvelles occurrences puissent se faufiler à la suite de la fusion des PR existants, je laisserai cela ouvert pour nous rappeler de faire un autre balayage avant la version 2.9.
Revérifié, et aucune nouvelle occurrence ne s'est glissée, donc je pense que tout va bien 👍
Commentaire le plus utile
@danihodovic Dépend de votre cas d'utilisation, c'est ainsi que vous les masquez lorsque vous exécutez pytest.