Web Analytics

wimsey

⭐ 167 stars French by benrutter

🔍 Wimsey

Codeberg PyPi

Docs License coverage

Wimsey est une bibliothèque de contrats de données légère, flexible et entièrement open-source.

Découvrez le catalogue de tests pratique et le guide de démarrage rapide

Qu’est-ce qu’un contrat de données ?

En plus d’être un bon mot à la mode à mentionner lors de votre prochain événement data, les contrats de données sont un bon moyen de tester les valeurs des données aux points limites. Idéalement, toutes les données seraient utilisables dès leur réception, mais vous avez sans doute déjà compris que ce n’est pas toujours le cas.

Un contrat de données est une expression de ce qui devrait être vrai concernant certaines données - on pourrait vouloir vérifier que les seules colonnes existantes sont first_name, last_name et rating, ou on pourrait vouloir vérifier que rating est un nombre inférieur à 10.

Wimsey vous permet d’écrire des contrats en json, yaml ou python, voici à quoi ressembleraient les vérifications ci-dessus en yaml :

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

Wimsey peut alors exécuter des tests pour vous de deux manières, validate - qui générera une erreur si les tests échouent, et renverra sinon votre dataframe - et test, qui vous donnera un compte rendu détaillé des réussites et des échecs des tests individuels.

Validate est conçu pour bien fonctionner avec les méthodes pipe de polars ou pandas comme une garde pratique :

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()) )

Le test est un appel de fonction unique, retournant un type de données 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])

Feuille de route, Contribution & Retour d'expérience

Wimsey est dupliqué sur github, mais hébergé et développé sur codeberg. Les problèmes et demandes de tirage sont acceptés sur les deux.

L'accent est actuellement mis sur l'affinement du profilage et de la génération de tests, si vous avez des tests ou une fonctionnalité qui vous seraient utiles, n'hésitez pas à nous contacter !

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