Open renatonlima opened 4 years ago
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.
@hendrixcosta,
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.
@rvalyi
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