Skip to main content

Business Rules Validator

Este proyecto implementa un validador de reglas de negocio en Python utilizando pandas y una base de datos MSSQL.

📌 Características

  • Validación de reglas de negocio almacenadas en la base de datos.
  • Soporte para múltiples tipos de reglas como valores únicos, rangos, expresiones regulares y más.
  • Capacidad para definir funciones personalizadas como validadores.
  • Integración con MSSQL mediante mssqldbfacade.

📦 Instalación

Asegúrate de tener Python 3.8+ instalado y ejecuta:

pip install simpledataquality

🚀 Uso

1. Inicialización del validador

from simpledataquality.validator import BusinessRulesValidator

validator = BusinessRulesValidator()

2. Cargar reglas de negocio desde la base de datos

reglas = validator.cargar_reglas_negocio()

3. Aplicar reglas a un DataFrame

import pandas as pd

df = pd.DataFrame({
    'edad': [20, 17],
    'salario': [45000, 60000],
    'email': ['test@example.com', 'invalid-email'],
    'codigo': ['A123', 'B456'],
    'anio': ['2025-02-15', '2025-04-10']
})

errores = validator.aplicar_reglas(df, reglas)

if errores:
    print("Errores encontrados:", errores)
else:
    print("Todos los datos son válidos.")

📖 Tipos de Reglas

Las reglas de validación se almacenan en la base de datos con los siguientes tipos:

Tipo de Regla Descripción
NO_NULO El campo no puede ser nulo.
UNICO El campo debe tener valores únicos.
EXPRESION_REGULAR El campo debe coincidir con una expresión regular.
MINIMO El valor mínimo permitido.
MAXIMO El valor máximo permitido.
CANTIDAD_REGISTROS Debe haber exactamente X registros.
PROMEDIO El promedio del campo debe ser un valor específico.
DESVIACION_ESTANDAR La desviación estándar debe ser un valor específico.
RANGO El valor debe estar dentro de un rango.
RANGO_VALOR Si el primer campo está en un rango, el segundo debe cumplir un valor específico.
RANGO_RANGO Si el primer campo está en un rango, el segundo debe estar en un subrango.
FUNCION_PERSONALIZADA Se ejecuta una función definida por el usuario.
HISTORICA_MAYOR El valor debe ser mayor a un histórico de la base de datos.
HISTORICA_MENOR El valor debe ser menor a un histórico de la base de datos.
COLUMNAS Valida que ciertas columnas existan en el DataFrame.

📂 Ejemplo de Reglas en la Base de Datos

nombre_columna tipo_regla valor_regla mensaje_error
edad MINIMO 18 La edad debe ser al menos 18 años
salario MAXIMO 50000 El salario no puede exceder los 50,000
email EXPRESION_REGULAR ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$ El email no es válido
codigo UNICO NULL El código debe ser único
codigo FUNCION_PERSONALIZADA def validar_codigo(valor): return valor.startswith("A") Código no válido
anio RANGO 2025-01-01,2025-03-01 El rango de valores debe ser entre 2025-01-01 y 2025-03-01
edad RANGO 18,45 El rango de valores debe ser entre 18 y 45
anio,salario RANGO_VALOR 2025-01-01,2025-02-28,40000 En el rango de valores entre 2025-01-01 y 2025-02-28 debe tener valor de 40000
salario HISTORICA_MAYOR SELECT 39000 total El salario debe ser mayor a 39000

🔧 Extensión y Personalización

Si necesitas agregar nuevas reglas, puedes extender la clase BusinessRulesValidator y definir nuevas funciones de validación.

class CustomValidator(BusinessRulesValidator):
    def nueva_regla(self, valor):
        return valor in ["A", "B", "C"]

🛠 Mantenimiento y Contribución

  1. Clona este repositorio.
  2. Instala dependencias.
  3. Realiza cambios y envía un Pull Request.

© 2025 - Business Rules Validator By: Alan Medina & Camila Vanegas ⚙️

Metadata

Release files for simpledataquality 1.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simpledataquality 1.0.8
File Size Uploaded Provenance
simpledataquality-1.0.8.tar.gz 10.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for simpledataquality 1.0.8
File Interpreter ABI Platform
simpledataquality-1.0.8-py3-none-any.whl Python 3 none any Details

Total release size: 19.9 kB

Release files / simpledataquality-1.0.8.tar.gz

Download URL simpledataquality-1.0.8.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
4bacfd78847e62e9a2a9bef75689df36b240446cb7cccb39e98dad4acb3441aa
BLAKE2b-256 checksum
How to use checksums
729da436314ea276e5bbddf8a36b44b7221fce82aa0284f25bd8500685970e77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.8.10

Release files / simpledataquality-1.0.8-py3-none-any.whl

Download URL simpledataquality-1.0.8-py3-none-any.whl
Size 9.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d4ae376f6f7674c4b23230f4add5a4f7a5315ec78d04d286ae25a16a7c9f77f7
BLAKE2b-256 checksum
How to use checksums
133a7d2c9363d64f2dfc225d2346ac88a2608b88d168d8524a62c0e606da22b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.8.10

Security for simpledataquality 1.0.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page