Sistema automatizado para consolidação, limpeza e enriquecimento de dados de Sell-In e OEM para relatórios GKA. O projeto utiliza engenharia de dados moderna para garantir a integridade dos arquivos e a padronização das chaves de negócio.
O sistema é dividido em módulos especializados para garantir alta manutenibilidade:
-
Settings.py: Gerenciamento de configurações via YAML com validação de esquemas (Pydantic). Garante que o script só inicie se todos os arquivos existirem.
-
Utils.py: Biblioteca de transformações funcionais otimizadas para uso com o método
.pipe()do Pandas. -
Config.yaml: Fonte para caminhos de arquivos e parâmetros de UI.
-
Tests/: Testes automatizados com Pytest cobrindo transformações de dados e integridade de configuração.
Clone o repositório e instale as dependências:
pip install -r requirements.txt
Edite o arquivo config.yaml para apontar para os seus diretórios locais.
Você pode executar o processo de duas formas:
-
Via Terminal: Execute o notebook ou converta para script.
-
Via Windows: Basta dar um duplo clique no arquivo executar_gka.bat.
O projeto conta com testes unitários que garantem que as regras de negócio (como o cálculo do Ano-Safra e limpeza de chaves) permaneçam consistentes.
Para rodar os testes:
pytest tests/
-
Validação: O Pydantic verifica a existência de todos os arquivos de entrada.
-
Leitura Segura: O
utils.read_safe_excel()identifica automaticamente o motor necessário (.xls, .xlsx, .xlsb). -
Normalização: Aplicação de
clean_key()em massa para garantir que IDs não tenham espaços ou divergências. -
Enriquecimento: Merges sucessivos com o Cadastro de Clientes e Portfólio de Produtos.
-
Output: Geração de um arquivo Excel estilizado com filtros automáticos e painéis congelados.
📂 GKA_Project
├── 📄 script_gka.ipynb # Lógica principal de processamento
├── 📄 settings.py # Classe de configuração e validação
├── 📄 utils.py # Funções de auxílio e transformações
├── 📄 config.yaml # Mapeamento de caminhos e variáveis
├── 📄 executar_gka.bat # Automação de execução para usuários
├── 📂 tests/ # Suite de testes unitários
└── 📂 Sheets/ # Diretório de dados (ignorado no Git)