Biblioteca autoral AS-CNPJ para validacao, normalizacao e formatacao de CNPJ numerico e alfanumerico.
Project description
Biblioteca autoral do ecossistema AS-CNPJ para validação, normalização, formatação e cálculo de dígitos verificadores de CNPJ numérico e alfanumérico em Python.
Repositório · PyPI · Site · Hub do ecossistema · API · Testes
Idiomas: Português (Brasil) | English | Español | Français
Status
- repositório público e ativo;
- publicado no PyPI como
as-cnpj; - CI rodando em
Python 3.10,Python 3.11,Python 3.12,Python 3.13ePython 3.14; - API funcional e coberta por testes automatizados;
- release workflow preparado para publicação no PyPI via Trusted Publishing;
- fluxo de publicação e pacote já ativos publicamente.
Instalação
python -m pip install as-cnpj
Import package:
from as_cnpj import is_valid_cnpj
Exemplo rápido
from as_cnpj import (
assert_valid,
calculate_cnpj_check_digits,
format_cnpj,
is_valid,
normalize,
)
is_valid("12.ABC.345/01DE-35")
normalize("12.abc.345/01de-35")
format_cnpj("12ABC34501DE35")
assert_valid("12.ABC.345/01DE-35", strict=True)
calculate_cnpj_check_digits("12ABC34501DE")
Casos de uso
- formulários de cadastro B2B com aceitação do formato legado e do formato alfanumérico;
- backends Python que precisam validar payloads antes de persistir ou integrar com ERP;
- rotinas de saneamento e migração de base com normalização consistente;
- suites de teste e homologação que precisam gerar e validar exemplos de CNPJ.
O que esta biblioteca entrega
- validação de CNPJ numérico legado;
- validação de CNPJ alfanumérico previsto pela Receita Federal para julho de 2026;
- suporte a entradas com máscara e sem máscara;
- modo permissivo e modo estrito;
- zero dependências de runtime para o núcleo do algoritmo;
- consistência com vetores compartilhados do hub.
API pública
Funções principais:
normalize(value)is_valid(value, strict=False)format(value, strict=False)assert_valid(value, strict=False)calculate_check_digits(base12)
Aliases explícitos:
normalize_cnpj(value)is_valid_cnpj(value, strict=False)format_cnpj(value, strict=False)assert_valid_cnpj(value, strict=False)calculate_cnpj_check_digits(base12)
Garantias centrais
- aceita
A-Z0-9nos 12 primeiros caracteres; - mantém os 2 dígitos verificadores como numéricos;
- usa módulo 11 com conversão
ASCII - 48; - normaliza entrada para caixa alta;
- rejeita repetições triviais inválidas;
- mantém o contrato alinhado aos vetores compartilhados do ecossistema.
Documentação e referências
- API da biblioteca
- Estratégia de testes
- Checklist de release
- Política de segurança
- Hub do ecossistema AS-CNPJ
Publicação
- pacote planejado no PyPI:
as-cnpj - import público:
as_cnpj - release via GitHub Releases com Trusted Publishing para o PyPI
Vetores compartilhados
O as-cnpj-python não define a verdade sozinho.
O contrato do ecossistema depende também de:
- vetores compartilhados no hub;
- regras documentadas a partir das fontes oficiais;
- convergência entre implementações em linguagens diferentes.
Manutenção
Maintainer: @0moura
Contato institucional: ascnpj@0moura.io
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file as_cnpj-0.1.2.tar.gz.
File metadata
- Download URL: as_cnpj-0.1.2.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fc173f516d9cfbe4734f4a070b464aaef78ae02f4c1a950f6a7ffbabe8e3b4a
|
|
| MD5 |
32ef076399ce63e6faa0451506ac0c81
|
|
| BLAKE2b-256 |
48d52550584d031f9075b9de849a9df5d9d11359d394801dd1e7c0b875a4c167
|
Provenance
The following attestation bundles were made for as_cnpj-0.1.2.tar.gz:
Publisher:
release.yml on as-cnpj/as-cnpj-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
as_cnpj-0.1.2.tar.gz -
Subject digest:
2fc173f516d9cfbe4734f4a070b464aaef78ae02f4c1a950f6a7ffbabe8e3b4a - Sigstore transparency entry: 1280843886
- Sigstore integration time:
-
Permalink:
as-cnpj/as-cnpj-python@fcf10feadb671e3f9c661022d22de2d5e8e04410 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/as-cnpj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fcf10feadb671e3f9c661022d22de2d5e8e04410 -
Trigger Event:
release
-
Statement type:
File details
Details for the file as_cnpj-0.1.2-py3-none-any.whl.
File metadata
- Download URL: as_cnpj-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd29aa7390e8c00251a71c984b1e8cb92c06e85dd955be00a4f724105bab888e
|
|
| MD5 |
b2701793e2362e9226b1b9742d668d80
|
|
| BLAKE2b-256 |
0b7c9ed0f2b20f2fac110417730979694515573ea7944f8549114c33773d32f0
|
Provenance
The following attestation bundles were made for as_cnpj-0.1.2-py3-none-any.whl:
Publisher:
release.yml on as-cnpj/as-cnpj-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
as_cnpj-0.1.2-py3-none-any.whl -
Subject digest:
dd29aa7390e8c00251a71c984b1e8cb92c06e85dd955be00a4f724105bab888e - Sigstore transparency entry: 1280843892
- Sigstore integration time:
-
Permalink:
as-cnpj/as-cnpj-python@fcf10feadb671e3f9c661022d22de2d5e8e04410 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/as-cnpj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fcf10feadb671e3f9c661022d22de2d5e8e04410 -
Trigger Event:
release
-
Statement type: