-
Notifications
You must be signed in to change notification settings - Fork 1
Develop #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Develop #5
Conversation
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
- Implementa _build_url no downloader - Implementa funções de limpeza e transformação no processor - Implementa validações de dados - Adiciona testes unitários para todos os módulos core - Melhora cobertura de testes do downloader
- Adiciona testes de integração para pipeline - Adiciona workflow de testes no GitHub Actions - Adiciona workflow de release - Atualiza documentação
…assos no workPlan.md
…efletir arquitetura, padrões e exemplos
…ra refletir dependências e build
…ara Clean Code e SOLID
* refactor(pipeline): Migra para arquitetura modular Refatora o pipeline de ETL para utilizar as classes do diretório 'autosinapi/core', eliminando a dependência do 'sinapi_utils.py'.\n\n- Centraliza a lógica de download, processamento e banco de dados nos seus respectivos módulos.\n- O script 'autosinapi_pipeline.py' agora atua como um orquestrador, tornando o fluxo de dados mais claro e coeso.\n- Remove o arquivo 'sinapi_utils.py' para eliminar código legado e duplicado. * feat(version): Adiciona versionamento dinâmico com setuptools-scm Implementa o 'setuptools-scm' para automatizar a versão do pacote a partir das tags do Git.\n\n- A versão agora é definida dinamicamente, eliminando a necessidade de atualizações manuais nos arquivos de configuração.\n- Garante consistência entre o código-fonte, as tags do Git e as versões publicadas no PyPI. * docs(readme): Atualiza documentação e melhora configuração Revisa completamente o README.md com foco na clareza para o usuário final e reflete a nova arquitetura e funcionalidades.\n\n- Adiciona um arquivo 'CONFIG.example.json' como modelo.\n- Torna o pipeline mais flexível, permitindo que o arquivo de configuração seja passado como argumento.\n- Atualiza o .gitignore para ignorar arquivos de configuração locais e pastas de build. * docs(readme): Atualiza documentação e melhora configuração Revisa completamente o README.md com foco na clareza para o usuário final e reflete a nova arquitetura e funcionalidades.\n\n- Adiciona um arquivo 'CONFIG.example.json' como modelo.\n- Torna o pipeline mais flexível, permitindo que o arquivo de configuração seja passado como argumento.\n- Atualiza o .gitignore para ignorar arquivos de configuração locais e pastas de build.
Implementa uma solução completa com Docker e Docker Compose para executar o pipeline de forma isolada e portátil.\n\n- Adiciona Dockerfile para construir a imagem da aplicação.\n- Adiciona docker-compose.yml para orquestrar os serviços da aplicação e do banco de dados.\n- Unifica as configurações do ambiente Docker no arquivo .env.\n- Adapta o pipeline para ler configurações de variáveis de ambiente.\n- Atualiza a documentação com o novo fluxo de trabalho.
* feat(docker): Adiciona suporte para ambiente containerizado Implementa uma solução completa com Docker e Docker Compose para executar o pipeline de forma isolada e portátil.\n\n- Adiciona Dockerfile para construir a imagem da aplicação.\n- Adiciona docker-compose.yml para orquestrar os serviços da aplicação e do banco de dados.\n- Unifica as configurações do ambiente Docker no arquivo .env.\n- Adapta o pipeline para ler configurações de variáveis de ambiente.\n- Atualiza a documentação com o novo fluxo de trabalho. * feat: Improve ETL processing for multiple SINAPI XLSX files and catalog data * refactor(database): reestrutura o módulo de banco de dados para maior robustez e flexibilidade - Adiciona logging detalhado para operações de banco de dados.\n- Implementa recriação de tabelas para garantir conformidade com o modelo.\n- Adiciona políticas de salvamento de dados (append, upsert) e métodos de truncamento.\n- Aprimora o tratamento de erros em execução de queries.\n- Remove código duplicado. * docs(data-model): reescreve e detalha o modelo de dados e o processo de ETL - Documenta o modelo de dados relacional completo, incluindo novas tabelas e views.\n- Descreve o fluxo de execução do ETL em fases (Manutenções, Sincronização, Dados de Referência).\n- Fornece diretrizes para API e consultas. * refactor(pipeline): reestrutura o pipeline de ETL para seguir o novo modelo de dados e fases - Adapta o pipeline para processar dados em fases (Manutenções, Sincronização de Status, Dados de Referência).\n- Aprimora a configuração de logging.\n- Implementa a lógica de truncamento e upsert/append para diferentes tipos de dados. * chore(docker): atualiza o ambiente docker e adiciona ferramentas de gerenciamento - Atualiza a imagem do PostgreSQL para a versão 15.\n- Adiciona rede Docker para melhor comunicação entre serviços.\n- Inclui o serviço Adminer para gerenciamento do banco de dados.\n- Refatora o Makefile com comandos abrangentes para gerenciamento de serviços.\n- Atualiza o Dockerfile para instalação de dependências e configuração do app. * fix(processor): corrige leitura do cabeçalho da planilha 'Analítico' - Altera a função process_composicao_itens para usar header=8 diretamente, conforme DataModel.md.\n- Remove a detecção dinâmica de cabeçalho para esta planilha específica. * feat(pipeline, processor): Improve ETL for SINAPI data processing and missing composition handling * chore(config): Add AutoSINAPI.code-workspace to .gitignore * refactor(processamento-dados): Melhoria ETL SINAPI para dados de custos e robustez do pipeline Refatora o método `process_catalogo_e_precos` em `autosinapi/core/processor.py` para aprimorar o tratamento de dados de "custos". - **Feat**: Introduz uma nova etapa de pré-processamento em `tools/autosinapi_pipeline.py` que converte planilhas Excel complexas (especificamente para dados de "custos") em arquivos CSV simplificados usando `tools/pre_processador.py`. Isso otimiza a ingestão de dados para o processador. - **Fix**: Implementa uma regex mais precisa (`r',(\d+)\)$'`) para extrair o `CODIGO` dos dados de "custos", garantindo a análise correta de valores como ",12345)". Isso resolve problemas com métodos de extração anteriores. - **Refactor**: Atualiza a classe `Processor` para consumir esses CSVs pré-processados para dados de "custos", simplificando a lógica dentro de `process_catalogo_e_precos`. - **Chore**: Aprimora os mecanismos de logging em `autosinapi/core/processor.py` e `tools/autosinapi_pipeline.py` para melhor depuração e visibilidade operacional. Esta alteração melhora a confiabilidade e a manutenibilidade do processo ETL do SINAPI, particularmente para dados de "custos", ao desacoplar a análise complexa do Excel da lógica de processamento principal.
…a arquitetura do pipeline (#6)
…atualiza documentacao (#8) * docs(contributing): adiciona diretrizes de contribuicao e atualiza README * chore(git): adiciona arquivos de cobertura ao .gitignore * docs(contributing): Modifica o link para página Contributing.md
…ses e Atualização das Diretrizes de Contribuição (#10) * docs(contributing): update contributing guidelines with release process * feat(release): add automated release drafting and publishing workflow
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.
Refatoração do AutoSINAPI para Toolkit Modular
Descrição
Esta PR implementa a primeira fase da refatoração do AutoSINAPI, transformando-o em uma biblioteca Python modular e desacoplada, seguindo os princípios SOLID e Clean Code.
Mudanças Principais
Estrutura de Diretórios
Interface Pública
Testes Implementados
Breaking Changes
run_etlChecklist
Próximos Passos
Referências