Skip to content

refactor(utils): explicita etapas da normalização - #339

Draft
bdcdo wants to merge 3 commits into
mainfrom
refactor/utils-params
Draft

refactor(utils): explicita etapas da normalização#339
bdcdo wants to merge 3 commits into
mainfrom
refactor/utils-params

Conversation

@bdcdo

@bdcdo bdcdo commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Resumo

  • Mantém em normalize_datas a ordem canônico → alias específico → alias genérico, a detecção de conflitos antes dos warnings e a materialização das quatro datas canônicas.
  • Mantém no pipeline a reinjeção das datas nominais, a validação pydantic e a tradução exclusiva de extra_forbidden para TypeError.

Simplificação da revisão

  • _collect_date_sources percorre diretamente os campos canônicos e o mapa ordenado DATE_ALIAS_TO_CANONICAL; não reconstrói mapas por sufixo nem reclassifica aliases.
  • A detecção de conflitos fica explícita no único consumidor, normalize_datas.
  • Substitui o helper de instanciação com 7 argumentos por _validate_pipeline_schema(schema_cls, method_name, sources), que recebe as fontes reais e preserva a colisão de keyword.
  • Remove o teste de mutação incidental de kwargs depois de uma página inválida e testa a fonte única do mapa de aliases.

Complexidade

  • apply_input_pipeline_search: CCN 15 e complexidade cognitiva 15.
  • Todas as funções alteradas permanecem dentro dos gates; a primeira versão do follow-up chegou a CCN 16 e foi simplificada antes do commit.

Validação

  • Testes focados de utils e schemas: passaram.
  • uv run pytest: 1.750 testes passaram, 32 foram ignorados e 220 ficaram desmarcados.
  • Pre-commit completo nos arquivos alterados, Lizard, Complexipy, ratchet e git diff --check: passaram.

Refs #307

@bdcdo bdcdo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revisão pré-merge concluída no commit a22e8c8.

  • Datas e aliases agora têm uma única coleta ordenada, sem reconstrução de mapas por sufixo.
  • Substituí o helper de 7 argumentos por validação baseada nas fontes reais e removi teste de mutação incidental.
  • A suíte offline passou com 1.750 testes; apply_input_pipeline_search ficou exatamente em CCN/cognitivo 15 e pre-commit passou.

O GitHub não reporta checks para esta branch. Mantive o PR em draft e não fiz merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant