Skip to main content

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

PyPI version
Python versions
License
Documentation Status

📌 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:MM ou HH: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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

validator_regex-0.1.0.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

validator_regex-0.1.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

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

Hashes for validator_regex-0.1.0.tar.gz
Algorithm Hash digest
SHA256 17281cefa459a6cd80280535816255c55b08c028c31d0489306e68e27123b997
MD5 0902aba08c69a561759326c41c5c3ce7
BLAKE2b-256 19820198be97d6114992059403fcae4413e7ec1bc56f9c9df9bff49c2a44748e

See more details on using hashes here.

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

Hashes for validator_regex-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 267a3eeaf0881f188ddf3fdf19bdcb9ec3e75aad003d2130d23691ffd9392ca6
MD5 cf5f696d932f7d398b8667e80fa786d2
BLAKE2b-256 b64e1b8df54320370ad2a3d6492830d4a8c0a6fbe7b979889557c868b0ac07e5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page