Skip to content
This repository has been archived by the owner on Nov 2, 2024. It is now read-only.
Sergio Garcia edited this page Feb 22, 2015 · 3 revisions

python-sped

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.

Onde ajudar

Definindo adequadamente os campos

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.

Garantindo que os registros estão definidos de forma correta

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.

Leitura de tabelas externas

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:

  1. 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
  1. 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.