Pydantic library extension with Brazilian fields
Project description
Pydantic BR
Essa é uma biblioteca de extensão e visa disponibilizar campos com validações brasileiras para a biblioteca pydantic.
Compatível com a versão v1 e v2 do Pydantic.
Código fonte: https://github.com/scjorge/pydantic_br
Documentação: https://pydantic-br.readthedocs.io
Disponibilidades
Campo | Grupo de Documentos | Nome do Documento | Método de validação |
---|---|---|---|
CPF | Pessoa física | Cadastro de Pessoa Física | Digito Verificador |
CNH | Pessoa física | Carteira Nacional de Habilitação | Digito Verificador |
TE | Pessoa física | Título de Eleitor | Digito Verificador |
PIS | Pessoa física | Programa de Integração Social | Digito Verificador |
CERT | Pessoa física | Certidão (Nascimento/Casamento/Óbito) | Digito Verificador |
CNS | Pessoa física | Cartão Nacional de Saúde | Digito Verificador |
CNPJ | Pessoa Jurídica | Carteira Nacional de Pessoas Jurídicas | Digito Verificador |
CEP | Endereços | Código de Endereçamento Postal | RegExr |
SiglaEstado | Endereços | Sigla oficial do Estado Brasileiro | RegExr |
RENAVAM | Veículos | Registro Nacional de Veículos Automotores | Digito Verificador |
PlacaVeiculo | Veículos | Placa do Veículo | RegExr |
Instalação
Utilizando pip
pip install pydantic-br
Utilizando Poetry
poetry add pydantic-br
Exemplos de Utilização
Os exemplos de dados exemplificados foram tirados dos seguintes sites:
A má utilização dos dados é de total responsabilidade do usuário.
CPF válido
from pprint import pprint
from pydantic import BaseModel
from pydantic_br import CPF, CPFDigits, CPFMask
class Pessoa(BaseModel):
nome: str
cpf: CPF # aceita CPF válidos com ou sem máscara
cpf_mask: CPFMask # aceita CPF válido apenas com máscara
cpf_digits: CPFDigits # aceita CPF válido apenas com dígitos
p1 = Pessoa(
nome="João", cpf="53221394780", cpf_mask="532.213.947-80", cpf_digits="53221394780"
)
pprint(p1.model_dump())
Saída
{'cpf': '53221394780',
'cpf_digits': '53221394780',
'cpf_mask': '532.213.947-80',
'nome': 'João'}
CPF inválido
from pprint import pprint
from pydantic import BaseModel
from pydantic_br import CPF, CPFDigits, CPFMask
class Pessoa(BaseModel):
nome: str
cpf: CPF # aceita CPF válidos com ou sem máscara
cpf_mask: CPFMask # aceita CPF válido apenas com máscara
cpf_digits: CPFDigits # aceita CPF válido apenas com dígitos
p1 = Pessoa(
nome="João", cpf="00000000000", cpf_mask="53221394780", cpf_digits="532.213.947-80"
)
pprint(p1.model_dump())
Saída
Traceback (most recent call last):
p1 = Pessoa(
File "pydantic\main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 3 validation errors for Pessoa
cpf
invalid data [type=invalid_data, input_value='00000000000', input_type=str]
cpf_mask
invalid mask format [type=invalid_mask, input_value='53221394780', input_type=str]
cpf_digits
field only accept digits as string [type=not_digits, input_value='532.213.947-80', input_type=str]
Versões do Pydantic
Os exemplos acima estão escritos na versão v1 do Pydantic. Entretanto, funciona perfeitamente com a versão v2.
Então que mudará? Bem, uma das coisa é que os métodos de 'apresentação' das models foram alterados na v2.
- O método
dict()
foi alterado paramodel_dump()
emodel_dump_json()
- O método
schema()
foi alterado paramodel_json_schema()
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file pydantic_br-1.1.0.tar.gz
.
File metadata
- Download URL: pydantic_br-1.1.0.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/5.15.153.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6d45241d55e766084141be5f654a9b0cc6c1c73de896d292d8b8a882987c48e |
|
MD5 | 29c2bd0249a209c91e7c7450c88a9c00 |
|
BLAKE2b-256 | 7916c16d614d208ce7d60f5a0cfac14ae1e30bb6bf584b59f26cb639e1e5a1e2 |
File details
Details for the file pydantic_br-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: pydantic_br-1.1.0-py3-none-any.whl
- Upload date:
- Size: 19.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/5.15.153.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f1891eb3bd02e247232a6cb88c38e6418e8cabe959e69ccf2edb483abc08f17 |
|
MD5 | a53ae37516be8b3a87370c0410aa8484 |
|
BLAKE2b-256 | bdd5d0d99c2e83f9f91b703ad53ab1779636c9bd3b4f0abe97f6d75243c19594 |