Skip to content

Refatoração: separar módulos extractors.py e transformers.py e criar estrutura universal #3

Description

@maxwelfreitas

Objetivo

Separar os módulos extractors.py e transformers.py dos demais módulos de robocalls, criando uma nova pasta específica para esses arquivos. O objetivo é que se tornem extratores e transformadores universais, permitindo que sejam reutilizados tanto na análise de robocalls quanto em futuras análises, como spoofing.

Justificativa

  • Atualmente, extractors.py e transformers.py estão acoplados à lógica de robocalls.
  • Ao separá-los, criaremos componentes genéricos e reutilizáveis para múltiplas finalidades dentro do domínio de CDRs.
  • Essa estrutura favorecerá a organização do projeto e facilitará a manutenção e expansão.

Detalhes da Tarefa

  • Mover extractors.py e transformers.py para uma nova pasta (exemplo: core ou shared).
  • Refatorar eventuais importações nos outros módulos de robocalls para refletir o novo caminho desses arquivos.
  • Realizar as adaptações necessárias para garantir o funcionamento dos processos atuais.
  • Alterar os nomes das colunas dos arquivos e tabelas de saída geradas pelos módulos, aproximando ao máximo do padrão de modelagem de dados da Anatel.
  • Documentar as mudanças realizadas (ex: no README e/ou docstrings).

Exemplos de possíveis novas estruturas:

teleutils/
├── core/           # Novos módulos universais
│   ├── extractors.py
│   └── transformers.py
├── robocalls/
│   └── ...
├── spoofing/       # Futuro
│   └── ...

Considerações

  • Garantir que todos os testes sejam ajustados e executem corretamente após a refatoração.
  • Atenção especial à compatibilidade de nome de colunas do output em relação ao padrão Anatel.

Critérios de Aceitação

  • Os módulos extractors.py e transformers.py estão localizados em uma nova pasta dedicada (por exemplo, core/ ou shared/).
  • As funcionalidades de extração e transformação continuam funcionando corretamente para robocalls após a refatoração.
  • Pelo menos um teste de uso conjunto demonstrando importação dos módulos nos contextos de robocalls e um exemplo para futuros usos genéricos (como spoofing).
  • Os nomes das colunas das tabelas e arquivos de saída gerados aderem ao padrão de modelagem de dados da Anatel.
  • Documentação revisada e atualizada, refletindo a nova arquitetura e exemplos de uso.
  • Todos os testes automatizados do projeto passam sem falhas.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions