-
Notifications
You must be signed in to change notification settings - Fork 15
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
Arquitetura da biblioteca #10
Comments
cep.py - Não ficaria melhor na pyceps (https://github.com/mstuttgart/pycep-correios)? cnab.py: Não seria melhor uma biblioteca separada para geração de boletos e do "nosso número"? |
Ola, eu nao pretendo responder aqui a tudo o que o @renatonlima falou. Mas apenas dizer que eu concordo com o @hendrixcosta nas duas colocaçoes que ele acabou de fazer: botar cep.py et cnap.py em outras sub-bibliotecas. Vamos aprender com os error da lib pysped que era monolitica, queria fazer tudo e fazia muita coisa mal (e algumas coisas boas), e acabou nao mantida por terceiros e ate rejetada pela Akretion por dar medo nessas partes que a gente não pretendia usar mas que daria trabalho de manter. Sobre o CNAB especificamente, a Akretion fica feliz com https://github.com/kivanio/brcobranca e https://github.com/akretion/boleto_cnab_api e não pretende investir um puto em re-fazer isso em Python. Entendo que em alguns casos, por examplo para ter desempenho melhor, alguém pode querer faze-lo. Mas obrigar o pessoal a ter o custo da manutenção disso no erpbrasil.base tb seria sacanagem e abalaria a adoção da biblioteca. |
Eu não havia visto porque fizemos a troca para o pycep recentemente mas já tem uma função para formatar CEPs: https://github.com/mstuttgart/pycep-correios/blob/develop/pycep_correios/cliente.py#L77 E outra função para validar: https://github.com/mstuttgart/pycep-correios/blob/develop/pycep_correios/cliente.py#L96 Então neste caso realmente não faz sentido utilizamos a função format_zipcode atualmente no erpbrasil.base.misc: https://github.com/erpbrasil/erpbrasil.base/blob/master/src/erpbrasil/base/misc.py#L23 Podemos remove-la do erpbrasil.base. Sobre as funções do erpbrasil.base/financeiro, eu tinha pensado em ter as funções de validação do nosso número e da linha digitável. Mas também concordo que poderíamos usar usar a lib pyboleto ou pyboleto, eu sei que uma destas libs tem a função de geração do nosso número mas não sei se tem as funções de formatação e validação do nosso número e da linha digitável. Também existia algumas funções de validação de número de cartão de crédito e isso não deveria ficar no pyboleto ou pycnab. Por isso é importante deixar bem definido a finalidade da lib para não correr o risco de com o tempo ser implementadas muitas funcionalidades fora do objeto e deixando a lib com dependências desnecessárias. Hoje a lib erpbrasil.base deve conter funções de validação e formatação dos números de documentos, pois estas funções são usadas em vários pontos, por exemplo, é usado a validação do CPF, no CRM, no financeiro, no fiscal e etc. |
Olá pessoal,
Recentemente eu comecei a refatorar e a implementar algumas melhorias na lib, pensando nisso eu gostaria de fazer algumas propostas para a arquitetura da lib, hoje devida a extração das funções do módulo l10n_br_base do Odoo acabou mantendo a mesma estrutura dos arquivos e acabou ficando não muito organizado, pensando na futura expansão da lib, descrevi dois pontos básicos:
Finalidade da lib
É importante definirmos um escopo para o objetivo da lib, isso é importante para a arquitetura da lib e futuramente em sua evolução, inicialmente eu vejo este escopo:
Implementar funções de validações de números de documentos existentes no Brasil como: CPF, CNPJ, IE, PIS, Chave de NF-e, Chave de CT-e e etc.
Implementar funções de formatação quando existente dos números dos documentos descritos acima.
Proposta de estrutura da Lib
erpbrasil.base/fiscal - Pasta contendo funções fiscais:
erpbrasil.base:
erpbrasil.base/ibge:
erpbrasil.base/correios:
erpbrasil.base/financeiro:
Gostaria de saber a opinião de vocês e sugestões
The text was updated successfully, but these errors were encountered: