https://dev.entrouvert.org/https://dev.entrouvert.org/favicon.ico?15861920342022-07-04T09:25:36ZRedmine Entr’ouvertw.c.s. - Development #66894: Avoir un filtre pour détecter les doublons dans une liste...https://dev.entrouvert.org/issues/66894?journal_id=3915672022-07-04T09:25:36ZBenjamin Dauvergne
<ul></ul><p>Dans #66279 une proposition que j'ai faite un peu différente, avoir un filtre prenant une première valeur puis une liste, ça permettra d'utiliser le filtre soit avec des listes soit avec des champs différents :<br /><pre>
form_var_items|getlist:"form_var_ma_var"|values-are-unique
form_var_string1|values-are-unique:form_var_string2
form_var_file1|values-are-unique:form_var_file2
</pre></p>
<p>Il faudrait avoir une spécialisation pour certains types de donnée (pour les fichiers comparer les hashs par exemple).</p> w.c.s. - Development #66894: Avoir un filtre pour détecter les doublons dans une liste...https://dev.entrouvert.org/issues/66894?journal_id=3922652022-07-05T20:15:15ZFrédéric Pétersfpeters@entrouvert.com
<ul></ul><p>Pas enthousiaste sur tout ça; comme on a |date, |datetime, |decimal, |list, je préférerais réfléchir à un |set, que s'apprennent/s'emploient là-dessus les constructions spécifiques, type ...|set|count == ...|count pour valider l'unicité des éléments, à l'image de ce qui se fait actuellement en python d'après #66826.</p> w.c.s. - Development #66894: Avoir un filtre pour détecter les doublons dans une liste...https://dev.entrouvert.org/issues/66894?journal_id=3922762022-07-06T06:30:18ZBenjamin Dauvergne
<ul></ul><p>Frédéric Péters a écrit :</p>
<blockquote>
<p>Pas enthousiaste sur tout ça; comme on a |date, |datetime, |decimal, |list, je préférerais réfléchir à un |set, que s'apprennent/s'emploient là-dessus les constructions spécifiques, type ...|set|count == ...|count pour valider l'unicité des éléments, à l'image de ce qui se fait actuellement en python d'après #66826.</p>
</blockquote>
<p>1. Je ne vois pas l'intérêt d'importer des idiomes python dans quelque chose qui n'est pas du python</p>
<p>2. La différence bag/set n'est vraiment pas maîtrisé par les gens (et je parle avec mon background de matheux), ils recopieront bêtement l'exemple de la doc sans comprendre (et il faudra donner un exemple spécifique pour voir l'idiome utilisé, sinon il y a peu de chance que les gens trouvent tous seuls) sans compter le fait que set va lever des erreurs pour les types non "hashable" comme un dico ou un objet pas prévu pour</p>
<p>3. La syntaxe des filtres simples sans argument ne permet pas les cas à base de variables différentes que je montre et qui sont réels, genre tester l'unicité entre 3 ou 4 champs, comment construire une séquence dans ce cas ? Tu verrais d'ajouter au filtre list un argument optionnel (<code>x|list:y</code>) pour compléter tout ça ? Ça donnerait pour le cas des fichiers un truc genre <code>form_var_pj1|list:form_var_pj2|list:form_var_pj3|set|count != form_var_pj1|list:form_var_pj2|list:form_var_pj3|count</code></p>
<p>4. Je suis d'accord qu'avoir des opérations atomiques est plus sympa pour l'extensibilité, mais les conditions ne permettant pas d'introduire des variables ça fait des expressions plutôt longue (parce qu'on doit répéter la sous expression de construction de la liste à gauche et à droite du comparateur)</p>
<p>Au final mon opinion c'est que la construction de liste devrait être améliorée à part (via un <code>x|list:y</code>), les filtres compliqués que j'ai proposé ne sont pas une bonne idée; mais le test d'unicité devrait être une opération à part entière, facilement documentable et ne pas demander aux gens de maîtriser l'idiome <code>len(set(sequence)) == len(sequence)</code>.</p> w.c.s. - Development #66894: Avoir un filtre pour détecter les doublons dans une liste...https://dev.entrouvert.org/issues/66894?journal_id=3922822022-07-06T06:49:58ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>Nouveau</i> à <i>Rejeté</i></li></ul><blockquote>
<p>les filtres compliqués que j'ai proposé ne sont pas une bonne idée.</p>
</blockquote>
<p>Parfait oublions tout ça et je fais un ticket pour faire |set qui est utile pour des traductions immédiates d'expressions Python comme c'est le cas à Nanterre, sans en encourager l'utilisation au-delà.</p> w.c.s. - Development #66894: Avoir un filtre pour détecter les doublons dans une liste...https://dev.entrouvert.org/issues/66894?journal_id=3923122022-07-06T07:41:02ZBenjamin Dauvergne
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-2 status-5 priority-4 priority-default closed" href="/issues/67054">Development #67054</a>: templatetags: pouvoir construire des listes via list et add (était Ajouter à |list un argument optionnel pour permettre de créer des listes)</i> ajouté</li></ul>