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.8.tar.gz (10.2 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.8-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: simpledataquality-1.0.8.tar.gz
  • Upload date:
  • Size: 10.2 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.8.tar.gz
Algorithm Hash digest
SHA256 4bacfd78847e62e9a2a9bef75689df36b240446cb7cccb39e98dad4acb3441aa
MD5 ba0e601093700f0791c3cc5879a4e3e1
BLAKE2b-256 729da436314ea276e5bbddf8a36b44b7221fce82aa0284f25bd8500685970e77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simpledataquality-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 d4ae376f6f7674c4b23230f4add5a4f7a5315ec78d04d286ae25a16a7c9f77f7
MD5 243cf34d70fd9abed385f23bd417ec53
BLAKE2b-256 133a7d2c9363d64f2dfc225d2346ac88a2608b88d168d8524a62c0e606da22b3

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