Validators - Validadores
Funções de validação reutilizáveis.
Validadores Disponíveis
from velox.validators import (
validate_email,
validate_url,
validate_phone,
validate_cpf,
validate_cnpj,
validate_min_length,
validate_max_length,
validate_range,
validate_regex,
validate_file_extension,
validate_file_size,
)
—
validate_email
from velox.validators import validate_email
try:
validate_email('user@domain.com')
print('Email válido')
except ValueError as e:
print(f'Erro: {e}')
—
validate_cpf
from velox.validators import validate_cpf
try:
validate_cpf('123.456.789-09')
print('CPF válido')
except ValueError:
print('CPF inválido')
—
validate_cnpj
from velox.validators import validate_cnpj
try:
validate_cnpj('12.345.678/0001-90')
print('CNPJ válido')
except ValueError:
print('CNPJ inválido')
—
validate_phone
from velox.validators import validate_phone
# Aceita vários formatos
validate_phone('(11) 99999-9999')
validate_phone('11999999999')
validate_phone('+55 11 99999 9999')
—
validate_url
from velox.validators import validate_url
validate_url('https://example.com')
validate_url('http://test.com/path') # URL completa
—
validate_min_length / validate_max_length
from velox.validators import validate_min_length, validate_max_length
validate_min_length('abc', 2) # ✓
validate_min_length('a', 2) # ✗ ValueError
validate_max_length('abc', 5) # ✓
validate_max_length('abcdef', 5) # ✗ ValueError
—
validate_range
from velox.validators import validate_range
validate_range(10, min=0, max=100) # ✓
validate_range(-1, min=0, max=100) # ✗ ValueError
—
validate_regex
from velox.validators import validate_regex
validate_regex('abc123', r'^[a-z]+\d+$') # ✓
validate_regex('123', r'^[a-z]+\d+$') # ✗ ValueError
—
validate_file_extension
from velox.validators import validate_file_extension
validate_file_extension('photo.jpg', ['jpg', 'png', 'gif'])
validate_file_extension('document.pdf', ['jpg', 'png', 'gif']) # ✗
—
validate_file_size
from velox.validators import validate_file_size
# max_size em bytes
validate_file_size(file_size=1024 * 1024, max_size=5 * 1024 * 1024) # ✓
validate_file_size(file_size=10 * 1024 * 1024, max_size=5 * 1024 * 1024) # ✗
—
Validação Combinada
from velox.validators import validate_email, validate_min_length
def validate_user_data(data):
errors = []
try:
validate_email(data['email'])
except ValueError:
errors.append('Email inválido')
try:
validate_min_length(data['name'], 2)
except ValueError:
errors.append('Nome muito curto')
return errors
—
Validadores Customizados
def validate_username(username):
if not username.replace('_', '').isalnum():
raise ValueError('Username deve ter apenas letras, números e underscore')
if len(username) < 3:
raise ValueError('Username deve ter no mínimo 3 caracteres')
if len(username) > 30:
raise ValueError('Username deve ter no máximo 30 caracteres')