Aller au contenu

validate

gapline validate [-f PATH] [--format FORMAT] [-o PATH] [--min-severity LEVEL] [--disable-rule RULE_ID...]

validate applique toutes les règles enregistrées dans le build à un flux GTFS et affiche les anomalies groupées par sévérité. C’est le point d’entrée principal des pipelines CI et des workflows de nettoyage.

Si --feed est omis, gapline se rabat sur la clé [default] feed du plus proche gapline.toml. Idem pour --format et --output.

Les anomalies sont produites dans cinq formats : texte terminal coloré (défaut), JSON, CSV, XML, ou rapport HTML auto-contenu. Le processus sort non nul dès qu’une anomalie ERROR est présente.

FlagCourtValeurDescription
--feed-fPATHChemin vers le flux GTFS (.zip ou répertoire décompressé). Optionnel si [default] feed est défini dans un fichier de config.
--formatFORMATFormat de sortie : text, json, csv, xml, html. Défaut text.
--output-oPATHÉcrit le rapport vers ce chemin au lieu de stdout.
--min-severityLEVELFiltre les anomalies en dessous de ce niveau. Une de error, warning, info. Affecte listing et compteurs du résumé.
--disable-ruleRULE_IDDésactive une ou plusieurs règles de validation. Accepte plusieurs IDs après un seul flag. S’ajoute à [validation] disabled_rules.

Les flags globaux sont listés sur référence / flags globaux.

Pendant la validation, gapline stream des barres de progression par groupe pour les sept stages. À la fin, un bloc de résumé est ajouté avec les compteurs totaux et un statut PASS/FAIL.

Sans -o, chaque anomalie est affichée inline au-dessus du résumé, précédée de son label de sévérité :

[ERROR] fk_violation — stop_id "BAD_STOP" not found in stops.txt — stop_times.txt:14203 — stop_id = BAD_STOP
[WARNING] duplicate_route_short_name — two routes share short_name "747" — routes.txt:58 — route_short_name = 747
[INFO] missing_shape — trip has no shape_id — trips.txt:1029 — shape_id =

Avec -o, les anomalies vont dans le fichier et la console n’affiche que les barres de progression et le résumé :

$ gapline validate -f stm.zip -o output.txt
File Structure [██████████████████████████████] 14/14
CSV Formatting [██████████████████████████████] 2/2
→ Feed loaded: 847,392 rows in 14 files
Third-Party Validators [██████████████████████████████] 6/6
Field Validation [██████████████████████████████] 13/13
Key & Reference Validation [██████████████████████████████] 24/24
Semantic & Logic [██████████████████████████████] 24/24
Best Practices [██████████████████████████████] 9/9
===================================
Summary
===================================
45 Errors — 94912 Warnings — 177074 Infos
Status: FAIL
Fenêtre de terminal
gapline validate -f gtfs.zip
Fenêtre de terminal
gapline validate -f gtfs.zip --format json -o report.json
Fenêtre de terminal
gapline validate -f gtfs.zip --format html -o report.html

Le fichier HTML est auto-contenu (CSS et JS inlinés). Ouvrez-le par double-clic.

Fenêtre de terminal
gapline validate -f gtfs.zip --min-severity error

Les avertissements et infos sont retirés du listing et des compteurs.

Fenêtre de terminal
gapline validate -f gtfs.zip --disable-rule speed_validation coords_out_of_range

Listez chaque ID enregistré avec gapline rules list. L’autocomplétion shell suggère aussi les IDs dynamiquement.

gapline.toml
[default]
feed = "./data/gtfs.zip"
format = "json"
[validation]
min_severity = "warning"
disabled_rules = ["speed_validation"]
Fenêtre de terminal
gapline validate -o report.json
CodeSignification
0Validation terminée. Aucune anomalie au-dessus du seuil de sévérité effectif.
1Validation terminée mais le flux a des anomalies ERROR (ou toute anomalie après --min-severity).
2Erreur de configuration (gapline.toml malformé, clé inconnue, seuil invalide).
3Erreur I/O (flux introuvable, chemin de sortie non-écrivable).

Voir concepts / codes de retour pour la table complète.