Repository navigation
Spec 003e: nomes de bebês da Nova Zelândia (DIA) - #28
Merged
Merged
Conversation
Registra o conjunto "Baby Name popularity over time" do Department of Internal Affairs (CC BY 4.0), a codificação misturada medida byte a byte no CSV real, o descarte de nomes corrompidos na fonte e o bloqueio da Imperva que responde 200 com página HTML. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Três tarefas: recusa de página HTML no cache, adaptador nz-dia-births com a tabela fechada de bytes e o descarte avisado, e o país NZ no passo das fontes oficiais da CI. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Servidores como a Imperva do catálogo da Nova Zelândia respondem 200 com uma página de desafio em vez de 403. fetch agora recusa text/html para recurso que não é HTML, sem novas tentativas e sem gravar nada no cache, e diz onde gravar o arquivo baixado pelo navegador. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Adaptador do CSV "Baby Name popularity over time" do Department of Internal Affairs: lê UTF-8 quando o arquivo inteiro é válido e, senão, traduz só os bytes de leitura inequívoca (0x82 e 0xE9 para é, 0xF6 para ö); nomes com ? ou U+FFFD são descartados e avisados no log com o número de linhas e de registros (ADR 0006). Amostra real de 18 linhas, com acentos em CP437 e Latin-1 e nomes corrompidos na origem. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…, Task 3) O passo passa a exigir by_country/NZ.csv, e o teste compara o arquivo com valores escritos à mão e confere o aviso de nomes descartados. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
O adaptador emite 74.006 registros; o ingest produz 73.991 observações porque 15 pares diferem só na caixa e são somados pela chave da spec 002. 13 linhas e 164 registros descartados, 1,2 s e 114 MB. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Traz as specs 003b (INE, ADRs 0005 e 0006) e 003d (Statistics Canada, ADR 0004) e a manutenção do PR #21. Conflitos: cache.py mantém a recusa de text/html antes do arquivo temporário, a validação de Content-Length e as tentativas definitivas do master; conftest e test_cache juntam os dois grupos; CI e test_ci conferem os 7 países; sources.yaml e ATRIBUICAO.md com ca, es e nz; ROADMAP com 3b e 3d mescladas. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…spec 003e) - ADR 0006 vira 0007, porque o master já tem o 0006 da contagem de sobrenomes; referências atualizadas na spec, no plano, nas tarefas, no ROADMAP e no adaptador. - A tabela de R2 lista a leitura de cada byte em CP437, CP850, Windows-1252, Latin-1 e Mac Roman (0xE9 é Ú em CP850 e È em Mac Roman), e o ADR passa a decidir pela forma atestada em todas as ocorrências do byte, não por ser letra numa só página de código. - ADR: edição convertida pela metade descarta os nomes UTF-8 de modo seguro e visível no aviso. - Spec: forma exibida dos pares só de caixa segue a de maior contagem; status Em PR (#28). - Adaptador: decodificação legada com decode("latin-1").translate. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
3 tasks
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.
Spec 003e: Nova Zelândia (DIA, "Baby Name popularity over time")
Status da spec: Em PR (#28).
O que muda
docs/specs/003e-nova-zelandia/(spec, plano, tarefas) e ADR 0007 (nomes corrompidos na fonte são descartados; um byte só é traduzido quando todas as suas ocorrências formam um nome atestado).cache.py: respostatext/htmlpara recurso que não é HTML viraBlockedError, sem novas tentativas e sem gravar no cache, com o caminho onde gravar o arquivo baixado pelo navegador. A Imperva do catálogo responde 200 com página de desafio, não 403, então a mensagem da spec 003 (R4) não disparava.nz_dia_births.py: UTF-8 se o arquivo inteiro for válido; senão tabela fechada0x82/0xE9-> é,0xF6-> ö (leituras em CP437, CP850, Windows-1252, Latin-1 e Mac Roman na tabela de R2 da spec); demais bytes viram U+FFFD. Nomes com?ou U+FFFD são descartados e avisados no log (linhas, registros, formas).sources.yamleATRIBUICAO.mdcom a fonte ao fim; amostra real de 18 linhas (331 bytes);NZno passo das fontes oficiais da CI.CA ES FR IE NO NZ US.Critérios de aceite e verificação
nz-dia-birthsemsources.yaml(CC-BY-4.0, NZ, births, suppression 10):test_fontes_oficiais.py.test_parse_da_amostra_real.test_nomes_corrompidos_sao_descartados_e_avisados(caplog).Māia:test_arquivo_utf8_valido_e_lido_como_utf8.test_pagina_html_no_lugar_do_arquivo_nao_entra_no_cache; HTML no cache:test_pagina_html_no_cache_explica_o_que_fazer. Conferido contra o host real:namescommons fetch nz-dia-birthsfalha com a mensagem e deixa o cache vazio.by_country/NZ.csvigual a valores escritos à mão:test_passo_das_fontes_oficiais_roda_localmente.ingest nz-dia-births --offlineproduz 73.991 observações (15 pares só com caixa diferente somados pela spec 002, R1.4), descarta 13 linhas e 164 registros; 1,15 s e 114 MB de pico num Apple M4.uv run pytest -q: 517 passed depois do merge com o master; os dois passos offline da CI rodados localmente:OK: 8 observações, 1 paíseOK: 87 observações, 7 países, com o aviso de 3 linhas descartadas da amostra no stderr.Decisões tomadas sozinho (e custo se estiverem erradas)
0x82ou0xE9não for é em algum nome, ele sai com a letra errada (64 linhas afetadas, todas conferidas).0x8D/0x8F(Nīkau, Kāwhai) descartados, não traduzidos: perde 7 linhas reais.text/htmlpassaria a falhar (nenhuma das atuais).logging(sem canal novo no contrato). Custo: quem configurar logging acima de WARNING não vê o aviso.Pendência aberta: #32 (descartes por fonte no manifesto, spec 006).
Closes #10
🤖 Generated with Claude Code