Una biblioteca de Validación de Datos simple y fácil de usar para Python.
Validoopsie
Validoopsie es una biblioteca de validación de datos notablemente ligera y fácil de usar para Python. Está diseñada para ayudarte a declarar clases fácilmente y encadenar validaciones juntas, en un estilo que recuerda a las populares bibliotecas de DataFrame. Esto la convierte en una herramienta familiar e intuitiva para desarrolladores que trabajan regularmente con dataframes.
Gracias al excelente trabajo de Narwhals, Validoopsie incorpora el concepto "Trae Tu Propio DataFrame" (BYOD). Esta flexibilidad te permite usar cualquier DataFrame que Narwhals soporte para tus tareas de validación de datos. Para explorar la gama completa de DataFrames soportados, puedes visitar este enlace.
La sintaxis de Validoopsie ha sido cuidadosamente diseñada para asegurar facilidad de uso. Cada función de validación está encapsulada en su propio método, que puede ser enlazado sin problemas. Este diseño específico por método prioriza la simplicidad y la legibilidad, liberándote de la necesidad de adaptarte a una nueva API cada vez que tú bibliotecas de cambio. Te permite concentrarte en mantener un código limpio y comprensible.
Validoopsie se inspira significativamente en la biblioteca Great Expectations. Se esfuerza por destilar el proceso de validación de datos en algo sencillo y eficiente. Ya sea que estés verificando la integridad de los datos o asegurando el cumplimiento con los estándares de datos, Validoopsie ofrece una solución optimizada pero poderosa para hacer que estas tareas sean accesibles y sencillas.
Tabla de Contenidos
Instalación
- pip
pip install Validoopsie- uv
uv add ValidoopsiePrimeros Pasos
- 📖 Documentación
- 🚨 Niveles de Impacto en Validoopsie
- 🎯 Niveles de Umbral en Validoopsie
- 🛠️ Guía de Contribución
- ✨ Cómo Contribuir con una Nueva Validación en Validoopsie
- 🧑💻 Desarrolla tu Propia Validación Personalizada
- 🗂️ Catálogo de Validaciones
medio dormido. La simplicidad de la biblioteca se mejora con el concepto BYOD (Trae Tu Propio DataFrame), donde solo necesitas utilizar la clase Validate
y encadenar las validaciones que desees. Este enfoque garantiza que puedas
comenzar con un esfuerzo mínimo y sin ninguna complejidad innecesaria.
import pandas as pdfrom validoopsie import Validate
p_df = pd.DataFrame(
{
"name": ["John", "Doe", "Jane"],
"target_name": ["John", "Doe", "Jane"],
"last_name": ["Smith", "Smith", "Smith"],
"age": [25, 30, 35],
},
)
vd stands for Validate Data
vd = Validate(p_df)
vd.EqualityValidation.PairColumnEquality(
column="name",
target_column="age",
impact="high",
).UniqueValidation.ColumnUniqueValuesToBeInList(
column="last_name",
values=["Smith"],
).ValuesValidation.ColumnValuesToBeBetween(
column="age",
min_value=20,
max_value=40,
)vd.results
SALIDA:{
"Summary": {
"passed": false,
"validations": [
"PairColumnEquality_name",
"ColumnUniqueValuesToBeInList_last_name",
"ColumnValuesToBeBetween_age"
],
"failed_validation": ["PairColumnEquality_name"]
},
"PairColumnEquality_name": {
"validation": "PairColumnEquality",
"impact": "high",
"timestamp": "2025-10-07T11:25:04.213211+02:00",
"column": "name",
"result": {
"status": "Fail",
"threshold_pass": false,
"message": "The column 'name' is not equal to the column'age'.",
"failing_items": [
"Doe - column name - column age - 30",
"Jane - column name - column age - 35",
"John - column name - column age - 25"
],
"failed_number": 3,
"frame_row_number": 3,
"threshold": 0.0,
"failed_percentage": 1.0
}
},
"ColumnUniqueValuesToBeInList_last_name": {
"validation": "ColumnUniqueValuesToBeInList",
"impact": "low",
"timestamp": "2025-10-07T11:25:04.216417+02:00",
"column": "last_name",
"result": {
"status": "Success",
"threshold_pass": true,
"message": "All items passed the validation.",
"frame_row_number": 3,
"threshold": 0.0
}
},
"ColumnValuesToBeBetween_age": {
"validation": "ColumnValuesToBeBetween",
"impact": "low",
"timestamp": "2025-10-07T11:25:04.217300+02:00",
"column": "age",
"result": {
"status": "Success",
"threshold_pass": true,
"message": "All items passed the validation.",
"frame_row_number": 3,
"threshold": 0.0
}
}
}También puedes mostrar los resultados de la validación en una tabla formateada utilizando el
método display_summary, que ofrece una vista limpia y legible de tus
resultados de validación:
vd.display_summary()
Display a full detailed table with all available information
vd.display_summary(information="full")
Customize the table format (supports tabulate formatting options)
vd.display_summary(tablefmt="pipe", maxcolwidths=20)
El método display_summary soporta dos niveles de información:
"short"(por defecto): Muestra métricas clave como marca de tiempo, impacto, estado,
"full": Muestra todos los campos disponibles de validación y resultados
tabulate como tablefmt para diferentes estilos de tabla (por ejemplo, "github", "grid",
"pipe", "html") y maxcolwidths para controlar el ancho de las columnas.Versión
Puedes verificar la versión instalada de Validoopsie en cualquier momento:
from validoopsie import __version__print(__version__)
Métodos Dunder
La clase Validate soporta varios métodos dunder de Python para mayor comodidad:
repr(vd)— devuelve una cadena resumen con el recuento de filas y el número de validaciones:
>>> repr(vd)
'Validate(rows=3, validations=3)'
``
str(vd) — devuelve una cadena de estado legible para humanos:
`py
>>> str(vd)
'Validate: 3 validation(s), passed=False'
`
len(vd) — devuelve el número de validaciones:
`py
>>> len(vd)
3
`Método Validate
Para asegurarse de que todas sus validaciones se hayan ejecutado correctamente y manejar
cualquier error potencial que pueda surgir durante el proceso de validación, puede usar
el método
validate. Sin embargo, es importante señalar que los errores solo se
generarán si el nivel de impact está configurado en high. Sin esta configuración,
los problemas potenciales pueden no activar un mensaje de error.NOTA: El error generado es un
ValueError personalizado.
py
import pandas as pdfrom validoopsie import Validate
p_df = pd.DataFrame( { "name": ["John", "Doe", "Jane"], "target_name": ["John", "Doe", "Jane"], "last_name": ["Smith", "Smith", "Smith"], "age": [25, 30, 35], }, )
vd stands for Validate Data
vd = Validate(p_df)
vd.EqualityValidation.PairColumnEquality(
column="name",
target_column="age",
impact="high",
).UniqueValidation.ColumnUniqueValuesToBeInList(
column="last_name",
values=["Smith"],
).ValuesValidation.ColumnValuesToBeBetween(
column="age",
min_value=20,
max_value=40,
).validate()
Gracias a loguru la salida proporcionará una información muy
concisa sobre las validaciones y su estado de una manera colorida.
Desarrollo
Validoopsie incluye un Makefile para simplificar las tareas de desarrollo:
bash
Install dependencies
make setupRun linters (mypy, ruff)
make lintRun tests (includes doctests, stubtest)
make testRun both lint and test
make all ``Para más información sobre el desarrollo, consulta las directrices de contribución.
Licencia
MIT © Validoopsie
Creador Original - Akmal Soliev
--- Tranlated By Open Ai Tx | Last indexed: 2026-06-11 ---