Web Analytics

wimsey

⭐ 167 stars Spanish by benrutter

🔍 Wimsey

Codeberg PyPi

Docs License coverage

Wimsey es una biblioteca ligera, flexible y totalmente de código abierto para contratos de datos.

Consulta el útil catálogo de pruebas y la guía rápida

¿Qué es un contrato de datos?

Además de ser una buena palabra de moda para mencionar en tu próximo evento de datos, los contratos de datos son una buena forma de probar valores de datos en puntos límite. Idealmente, todos los datos serían utilizables cuando los recibes, pero probablemente ya hayas descubierto que no siempre es así.

Un contrato de datos es una expresión de lo que debería ser cierto sobre algunos datos - podríamos querer verificar que las únicas columnas que existen son first_name, last_name y rating, o podríamos querer verificar que rating es un número menor que 10.

Wimsey te permite escribir contratos en json, yaml o python, así se verían las verificaciones anteriores en yaml:

- test: columns_should
  be:
    
  • first_name
  • last_name
  • rating
  • column: rating
test: max_should be_less_than_or_equal_to: 10

Wimsey entonces puede ejecutar pruebas para usted de un par de maneras, validate - que lanzará un error si las pruebas fallan, y de lo contrario devolverá su dataframe - y test, que le dará un desglose detallado de éxitos y fallos de pruebas individuales.

Validate está diseñado para funcionar bien con los métodos pipe de polars o pandas como una protección útil:

import polars as pl
import wimsey

df = ( pl.read_csv("hopefully_nice_data.csv") .pipe(wimsey.validate, "tests.json") .group_by("name").agg(pl.col("value").sum()) )

La prueba es una única llamada a función, que retorna un tipo de dato FinalResult:

import pandas as pd
import wimsey

df = pd.read_csv("hopefully_nice_data.csv") results = wimsey.test(df, "tests.yaml")

if results.success: print("Yay we have good data! 🥳") else: print(f"Oh nooo, something's up! 😭") print([i for i in results.results if not i.success])

Hoja de ruta, Contribuciones y Comentarios

Wimsey está replicado en github, pero alojado y desarrollado en codeberg. Se aceptan problemas y solicitudes de extracción en ambos.

El enfoque en este momento está en refinar el perfilado y la generación de pruebas, si tienes pruebas o funciones que te serían útiles, ¡no dudes en contactar!

--- Tranlated By Open Ai Tx | Last indexed: 2025-12-10 ---