GTFS Validators > Transit App's gtfs-fares-v2-validator
A Python tool that validators GTFS-Fares-v2 data based on the draft specification.
Fares have been added to the MobilityData validator, you should use this instead
https://github.com/MobilityData/gtfs-validator
gtfs-fares-v2-validator
This is a tool to validate fares-v2 GTFS datasets.
Validates ONLY fares-v2 specific files and dependent files, and does NOT validate GTFS schedule data.
Provides validation towards two versions of the fares-v2 specifications:
- [Default] fares-v2 files in the official GTFS specification
- [Through
-eflag] the official specification above, as well as additional fields ("experimental" fields) defined in the GTFS fares-v2 draft document, with some exceptions. Also includes some fields used internally at Transit, and which are either current or upcoming proposals to the official specification.
Running the tool with the -e flag provides validation for experimental features, and notices pertaining to experimental features are clearly marked as such.
Requirements
python 3
Validate a fares dataset
python3 validate.py PATH-TO-FOLDER-CONTAINING-FARES-V2-DATASET [-o, --output-file FILE-TO-EXPORT-VALIDATION-REPORT-TO] [-e, --experimental]
For example:
python3 validate.py ~/data/my-fares-v2-dataset -o report.txt
Run tests
python3 -m pip install pytest
pytest
Unsupported experimental fields and files (subject to change)
fare_capping.txt: unsupported file. Allfare_cappingreferences in other files are also unsupported.fare_products.txt:service_id, alltimeframefieldsfare_transfer_rules.txt:transfer_id,transfer_sequence
Discontinued experimental fields
fare_leg_rules.txt:contains_area_id, allamountfields,currencyfare_transfer_rules.txt: allamountfields,currency,
Amount and currency on these two files have been replaced by the usage of fare products to specify cost.
Additional experimental fields
fare_leg_rules.txttransfer_only: specifies that a fare leg rule may only be used at the back-end of a transfer
fare_transfer_rules.txtfilter_fare_product_id: a fare product necessary to have in order for a transfer to be valid. Does not encode thecostof a transfer, asfare_product_iddoes.