feat: add alphanumeric CNPJ support with is_alphanumeric and generate_alphanumeric#723
feat: add alphanumeric CNPJ support with is_alphanumeric and generate_alphanumeric#723mmsb21 wants to merge 6 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #723 +/- ##
==========================================
+ Coverage 99.08% 99.09% +0.01%
==========================================
Files 26 26
Lines 765 775 +10
==========================================
+ Hits 758 768 +10
Misses 7 7 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
niltonpimentel02
left a comment
There was a problem hiding this comment.
hey @mmsb21 tudo bem aí? vou ir dando uma olhada nesse teu pr beleza? e deixando uns comentários onde for necessário mudança.
| @@ -0,0 +1,3 @@ | |||
| version = 1 | |||
There was a problem hiding this comment.
poderia remover esse arquivo uv.lock porque aqui não usamos o uv no projeto.
|
|
||
| ### Added | ||
|
|
||
| - Utilitário `generate_alphanumeric_cnpj` [#685](https://github.com/brazilian-utils/python/issues/685) |
There was a problem hiding this comment.
move essa linha pra parte do ## [Unreleased] ele vai pro ## Added só quando eu fizer de fato a release da nova versão.
|
@niltonpimentel02 e @mmsb21 tudo bem? Estava vendo aqui e já estamos quase com o prazo do CNPJ alfa aqui? Será que vamos ter esse merge ainda dentro de junho? Uso a lib e por isso a minha dúvida / preocupação, vocês fazem um trabalho muito bom aqui no BRUtils, queria continuar usando a lib aqui sem fazer um workaround manual. |
Descrição
Este PR adiciona suporte a CNPJs alfanuméricos no módulo
cnpj, conforme o novo formato definido pela Receita Federal que passa a permitir letras maiúsculas além de dígitos nos 8 primeiros caracteres da raiz do CNPJ. Foram adicionadas as funçõesis_alphanumeric,generate_alphanumerice atualizada a lógica de validação e formatação para suportar o novo formato.Mudanças Propostas
is_alphanumeric(cnpj: str) -> bool: verifica se todos os caracteres do CNPJ são dígitos ou letras maiúsculas, necessário para suportar o novo formato alfanumérico.generate_alphanumeric(branch: str = '1') -> str: gera um CNPJ alfanumérico válido aleatório, com suporte a filial opcional._hashdigitpara operar comord(digit) - 48em vez de conversão direta paraint, permitindo o cálculo correto do dígito verificador para caracteres alfanuméricos.validateedisplaypara utilizaris_alphanumericna verificação do formato, em substituição à checagem exclusiva de dígitos.Checklist de Revisão
Comentários Adicionais (opcional)
A implementação do cálculo do dígito verificador via
ord(digit) - 48é necessária porque para caracteres alfanuméricos (ex.:'A'= ASCII 65) a subtração de 48 produz os pesos corretos conforme a especificação da Receita Federal para o novo formato de CNPJ. Para dígitos numéricos, o comportamento é idêntico ao da conversãoint(digit).Issue Relacionada
Closes #685