-
Notifications
You must be signed in to change notification settings - Fork 56
Home
Olá, obrigado por se interessar pelo projeto python-sped.
O projeto encontra-se em fase inicial de desenvolvimento, você pode contribuir sugerindo ideias, testando os módulos no estado em que se encontram ou ajudando no desenvolvimento de suas funcionalidades.
Por favor, leia o documento inicial sobre a arquitetura para entender os conceitos do funcionamento do python-sped.
O maior desafio atual é garantir a integridade de cada campo, a classe sped.ecf.registros.Registro0000 contém um exemplo funcional de todos os campos sendo validados de forma adequada, porém sem a verificação de tabelas externas.
A maioria dos registros tem seus campos definidos de forma básica, sem a validação de tamanho e formatos específicos, isto foi feito de forma funcional para que este projeto se mostre viável no menor tempo possível através da geração de arquivos com entradas já validas (o tão famoso caminho feliz), porém seu objetivo quando finalizada é garantir que independente das entradas fornecidas pelo aplicativo que fizer uso deste projeto, a consistência do arquivo final gerado esteja garantida.
Independente da validação de escrita, a leitura deve ser realizada sem erros, portanto é bem vindo todos os bugs reportados quanto a leitura de um arquivo para os módulos que estão prontos.
Em breve, farei um mecanismo para auto-atualização das tabelas externas. Preciso de sugestões e validação da ideia quanto a sua implementação. Tenho duas ideias quanto a forma que elas serão realizadas:
- um mecanismo embutido na biblioteca que baixará as bibliotecas da receita
- PRÓ: não dependerá de atualização da biblioteca python-sped
- CONTRA: não é garantida a compatibilidade com futuras alterações e versões das tabelas
- um mecanismo em tempo de build que baixará as bibliotecas da receita e gerará as classes necessárias
- PRÓ: podem ser criados testes unitários para garantir a compatibilidade do python-sped com as tabelas, sendo assim garantido que o conjunto (python-sped + tabelas externas) funcionarão adequadamente naquela versão
- CONTRA: é responsabilidade do programador que utilizar o python-sped usar sempre a ultima versão da biblioteca e em caso de abandono deste projeto por parte de seus mantenedores, gerar um novo build a partir dos fontes
Em minha concepção, estou inclinado a usar a ideia 2, visto que se este projeto não for mantido no futuro, possivelmente o mesmo será incompatível com futuras versões da legislação do SPED.