Development #45780
filtres |removeprefix et |removesuffix
0%
Fichiers
Révisions associées
pep8: put 2 lines between function definitions (#45780)
Historique
Mis à jour par Nicolas Roche il y a plus de 3 ans
- Fichier 0001-templatetags-add-removeprefix-and-removesuffix-filte.patch 0001-templatetags-add-removeprefix-and-removesuffix-filte.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus de 3 ans
Ce n'est que très mal suivi dans ce fichier mais pour tes ajouts mets deux lignes blanches entre les fonctions.
Je vois que c'est ainsi dans w.c.s. mais je ne vois pas le cas où c'est utile de laisser prefix/suffix de côté et faire ainsi un retrait de "None" si jamais c'est devant/derrière.
Mis à jour par Nicolas Roche il y a plus de 3 ans
- Fichier 0002-pep8-put-2-lines-between-function-definitions-45780.patch 0002-pep8-put-2-lines-between-function-definitions-45780.patch ajouté
- Fichier 0001-templatetags-add-removeprefix-and-removesuffix-filte.patch 0001-templatetags-add-removeprefix-and-removesuffix-filte.patch ajouté
je ne vois pas le cas où c'est utile de laisser prefix/suffix de côté et faire ainsi un retrait de "None"
Tu me suggères d'ajouter ce test,
tmpl = Template('{{ foo|removeprefix }}') # removeprefix is None assert tmpl.render(Context({'foo': 'None'})) == ''
où l'on voit que l'on retire la chaîne 'None' parce que :
>>> force_text(None) 'None'
Pour moi il s'agirait d'un bug.
En cherchant à comprendre, je suis aussi tombé sur ces 2 cas qui devraient à mon avis également retourner respectivement 'None' et '0' :
tmpl = Template('{{ foo|removeprefix }}') assert tmpl.render(Context({'foo': None})) == '' assert tmpl.render(Context({'foo': 0})) == ''
Si ces bugs sont avérés, il faudrait peut-être aussi corriger le filtre "strip" (qui vient aussi de wcs : #37270)
assert tmpl.render(Context({'foo': None})) == ''
Mis à jour par Frédéric Péters il y a plus de 3 ans
Tu me suggères d'ajouter ce test,
Non, je suggère de virer ces =None parce que je n'en vois pas le sens.
Mis à jour par Nicolas Roche il y a plus de 3 ans
- Fichier 0002-pep8-put-2-lines-between-function-definitions-45780.patch 0002-pep8-put-2-lines-between-function-definitions-45780.patch ajouté
- Fichier 0001-templatetags-add-removeprefix-and-removesuffix-filte.patch 0001-templatetags-add-removeprefix-and-removesuffix-filte.patch ajouté
Ok (retour au premier patch avec juste) :
-def removeprefix(string, prefix=None): +def removeprefix(string, prefix=''):
Mis à jour par Frédéric Péters il y a plus de 3 ans
Non, je suggère de virer ces =None parce que je n'en vois pas le sens.
Ce dont je ne vois pas le sens c'est l'appel à |removeprefix sans spécifier quoi supprimer. Mettre prefix='' amènera ma même objection.
Mis à jour par Nicolas Roche il y a plus de 3 ans
A priori, c'est pour anticiper/tester le cas où l'utilisateur oublie de préciser l'argument.
> raise TemplateSyntaxError("%s requires %d arguments, %d provided" % (name, alen - dlen, plen)) E django.template.exceptions.TemplateSyntaxError: removeprefix requires 2 arguments, 1 provided /tmp/tox-nroche/combo/py3-django22-pg/lib/python3.8/site-packages/django/template/base.py:717: TemplateSyntaxError
Mis à jour par Frédéric Péters il y a plus de 3 ans
L'utilisateur ici c'est un développeur et ça va le faire passer à côté de son erreur.
Mis à jour par Nicolas Roche il y a plus de 3 ans
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
Sérieusement inutile de tester le comportement sans paramètre, ça va juste emmerder quand le texte variera un peu dans une autre version de django. (+ ça ne dit rien du comportement réel dans combo).
Mais ack ainsi quand même.
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
Poussés moi-même.
commit ba3451e7236273127cfc5b9135e10e9fb6c39109 Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Mon Aug 10 11:57:15 2020 +0200 pep8: put 2 lines between function definitions (#45780) commit 017b20e7f8ed26d1d951ac2d89ca3dbdc3f3d0c9 Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Fri Aug 7 17:00:06 2020 +0200 templatetags: add removeprefix and removesuffix filters (#45780)
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
templatetags: add removeprefix and removesuffix filters (#45780)