`csv.reader` calls the state machine for every character needlessly
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Python
- Estrelas
- 77.2k
- Forks
- 36k
- Métricas de merge de PRs
- Métricas de PR pendentes
Descrição
Bug report
Bug description:
The state machine:
https://github.com/python/cpython/blob/bbcb75c986c47887e6c0757e63d59cd7af544f39/Modules/_csv.c#L726
is called for every character processed by csv.reader:
Even putting aside sophisticated SIMD or branching optimizations, it could be more efficient.
Most time is likely to be spent in a field (IN_FIELD, IN_QUOTED_FIELD). It's more efficient to find interesting characters (ie: escapes, quotes) and just copy the whole slice in between.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
- gh-138214
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece em Modules/_csv.c, na máquina de estados por volta da linha 726, e no processamento de csv.reader por volta das linhas 969-974. Revise o PR vinculado gh-138214 antes de começar e, em seguida, verifique se qualquer alteração preserva o comportamento de csv.reader e evita chamadas desnecessárias à máquina de estados por caractere.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- c, python
- Domínio
- backend
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 25/100