Metadata-Version: 2.4
Name: minivalidator
Version: 0.1.0
Summary: Pequeña librería de validadores reutilizables.
Home-page: 
Author: Tu Nombre
Author-email: tu-email@example.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file
Dynamic: requires-python
Dynamic: summary

# Minivalidator

Pequeña librería de validadores reutilizables para Python.

## Descripción

Minivalidator es una librería ligera que proporciona reglas de validación reutilizables para validar datos en aplicaciones Python. Incluye validadores comunes como verificación de cadenas no vacías, formato de email y rangos numéricos.

## Instalación

Puedes instalar Minivalidator usando pip:

```bash
pip install minivalidator
```

O desde el código fuente:

```bash
git clone <https://github.com/KevinNavia/Pg2_2daInstancia.git>
cd minivalidator
pip install .
```

## Uso

### Importar la librería

```python
from minivalidator.rules import NotEmpty, IsEmail, InRange
from minivalidator.errors import ValidationError
```

### Ejemplos de uso

#### NotEmpty
Valida que una cadena no esté vacía.

```python
validator = NotEmpty()
try:
    validator.validate("hola")  # Pasa
    validator.validate("")      # Lanza ValidationError
except ValidationError as e:
    print(e)
```

#### IsEmail
Valida el formato de un email.

```python
validator = IsEmail()
try:
    validator.validate("user@example.com")  # Pasa
    validator.validate("invalid-email")     # Lanza ValidationError
except ValidationError as e:
    print(e)
```

#### InRange
Valida que un número esté dentro de un rango.

```python
validator = InRange(0, 10)
try:
    validator.validate(5)    # Pasa
    validator.validate(15)   # Lanza ValidationError
except ValidationError as e:
    print(e)
```

## API

### Clases de Validación

- `Rule`: Clase base abstracta para reglas de validación.
- `NotEmpty`: Valida que el valor no sea None o una cadena vacía.
- `IsEmail`: Valida que el valor sea una cadena con formato de email válido.
- `InRange(min_, max_)`: Valida que el valor numérico esté dentro del rango especificado.

### Excepciones

- `ValidationError`: Excepción lanzada cuando una validación falla. Incluye el mensaje de error y el valor inválido.

## Pruebas

Para ejecutar las pruebas, instala pytest y ejecuta:

```bash
pytest
```

O específicamente para las pruebas de reglas:

```bash
pytest test/test_rules.py
```

## Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

## Autor

Kevin Navia Matienzo - kevinnavia68@gmail.com

