Skip to main content

A package implement a basic data quelity check

Project description

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 ⚙️

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

simpledataquality-1.0.5.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

simpledataquality-1.0.5-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file simpledataquality-1.0.5.tar.gz.

File metadata

  • Download URL: simpledataquality-1.0.5.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.8.10

File hashes

Hashes for simpledataquality-1.0.5.tar.gz
Algorithm Hash digest
SHA256 8092905297e603a6117421a7a9b4638ea07ce75290c8fb64018a14bae66518db
MD5 24c9cc6ba7a2a56f92b41541e6b082ea
BLAKE2b-256 547eaa3b018febc41dfc5253f696c4f3bfdb70d8f8c99bdd1d80ed26734210a4

See more details on using hashes here.

File details

Details for the file simpledataquality-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for simpledataquality-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 725da409b64f90eea8d9c10aebf630016f05079a9c31e4af8bc5fa3dfde82f7e
MD5 7229b5b433ee0863bad8a3dd85da53fe
BLAKE2b-256 22604464c5205719662439a4d68a686288ae26fbbef4f339995e4e30a72a2c77

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