Une bibliothèque de validation de données simple et facile à utiliser pour Python.
Validoopsie
Validoopsie est une bibliothèque de validation de données remarquablement légère et conviviale pour Python. Elle est conçue pour vous aider à déclarer facilement des classes et à enchaîner les validations, dans un style rappelant les bibliothèques populaires de DataFrame. Cela en fait un outil familier et intuitif pour les développeurs qui travaillent régulièrement avec des dataframes.
Grâce à l’excellent travail de Narwhals, Validoopsie intègre le concept "Bring Your Own DataFrame" (BYOD). Cette flexibilité vous permet d’utiliser n’importe quel DataFrame supporté par Narwhals pour vos tâches de validation de données. Pour explorer la gamme complète des DataFrames supportés, vous pouvez visiter ce lien.
La syntaxe de Validoopsie a été soigneusement conçue pour garantir une facilité d’utilisation. Chaque fonction de validation est encapsulée dans sa propre méthode, qui peut être enchaînée de manière fluide. Ce design spécifique aux méthodes privilégie la simplicité et la lisibilité, vous libérant de la nécessité de vous adapter à une nouvelle API à chaque fois que vous
bibliothèques de commutation. Il vous permet de vous concentrer sur le maintien d’un code propre et compréhensible.
Validoopsie s’inspire largement de la bibliothèque Great Expectations. Il s’efforce de distiller le processus de validation des données en quelque chose de simple et efficace. Que vous vérifiiez l’intégrité des données ou assuriez la conformité aux normes de données, Validoopsie offre une solution simplifiée mais puissante pour rendre ces tâches accessibles et simples.
Table des matières
Installation
- pip
pip install Validoopsie- uv
uv add ValidoopsiePrise en main
- 📖 Documentation
- 🚨 Niveaux d’impact dans Validoopsie
- 🎯 Niveaux de seuil dans Validoopsie
- 🛠️ Directives de contribution
- ✨ Contribuer une nouvelle validation à Validoopsie
- 🧑💻 Développez votre propre validation personnalisée
- 🗂️ Catalogue de validations
à moitié endormi. La simplicité de la bibliothèque est renforcée par le concept BYOD (Apportez Votre
Propre DataFrame), où il vous suffit d'utiliser la classe Validate
et d'enchaîner les validations souhaitées. Cette approche garantit que vous pouvez
commencer avec un minimum d'effort et sans aucune complexité inutile.
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
SORTIE :
{
"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
}
}
}Vous pouvez également afficher les résultats de la validation dans un tableau formaté en utilisant la
méthode display_summary, qui offre une vue claire et lisible de vos
résultats de validation :
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)
La méthode display_summary prend en charge deux niveaux d'information :
"short"(par défaut) : Affiche les métriques clés telles que le timestamp, l'impact, le statut,
"full": Affiche tous les champs disponibles de validation et de résultat
tabulate
comme tablefmt pour différents styles de tableau (par exemple, "github", "grid",
"pipe", "html") et maxcolwidths pour contrôler la largeur des colonnes.Version
Vous pouvez vérifier à tout moment la version installée de Validoopsie :
from validoopsie import __version__print(__version__)
Méthodes Dunder
La classe Validate prend en charge plusieurs méthodes dunder Python pour plus de commodité :
repr(vd)— renvoie une chaîne récapitulative avec le nombre de lignes et le nombre de validations :
>>> repr(vd)
'Validate(rows=3, validations=3)'
``
str(vd) — renvoie une chaîne de caractères lisible par l’homme représentant le statut :
`py
>>> str(vd)
'Validate: 3 validation(s), passed=False'
`
len(vd) — renvoie le nombre de validations :
`py
>>> len(vd)
3
`Méthode Validate
Pour vous assurer que toutes vos validations ont été correctement exécutées et pour gérer
toutes les erreurs potentielles pouvant survenir lors du processus de validation, vous pouvez utiliser
la méthode
validate. Cependant, il est important de noter que les erreurs ne seront
levées que si le niveau impact est défini sur high. Sans ce paramètre,
les problèmes potentiels peuvent ne pas déclencher de message d'erreur.REMARQUE : L’erreur levée est une
ValueError personnalisée.
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()
Grâce à loguru, la sortie fournira des informations très
condensées sur les validations et leur statut de manière colorée.
Développement
Validoopsie inclut un Makefile pour simplifier les tâches de développement :
bash
Install dependencies
make setupRun linters (mypy, ruff)
make lintRun tests (includes doctests, stubtest)
make testRun both lint and test
make all ``Pour plus d'informations sur le développement, consultez les directives de contribution.
Licence
MIT © Validoopsie
Créateur original - Akmal Soliev
--- Tranlated By Open Ai Tx | Last indexed: 2026-06-11 ---