478
Descrição
Resolve o formato novo de CNPJ que estará em vigor a partir de 2026 no utilitário 'cnpj'.
Mudanças Propostas
- Utilitário cnpj agora pode tratar CNPJs do novo formato de CNPJ disponibilizado em: https://normasinternet2.receita.fazenda.gov.br/#/consulta/externa/141102
Checklist de Revisão
- [X] Eu li o Contributing.md
- [X] Os testes foram adicionados ou atualizados para refletir as mudanças (se aplicável).
- [X] Foi adicionada uma entrada no changelog / Meu PR não necessita de uma nova entrada no changelog.
- [X] A documentação em português foi atualizada ou criada, se necessário.
- [X] Se feita a documentação, a atualização do arquivo em inglês.
- [X] Eu documentei as minhas mudanças no código, adicionando docstrings e comentários. Instruções
- [X] O código segue as diretrizes de estilo e padrões de codificação do projeto.
- [X] Todos os testes passam. Instruções
- [X] O Pull Request foi testado localmente. Instruções
- [X] Não há conflitos de mesclagem.
Comentários Adicionais (opcional)
Issue Relacionada
https://github.com/brazilian-utils/python/issues/478
Closes #478
📌 Esta mensagem está tanto em português quanto em inglês (mais abaixo) — assim todo mundo consegue acompanhar! 📌 This message is in both Portuguese and English (further down) — so everyone can follow along!
🇧🇷 Português
Oi! Muito obrigada por abrir esse pull request 💜
Por aqui, seguimos o padrão do Conventional Commits para os tÃtulos das PRs. Esse padrão ajuda a manter o histórico do projeto organizado e claro.
No seu caso, o tÃtulo do PR precisa de um pequeno ajuste pra ficar dentro desse formato. Isso é super comum no começo, então suaveee!
👉 Um tÃtulo válido geralmente começa com um prefixo como:
build:para mudanças no sistema de build ou dependências externaschore:para tarefas de manutençãoci:para integrações contÃnuasdocs:para mudanças na documentaçãofeat:para novas funcionalidadesfix:para correções de bugsperf:para melhorias de performancerefactor:para melhorias internas no códigorevert:para reverter um commit anteriorstyle:para mudanças de formataçãotest:para adição ou ajustes de testes
Exemplos de tÃtulos que adorarÃamos ver por aqui:
prefixo: mensagem descritiva
feat: permitir que o objeto de configuração fornecido estenda outras configurações
fix: corrige pequenos erros de digitação no código
Esses são só alguns exemplos — a documentação oficial tem mais opções e explicações.
Antes de seguir com o PR, dá uma olhadinha lá pra entender bem o padrão — isso vai te ajudar bastante nesta e em futuras contribuições também.
O tÃtulo atual está assim (fora do padrão esperado):
No release type found in pull request title "478". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/
Available types:
- build
- chore
- ci
- docs
- feat
- fix
- perf
- refactor
- revert
- style
- test
Qualquer dúvida, é só chamar por aqui! Estamos aqui para te ajudar!
🇬🇧 English
Hey there and thank you for opening this pull request! 💜
In this project, we follow the Conventional Commits specification for PR titles. This helps keep the commit history organized and clean.
In your case, the PR title needs a small adjustment to match the expected format. Totally normal if this is your first time — no stress!
👉 A valid PR title usually starts with a prefix like:
build:for build system or external dependency changeschore:for maintenance tasksci:for continuous integration changesdocs:for documentation updatesfeat:for new featuresfix:for bug fixesperf:for performance improvementsrefactor:for internal code improvementsrevert:for reverting a previous commitstyle:for formatting changestest:for test additions or changes
Examples of titles we'd love to see here:
prefix: descriptive message
feat: allow the provided config object to extend other configurations
fix: correct minor typos in the code
These are just a few examples — the official documentation has more options and great explanations. Before continuing with the PR, we recommend reading it — it'll really help with this and future contributions.
💡 Here's the current title (which doesn't follow the expected format):
No release type found in pull request title "478". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/
Available types:
- build
- chore
- ci
- docs
- feat
- fix
- perf
- refactor
- revert
- style
- test
Let us know if you need help updating it — we’re here to support you!
Eu fiz um PR em outro projeto fazendo esta validação. Não é necessário criar duas funções diferentes para CNPJs com ou sem caracteres alfanuméricos. Se você fizer a conversão dos caracteres em valores ASCII e colocar o offset correto, a mesma função de validação para os dÃgitos verificadores se mantém (por sinal esse é um dos motivos para a Receita Federal ter escolhido essa solução para a expansão). Então não há necessidade de criar a is_alphanumeric_cnpj por exemplo, sendo viável manter apenas a validate como já existe.
@pauloguyss boa tarde! precisamos reavaliar melhor essa issue e por enquanto vou fechar o teu pr.. agradecemos pela sua contribuição! 🎉