Projet

Général

Profil

Bug #44044

requête csvdatasource: crash sur le tri si une valeur est None

Ajouté par Thomas Noël il y a presque 4 ans. Mis à jour il y a presque 4 ans.

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

Révision 3b4d90c9 (diff)
Ajouté par Thomas Noël il y a presque 4 ans

csvdatasource: fix order on missing columns by using empty strings (#44044)

Historique

#3

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.

#4

Mis à jour par Thomas Noël il y a presque 4 ans

#5

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".

#6

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

  • Statut changé de Solution proposée à Solution validée
#7

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)

#8

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

Formats disponibles : Atom PDF