Validador de entradas com expressões regulares (Regex) em Python, usando o padrão Strategy. Suporte a e-mails, valores monetários, CPF, CNPJ, hora e nomes.
Project description
📌 validator-regex
📌 Descrição
validator-regex é uma biblioteca Python que fornece uma arquitetura modular para validação de entradas usando expressões regulares (Regex), aplicando o padrão de projeto Strategy e Facade.
Ela suporta vários tipos de validação: e-mail, valores monetários (BRL), CPF, CNPJ, hora e nomes próprios.
O objetivo é permitir que desenvolvedores importem e usem facilmente estratégias de validação prontas, e possam adicionar novas estratégias conforme suas necessidades.
📌 Funcionalidades principais
- Validação de e-mails conforme padrão RFC (com alguns limites práticos)
- Validação de valores monetários no formato BRL (ex:
R$ 1.234,56) - Validação de CPF (formato
###.###.###-##) - Validação de CNPJ (formato
##.###.###/####-##) - Validação de hora no formato 24h (ex:
HH:MMouHH:MM:SS) - Validação de nomes próprios
- Arquitetura limpa com Strategy + Facade → fácil extensão
- Tipagem estática suportada (mypy) – boas práticas de qualidade de código
- Testes automatizados com pytest e formatação com black
📌 Estrutura do Projeto
validator-regex/
│
├── validator_regex/ # Código-fonte principal
│ ├── __init__.py
│ ├── strategies/
│ │ ├── __init__.py
│ │ ├── ValidationStrategy.py # Interface Strategy
│ │ ├── EmailValidation.py
│ │ ├── BRLCurrencyValidation.py
│ │ ├── CPFValidation.py
│ │ ├── CNPJValidation.py
│ │ ├── TimeValidation.py
│ │ └── NameValidation.py
│ ├── ValidatorContext.py # Contexto que usa as estratégias
│ └── RegexValidator.py # Facade simples
│
├── tests/
│ ├── __init__.py
│ ├── test_emailvalidation.py
│ ├── test_brlcurrencyvalidation.py
│ ├── test_cpfvalidation.py
│ ├── test_cnpjvalidation.py
│ ├── test_timevalidation.py
│ └── test_namevalidation.py
│
├── LICENSE
├── .gitignore
├── poetry.lock
├── pyproject.toml # Configuração do Poetry
├── README.md # Documentação do projeto
└── LICENSE
📌 Instalação
pip install validator-regex
📌 Ou se estiver usando Poetry:
poetry add validator-regex
📌 Mode de utilizar
from validator_regex.RegexValidator import RegexValidator
# E-mail
print(RegexValidator.is_email("usuario@exemplo.com")) # → True
print(RegexValidator.is_email("usuario.exemplo")) # → False
# Moeda BRL
print(RegexValidator.is_brl("R$ 1.234,56")) # → True
print(RegexValidator.is_brl("R$1234.56")) # → False
# CPF
print(RegexValidator.is_cpf("123.456.789-09")) # → True
print(RegexValidator.is_cpf("12345678909")) # → False
# CNPJ
print(RegexValidator.is_cnpj("12.345.678/0001-95")) # → True
# Hora
print(RegexValidator.is_time("23:59")) # → True
print(RegexValidator.is_time("24:00")) # → False
# Nomes
print(RegexValidator.is_name("Carlos da Costa")) # → True
print(RegexValidator.is_name("Carlos123")) # → True
📌 Contribuição
Contribuições são bem-vindas! Se você deseja adicionar uma nova estratégia de validação ou melhorar a existente, siga estes passos:
- Faça um fork do repositório
- Crie uma branch com a nova funcionalidade (feature/nova-validacao)
- Escreva o código e os testes correspondentes
- Certifique-se de que todos os testes passam:
poetry run pytest
- Envie um pull request explicando a mudança
- Por favor, siga as convenções de código (pytest, black e mypy) e mantenha qualidade de código.
📌 Licença
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
📌 Autor
📌Carlos da Costa
📌Recife, PE - Brasil
📌Telefone: +55 81 99712 9140
📌Telegram: @jcarlossc
📌Blogger linguagem R: https://informaticus77-r.blogspot.com/
📌Blogger linguagem Python: https://informaticus77-python.blogspot.com/
📌Email: jcarlossc1977@gmail.com
📌Portfólio temporário: https://portfolio-carlos-costa.netlify.app/
📌LinkedIn: https://www.linkedin.com/in/carlos-da-costa-669252149/
📌GitHub: https://github.com/jcarlossc
📌Kaggle: https://www.kaggle.com/jcarlossc/
📌Twitter/X: https://x.com/jcarlossc1977
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
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 validator_regex-0.1.0.tar.gz.
File metadata
- Download URL: validator_regex-0.1.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.9 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17281cefa459a6cd80280535816255c55b08c028c31d0489306e68e27123b997
|
|
| MD5 |
0902aba08c69a561759326c41c5c3ce7
|
|
| BLAKE2b-256 |
19820198be97d6114992059403fcae4413e7ec1bc56f9c9df9bff49c2a44748e
|
File details
Details for the file validator_regex-0.1.0-py3-none-any.whl.
File metadata
- Download URL: validator_regex-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.9 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
267a3eeaf0881f188ddf3fdf19bdcb9ec3e75aad003d2130d23691ffd9392ca6
|
|
| MD5 |
cf5f696d932f7d398b8667e80fa786d2
|
|
| BLAKE2b-256 |
b64e1b8df54320370ad2a3d6492830d4a8c0a6fbe7b979889557c868b0ac07e5
|