# Contexte Avec l'update de la version v5 de `frictionless-py`, la structure du rapport de validation généré par `frictionless` s'en voit modifiée : Certains attributs du rapport de validation ne sont plus inclus dans les metadata et ne sont plus reportés dans la représentation sous forme de dictionnaire du rapport de validation. Cela implique une modification de la structure du rapport de validation json retourné par l'API de Validata. La structure du rapport de validation résultante sur l'interface utilisateur de Validata n'est quant à elle pas impactée. # Modification des metadata du rapport de validation engendrée par la v5 de frictionless Les modifications portent sur les points suivants : ## Metadata du rapport de validation ### Suppression de certaines propriétés dans les metadata - `report.date` correspondant à la date-time d'édition du rapport de validation par frictionless, - `report.time` correspondant au temps mis par frictionless pour exécuter la validataion (remplacée par `report.stats.["seconds"]`), - `report.version` correspondant à la version utilisée par frictionless ### Nouvelles propriétés introduites dans les metadata - `report.warnings` correspondant à la liste des 'warnings' levés pendant la validation des données ## Metadatas statistiques du rapport de validation `report["stats"]` Rajout de nouvelles propriétés statistiques : - `report.stats["seconds"]`, correspondant au temps de validation en secondes mis par `frictionles-py` - `report.stats["warnings"]`, correspondant au nombre de 'warnings' levés pendant la validation des données ## Metadatas relatives à chaque tâche du rapport de validation: Pour chaque tâche `task = report["tasks"][i]`, - Suppression de certaines propriétés : - `task.partial` pour indiquer si la validation est partielle (cette notion n'est pas plus documentée dans `frictionless`) - `task.resource` correspondant aux metadatas de l'objet frictionless `Resource` utilisé pour la validation, elle inclut les metadatas suivantes : - data, - format, - hashing, - layout, - name, - profile, - schema, - scheme, - stats - `task.scope` correspondant à la portée de la validation (erreurs et `customs-checks` pris en charge dans la validation) - `task.time` correspondant au temps d'exécution de la tâche en secondes mis par `frictionles-py` - Nouvelles propriétés introduites : - `task.name` correspondant à un nom court utilisable par url - `task.place` correspondant à la l'emplacement du fichier - `task.type` précise si la validation porte sur des données tabulaires - Propriétés renommées : - `task["structure_warnings"]` est remplacée par `task.warning` - `task.stats` rajoute de nouvelles infos statistiques : - `task.stats["fields"]` correspondant au nombre de champs - `task.stats["rows"]` correspondant au nombre de ligne - `task.stats["seconds"]` correspondant au temps d'exécution de la tâche en secondes mis par frictionless - `task.stats.["warnings"]`, correspondant au nombre 'warnings' levés pendant l'exécution de la tâche par frictionless ## Metadatas relatives aux erreurs des tâches du rapport de validation : Pour chaque erreurs reportées dans chacune des tâches ` error = report.tasks[i].errors[i]"`: - la propriété`error.code` est remplacée par `error.type` # Conclusion Lors des travaux réalisés sur l'update de la v5 de frictionless, le contenu du rapport de validation retourné par Validata a été adapté pour assurer une rétrocompatibilité et intégrer les metadatas qui existaient encore dans la version v4.38.0 de `frictionless` utiliée auparavant par Validata.