Add a delimiters parameter to the csv.Sniffer constructor
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Feature or enhancement
csv.Sniffer.sniff() accepts an optional delimiters argument which restricts the set of characters that can be guessed as a delimiter. has_header() has no such argument, so the restriction cannot be applied to it.
I propose to add an optional delimiters parameter to the constructor, so that it applies to the sniffer rather than to a single call:
sniffer = csv.Sniffer(',;\t')
if sniffer.has_header(sample):
...
dialect = sniffer.sniff(sample)
It is used by both sniff() and has_header(). The delimiters argument of sniff(), if given, still takes precedence.
The given delimiters are also preferred in that order if several of them split the sample equally well: csv.Sniffer(';,') guesses ';' where csv.Sniffer(',;') guesses ','.
Linked PRs
- gh-155060
Guide de contribution
Ouvrir 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.
Piste de recherche
Commencez par les points d’entrée csv.Sniffer, sniff() et has_header() décrits dans l’issue, puis examinez les tests CSV existants pour connaître leur comportement actuel. C’est terminé lorsque la restriction delimiters du constructeur est utilisée par les deux méthodes, que sniff() peut la remplacer et que les candidats à égalité suivent l’ordre des délimiteurs fourni.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- data
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 35/100