{{ message }}
Repository navigation
fix(cvm): lê o cad_fi.csv inteiro quando um campo começa com aspas - #919
Open
guubernardi wants to merge 1 commit into
Open
guubernardi wants to merge 1 commit into
guubernardi wants to merge 1 commit into
Conversation
O Papa Parse trata `"` como delimitador de campo por padrão. Na linha 16.882 do cad_fi.csv, o campo INF_TAXA_PERFM começa com `"1" é ...` e o parser passa a tratar o resto do arquivo como um único campo: só 16.882 das 46.806 linhas eram lidas, e os fundos seguintes respondiam 404. O CSV da CVM não usa aspas para delimitar campos, então o parse passa a ignorá-las.
|
Author
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




📋 Descrição
Corrige o parse do
cad_fi.csvemservices/cvm/fundos.js, que lia só 16.882 das 46.806 linhas do arquivo.O Papa Parse trata
"como delimitador de campo por padrão. Na linha 16.882, o campoINF_TAXA_PERFMcomeça com"1" é ..., o parser abre um campo entre aspas que nunca fecha e lê o resto do arquivo como um único campo. Todos os fundos depois dessa linha respondiam 404, e o fundo da própria linha respondia com um JSON de 11,5 MB.O CSV da CVM não usa aspas para delimitar campos, então o parse passa a ignorá-las (
quoteChar: '\0'). Com isso as 46.806 linhas são lidas, sem nenhum erro do parser.🎯 Tipo de Mudança
A única mudança visível é que fundos que antes davam 404 passam a ser encontrados. Campos com texto entre aspas passam a vir com as aspas, como estão no arquivo da CVM (ex.:
"1" é ...).📚 Checklist de Documentação
🧪 Checklist de Testes
Testes novos:
tests/fundos-csv-aspas.test.js: mocka o axios com um CSV de 3 linhas no formato da CVM, com aspas na linha do meio. Roda mesmo quando a CVM bloqueia o runner.tests/fundos-v1.test.js: caso E2E com um fundo que fica depois da linha com aspas (00822055000187).Sem a correção, os 4 testes novos falham. Com ela,
tests/fundos-csv-aspas.test.js,tests/fundos-v1.test.jsetests/corretoras-v1.test.jspassam (22 testes). Não rodei a suíte completa.💻 Checklist de Código
O ESLint do CI (
npx eslint pages/ services/ lib/ util/ middlewares/ errors/ --ext .js) passa sem erros.🚀 Checklist de Performance e Custos
O parse passa de ~140 ms para ~340 ms na minha máquina, porque agora lê 2,8 vezes mais linhas. A resposta já tem cache de 24 h (
app({ cache: 86400 })) e o número de chamadas à CVM não muda.🔍 Como Testar
npm test -- tests/fundos-csv-aspas.test.js tests/fundos-v1.test.jscurl https://brasilapi.com.br/api/cvm/fundos/v1/37267363000106responde 404, mesmo com o fundo presente nocad_fi.csv.📎 Issues Relacionadas
Refs #918 (item 1). O item 2 da issue, sobre os fundos adaptados à Resolução CVM 175, fica para outro PR depois da definição do formato.