Projet

Général

Profil

Bug #44016

import csv : virgule et guillemets rendus obligatoires

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
12 juin 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Parce que :

commit 586f322ebad79252ed20235fd20d7c5f6b449fe5
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Thu Feb 6 15:01:00 2020 +0100

    python3: explicit delimiter and quotechar in csv import (#28276)

diff --git a/src/authentic2/csv_import.py b/src/authentic2/csv_import.py
index 47d93268..2bb6c1e8 100644
--- a/src/authentic2/csv_import.py
+++ b/src/authentic2/csv_import.py
@@ -136,7 +136,8 @@ class CsvImporter(object):
             if not dialect:
                 self.error = Error('unknown-csv-dialect', _('Unknown CSV dialect'))
                 return False
-            reader = UnicodeReader(input_fd, dialect)
+            reader = UnicodeReader(
+                    input_fd, dialect, delimiter=str(','), quotechar=str('"'))
             self.rows = list(reader)
             return True

la détection du dialecte ne sert quasiment plus à rien, la virgule est imposée en délimiteur (or la plupart des logiciels exportent avec des points-virgules, c'est ainsi).

Je ne sais pas la raison qui a poussé à ce patch, mais il gêne un peu (#44004). Pourrait-on le reverter ?

Révisions associées

Révision 89323afd (diff)
Ajouté par Benjamin Dauvergne il y a plus de 3 ans

misc: restore sniffing of csv dialect (#44016)

This reverts commit 586f322ebad79252ed20235fd20d7c5f6b449fe5, "python3:
explicit delimiter and quotechar in csv import (#28276)".

Historique

#2

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

Paul une idée ? Sinon en python3 le sniffer est grandement amélioré, il l'est aussi dans les dernières versions de python 2.7 mais elles n'arriveront pas assez vite sur nos serveurs, voir ticket #41612 où tout ça est magnifiquement corrigé pour csvdatasource.

#3

Mis à jour par Paul Marillonnet il y a plus de 3 ans

Benjamin Dauvergne a écrit :

Paul une idée ? Sinon en python3 le sniffer est grandement amélioré, il l'est aussi dans les dernières versions de python 2.7 mais elles n'arriveront pas assez vite sur nos serveurs, voir ticket #41612 où tout ça est magnifiquement corrigé pour csvdatasource.


(Oups mes excuses pour le temps de réponse, complètement passé à côté de ces notifs redmine.)

Dans mes souvenirs c'est un micmac dencodage entre les chaînes python2 et python3 qui m'obligeait à préciser la valeur de ces deux arguments delimiter et quotechar.
Et oui, ça ne me saute au yeux que maintenant que c'est complètement nul d'imposer la virgule comme ça en dur dans le code. Je vais regarder comment faire plus proprement et surtout ne pas court-circuiter la détection du dialecte.

#4

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Assigné à mis à Benjamin Dauvergne
#5

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Je vais commencer par reverter et voir ce que ça donne.

#6

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Nouveau à En cours
#7

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de En cours à Solution proposée

Le revert suffit.

#8

Mis à jour par Thomas Noël il y a plus de 3 ans

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

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)
commit 89323afd6ce021a92a62b5dd240e5fe737ed8698
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Tue Jul 7 15:11:42 2020 +0200

    misc: restore sniffing of csv dialect (#44016)

    This reverts commit 586f322ebad79252ed20235fd20d7c5f6b449fe5, "python3:
    explicit delimiter and quotechar in csv import (#28276)".
#10

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

Formats disponibles : Atom PDF