abrasileirado.types module

class abrasileirado.types.CEP(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um CEP (Código de Endereçamento Postal).

O CEP é um código numérico de 8 dígitos usado para identificar áreas de entrega no Brasil. O padrão é definido e utilizado pela Empresa Brasileira de Correios e Telégrafos (ECT). A classe aceita o valor com ou sem máscara e normaliza a saída no formato 99999-999.

Examples: .. code-block:: python

cep1 = CEP(“59015300”) print(cep1) # Saída: 59015-300 print(cep1.digitos) # Saída: 59015300

cep2 = CEP(“59015-300”) print(cep2) # Saída: 59015-300

MASK = '99999-999'
REGEX = '^\\d{5}-\\d{3}$'
class abrasileirado.types.CNES(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um CNES (Cadastro Nacional de Estabelecimento de Saúde).

O CNES é um número de identificação utilizado para estabelecimentos de saúde no Brasil. O cadastro é mantido pelo Ministério da Saúde/DATASUS. A classe representa o código numérico de 7 dígitos sem máscara.

Examples: .. code-block:: python

cnes = CNES(“2079305”) print(cnes) # Saída: 2079305 print(cnes.digitos) # Saída: 2079305

MASK = '9999999'
REGEX = re.compile('^(\\d{7})$')
class abrasileirado.types.CNPJ(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um CNPJ (Cadastro Nacional de Pessoa Jurídica).

O CNPJ é um número de identificação fiscal utilizado no Brasil para pessoas jurídicas. Ele é composto por 14 dígitos, onde os 12 primeiros são a base do número e os 2 últimos são dígitos verificadores calculados a partir dos 12 primeiros. O padrão é definido pela Receita Federal do Brasil (RFB). Essa classe valida o CNPJ no momento da criação, garantindo que apenas CNPJs válidos possam ser instanciados. O CNPJ pode ser representado tanto no formato apenas com dígitos (ex: 12345678900005) quanto no formato com máscara (ex: 12.345.678/9000-05).

Examples: .. code-block:: python

cnpj = CNPJ(“12345678900005”) print(cnpj) # Saída: 12.345.678/9000-05 print(cnpj.digitos) # Saída: 12345678900005

cnpj2 = CNPJ(“12.345.678/9000-05”) print(cnpj2) # Saída: 12.345.678/9000-05

MASK = 'AA.AAA.AAA/AAAA-00'
REGEX = re.compile('^([A-Z0-9]{2})[.]?([A-Z0-9]{3})[.]?([A-Z0-9]{3})/([A-Z0-9]{4})-?(\\d{2})$', re.IGNORECASE)
class abrasileirado.types.CNS(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um CNS (Cartão Nacional de Saúde).

O CNS é um número de identificação utilizado para cidadãos brasileiros no sistema de saúde, composto por 15 dígitos, onde os 11 primeiros são a base do número e os 4 últimos são dígitos verificadores calculados a partir dos 11 primeiros. O padrão é utilizado pelo Sistema Único de Saúde (SUS), sob gestão do Ministério da Saúde/DATASUS. A classe representa o código numérico sem máscara.

Examples: .. code-block:: python

cns = CNS(“898001160444648”) print(cns) # Saída: 898001160444648 print(cns.digitos) # Saída: 898001160444648

MASK = '999 9999 9999 9999'
REGEX = re.compile('^(\\d{3}) (\\d{4}) (\\d{4}) (\\d{4})$')
class abrasileirado.types.CPF(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um CPF (Cadastro de Pessoas Físicas).

O CPF é um número de identificação fiscal utilizado no Brasil para pessoas físicas. Ele é composto por 11 dígitos, onde os 9 primeiros são a base do número e os 2 últimos são dígitos verificadores calculados a partir dos 9 primeiros. O padrão é definido pela Receita Federal do Brasil (RFB). Essa classe valida o CPF no momento da criação, garantindo que apenas CPFs válidos possam ser instanciados. O CPF pode ser representado tanto no formato apenas com dígitos (ex: 12345678901) quanto no formato com máscara (ex: 123.456.789-01).

Examples: .. code-block:: python

cpf1 = CPF(“12345678901”) print(cpf1) # Saída: 123.456.789-01 (CPF completo, DV corretos, sem máscara) print(cpf1.digitos) # Saída: 12345678901

# Verificando validade print(CPF.is_valid(“12345678901”)) # Saída: True print(CPF.is_valid(“123.456.789-01”)) # Saída: True print(CPF.is_valid(“1234567890”)) # Saída: False (menos de 11 dígitos) print(CPF.is_valid(“123456789012”)) # Saída: False (mais de 11 dígitos) print(CPF.is_valid(“00000000000”)) # Saída: False (todos os dígitos iguais)

# Clonando um CPF cpf2 = CPF(str(cpf1))

MASK = '99.999.999/9999-00'
REGEX = re.compile('^(\\d{2})[.-]?(\\d{3})[.-]?(\\d{3})/(\\d{4})-(\\d{2})$')
class abrasileirado.types.CertidaoRCPN(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar uma certidão RCPN.

A matrícula RCPN identifica certidões do Registro Civil das Pessoas Naturais. O padrão é regulado pelo Conselho Nacional de Justiça (CNJ) e usa 32 dígitos, incluindo códigos de serventia, acervo, tipo de livro, livro, folha, termo e dígitos verificadores.

Examples: .. code-block:: python

certidao = CertidaoRCPN(“12345601552024100001001000000167”) print(certidao) # Saída: 123456.01.55.2024.1.00001.001.0000001-67 print(certidao.digitos) # Saída: 12345601552024100001001000000167 print(certidao.tipo_livro.description) # Saída: Nascimento

MASK = '999999.99.99.9999.9.99999.999.9999999-00'
REGEX = re.compile('^\\d{6}(0[1-9]|[1-9]\\d)55\\d{4}[1-7]\\d{5}\\d{3}\\d{7}\\d{2}$')
property ano_registro: str

Ano do registro.

Type:

11º ao 14º

property codigo_acervo: str

Código do Acervo.

Type:

7º e 8º

property codigo_serventia: str

Código da Serventia (Cartório).

Type:

1º ao 6º

property dv: str

Dígitos Verificadores.

Type:

31º e 32º

property numero_folha: str

Número da Folha.

Type:

21º ao 23º

property numero_livro: str

Número do Livro.

Type:

16º ao 20º

property numero_termo: str

Número do Termo.

Type:

24º ao 30º

rcpn_pattern = re.compile('^\\d{6}(0[1-9]|[1-9]\\d)55\\d{4}[1-7]\\d{5}\\d{3}\\d{7}\\d{2}$')
property registro_civil: str

Registro Civil.

Type:

9º e 10º

property tipo_livro: TipoLivroRcpnEnum

Tipo de Livro.

Type:

15º

class abrasileirado.types.CodigoValidavel(code: str)[source]

Bases: object

Classe base para códigos brasileiros validáveis.

A classe centraliza normalização de dígitos, representação mascarada, igualdade por valor e validação básica. Subclasses devem definir o tamanho total esperado e, quando necessário, implementar máscara e regras específicas da autoridade responsável pelo padrão.

Examples: .. code-block:: python

class CodigoSempreValido(CodigoValidavel):
def _is_valid(self, code: str) -> bool:

return True

codigo = CodigoSempreValido(“1”) print(codigo) # Saída: 1 print(codigo.digitos) # Saída: 1

property digitos: str

Retorna apenas os dígitos do código, sem máscara.

classmethod is_valid(code: str) bool[source]
class abrasileirado.types.EnderecoBrasil(logradouro: str, numero: str, bairro: str, municipio: str, uf: UnidadeFederativaStrEnum, cep: CEP, complemento: str | None = None)[source]

Bases: object

Classe imutável para representar um endereço postal brasileiro.

O endereço reúne logradouro, número, bairro, município, UF, CEP e complemento opcional. A saída segue formatos postais usados pela Empresa Brasileira de Correios e Telégrafos (ECT).

Examples: .. code-block:: python

endereco = EnderecoBrasil(

logradouro=”Rua das Flores”, numero=”123”, bairro=”Jardim Primavera”, municipio=”São Paulo”, uf=UnidadeFederativaStrEnum.SP, cep=CEP(“12345678”), complemento=”Apto 45”

) print(endereco) # Saída: Rua das Flores 123, Apto 45

Jardim Primavera 12345-678 São Paulo/SP

print(endereco.ect_extendido) # Saída: Rua das Flores 123, Apto 45

Jardim Primavera São Paulo/SP 12345-678

property bairro: str
property cep: CEP
property complemento: str | None
property ect_extendido: str

Retorna o endereço completo extendido da ECT.

property ect_padrao: str

Retorna o endereço formatado no formato padrão da ECT.

property linha_logradouro: str
property logradouro: str
property municipio: str
property numero: str
property uf: UnidadeFederativaStrEnum
class abrasileirado.types.NUP(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um NUP (Número Único de Processo).

O NUP é um número de identificação utilizado para processos judiciais e administrativos no Brasil. O padrão é usado pelo Conselho Nacional de Justiça (CNJ) e pela Administração Pública para protocolo e tramitação. Ele é composto por 17 dígitos:

  • 5 para a unidade protocolizadora,

  • 6 para o sequencial anual,

  • 4 para o ano,

  • 2 para o dígito verificador.

Examples: .. code-block:: python

nup = NUP(“23520005177202676”) print(nup) # Saída: 23520.005177/2026-76 print(nup.digitos) # Saída: 23520005177202676

nup2 = NUP(“23520.005177/2026-76”) print(nup2) # Saída: 23520.005177/2026-76

MASK = '99999.999999/9999-99'
REGEX = re.compile('^(\\d{5})\\.?(\\d{6})/(\\d{4})-(\\d{2})$')
class abrasileirado.types.PIS(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um PIS (Programa de Integração Social).

O PIS é um número de identificação utilizado para trabalhadores no Brasil. O cadastro é associado a políticas trabalhistas e sociais do Governo Federal. A classe representa o código de 11 dígitos e normaliza a saída em grupos.

Examples: .. code-block:: python

pis = PIS(“12044568103”) print(pis) # Saída: 120 445 681 03 print(pis.digitos) # Saída: 12044568103

MASK = '999.99999.99-9'
REGEX = re.compile('^(\\d{3})\\.(\\d{5})\\.(\\d{2})-(\\d{1})$')
class abrasileirado.types.Passaporte(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um passaporte brasileiro.

O passaporte é um documento de viagem emitido pela Polícia Federal. Nesta classe, o código é representado como uma sequência numérica de 8 dígitos.

Examples: .. code-block:: python

passaporte = Passaporte(“12345678”) print(passaporte) # Saída: 12345678 print(passaporte.digitos) # Saída: 12345678

MASK = '99999999'
REGEX = re.compile('^\\d{8}$')
class abrasileirado.types.PlacaVeicular(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar uma placa veicular.

A placa veicular identifica veículos automotores no Brasil. O padrão de emplacamento é definido pelo Conselho Nacional de Trânsito (CONTRAN) e operacionalizado pelo Sistema Nacional de Trânsito. Nesta classe, a placa é representada como uma sequência numérica de 7 dígitos.

Examples: .. code-block:: python

placa = PlacaVeicular(“1234567”) print(placa) # Saída: 1234567 print(placa.digitos) # Saída: 1234567

MASK = '9999999'
REGEX = re.compile('^\\d{7}$')
class abrasileirado.types.RENAVAM(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um RENAVAM.

O RENAVAM é o Registro Nacional de Veículos Automotores, usado para identificar veículos no Brasil. O padrão é mantido pela Secretaria Nacional de Trânsito (Senatran). A classe representa o código numérico de 11 dígitos e valida seu dígito verificador.

Examples: .. code-block:: python

renavam = RENAVAM(“63988496249”) print(renavam) # Saída: 63988496249 print(renavam.digitos) # Saída: 63988496249

MASK = '99999999999'
REGEX = re.compile('^\\d{11}$')
class abrasileirado.types.Telefone(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um telefone brasileiro.

O telefone é representado com DDD de 2 dígitos e número de 9 dígitos. A numeração telefônica brasileira é regulada pela Agência Nacional de Telecomunicações (Anatel). A classe normaliza a saída no formato (99) 99999-9999.

Examples: .. code-block:: python

telefone = Telefone(“(84) 98765-4321”) print(telefone) # Saída: (84) 98765-4321 print(telefone.digitos) # Saída: 84987654321

MASK = '(99) 99999-9999'
REGEX = re.compile('^\\(?[1-9]{2}\\)? ?9?\\d{4}-?\\d{4}$')
class abrasileirado.types.TituloEleitoral(code: str)[source]

Bases: CodigoValidavel

Classe imutável para representar um Título Eleitoral.

O Título Eleitoral identifica pessoas aptas ao cadastro eleitoral brasileiro. O padrão é definido pela Justiça Eleitoral, sob responsabilidade do Tribunal Superior Eleitoral (TSE). A classe representa o código numérico de 12 dígitos e valida seus dígitos verificadores.

Examples: .. code-block:: python

titulo = TituloEleitoral(“123456780191”) print(titulo) # Saída: 123456780191 print(titulo.digitos) # Saída: 123456780191

MASK = '999999999999'
REGEX = re.compile('^\\d{12}$')