rows_from_file() splits a single-column CSV file on a letter, or raises csv.Error
Les mainteneurs répondent en général sous 3 jours
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 84/100
Piste de recherche
Repérez rows_from_file() et reproduisez les cas de fichiers CSV à une seule colonne avec les commandes sqlite-utils memory indiquées dans l’issue. Vérifiez comment la détection du séparateur est effectuée, puis exécutez les tests existants concernés et ajoutez une couverture pour les entrées CSV à une seule colonne avec des en-têtes et des URL. Le travail est terminé lorsque les fichiers sans séparateur reconnu sont importés comme une seule colonne, tandis que le comportement de insert --sniff reste inchangé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
When rows_from_file() detects the format of a single-column CSV file, it either fails or splits the column on a letter. That affects sqlite-utils memory file.csv and any Python call that leaves format= unset.
$ printf 'name\nAnn\nBob\n' > names.csv
$ sqlite-utils memory names.csv "select * from names"
...
_csv.Error: Could not determine delimiter
$ printf 'url\nhttps://example.com/a\nhttps://example.org/b\n' > urls.csv
$ sqlite-utils memory urls.csv "select * from urls"
[{"ur": "https://examp", "": "e.com/a"},
{"ur": "https://examp", "": "e.org/b"}]
(sqlite-utils 4.2.1)
The detection calls csv.Sniffer().sniff() on the first 2048 bytes without a delimiters= list. The sniffer then treats any character as a candidate, so a file with a single column either has no consistent candidate (csv.Error) or has a letter that happens to repeat the same number of times on every line (l above).
A fix could sniff only for the delimiters a CSV file is realistically written with (,, ;, tab, |) and read the file as one column when none of them is found. insert --sniff calls the sniffer the same way, but that is an explicit request to detect the dialect, so I would leave it unchanged.
- Langage dominant
- Python
- Étoiles
- 2.2k
- Forks
- 215
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de simonw/sqlite-utils
-
FTS detection treats table names as LIKE patternsPeut-être pris @IlyaKhalafi l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
simonw/sqlite-utils#930 ·
Les mainteneurs répondent en général sous 3 jours
-
Contributing docs: local test runs silently skip SpatiaLite and ext.c tests, and the setup steps assume SSH and uvPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
simonw/sqlite-utils#928 ·
Les mainteneurs répondent en général sous 3 jours
-
Tests use CliRunner.isolated_filesystem(), which is deprecated and will be removed in Click 9.0Peut-être pris @devpryan7792 l’a pris il y a 12 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
simonw/sqlite-utils#916 ·
Les mainteneurs répondent en général sous 3 jours
-
enable_fts() exhausts iterator columns before populating the indexPeut-être pris @syahra712 l’a pris il y a 26 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
simonw/sqlite-utils#902 ·
Les mainteneurs répondent en général sous 3 jours
-
rows_from_file() ignores ignore_extras= and extras_key= for anything that isn't Format.CSVPeut-être pris @feiiiiii5 l’a pris il y a 37 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
simonw/sqlite-utils#892 ·
Les mainteneurs répondent en général sous 3 jours
Toutes les issues de simonw/sqlite-utils
Issues similaires
-
binding:python bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
The Browser tab fails with a Wayland error when Open Terminal runs from a Wayland desktop sessionOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
open-webui/open-terminal#210 ·
-
triage/confirmed
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
agentscope-ai/agentscope#3807 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
NousResearch/hermes-agent#150542 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 91/100
triton-inference-server/server#9069 ·
Les mainteneurs répondent en général sous 1 jour