Bug #44044
requête csvdatasource: crash sur le tri si une valeur est None
Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
13 juin 2020
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Non
Description
Lors du tri, on peut se retrouver avec des None dans le new_data à trier :
# extrait de passerelle/apps/csvdatasource/models.py ... 370 371 order = query.get_list('order') 372 if order: 373 generator = stream_expressions(order, data, kind='order') 374 new_data = [(tuple(new_row), row) for new_row, row in generator] 375 new_data.sort(key=lambda x: x[0]) 376 data = [row for key, row in new_data] 377
et en Python 3, cela se traduit par « unorderable types: str() < NoneType() »
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a presque 4 ans
Mis à jour par Thomas Noël il y a presque 4 ans
La valeur "None" vient d'une ligne avec des cellules fusionnées, qui font qu'une colonne n'existe pas, et donc on tombe sur None par :
def get_cell(row, index): try: return row[index] except IndexError: return None
Ca doit être possible aussi en CSV d'avoir une colonne absente.
Mis à jour par Thomas Noël il y a presque 4 ans
- Fichier 0001-csvdatasource-fix-order-on-missing-columns-by-using-.patch 0001-csvdatasource-fix-order-on-missing-columns-by-using-.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a presque 4 ans
Note : ça modifie la réponse du connecteur, on ne renvoie plus «null» en cas de colonne absente mais une chaîne vide. Je pense que ça posera soucis nulle part, j'irais jusqu'à dire "au contraire".
Mis à jour par Benjamin Dauvergne il y a presque 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Thomas Noël il y a presque 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 3b4d90c9184847e3e23e747093b9b43173b9ca96 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Sat Jun 13 00:53:55 2020 +0200 csvdatasource: fix order on missing columns by using empty strings (#44044)
Mis à jour par Frédéric Péters il y a presque 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
csvdatasource: fix order on missing columns by using empty strings (#44044)