TDEI-mobility-canonical-validator
This package is used to validate the canonical data. This library is used to validate all the GTFS datasets that are compatible with Mobility Data
The library pushes the dataset zip file to Mobility Data and fetches the report.
The reference for GTFS is available here
System requirements
| Software | Version |
|---|---|
| Python | 3.10.x |
What this package does?
This package is used to validate the canonical data.
Starting a new project with template
- Add
gtfs-canonical-validatorpackage as dependency in yourrequirements.txt - or
pip install gtfs-canonical-validator - Start using the packages in your code.
Initialize and Configuration
from gtfs_canonical_validator import CanonicalValidator
canonical_validator = CanonicalValidator(zip_file=<CANONICAL_ZIP_FILE_PATH>)
report = canonical_validator.validate()
print(report)
Testing
The project is configured with python to figure out the coverage of the unit tests. All the tests are in tests
folder.
-
To execute the tests, please follow the commands:
pip install -r requirements.txtpython -m unittest discover -v tests/unit_tests -
To execute the code coverage, please follow the commands:
python -m coverage run --source=src/gtfs_canonical_validator -m unittest discover -s tests/unit_testspython -m unittest test_sample.MyTestCase.test_function- To run a single test casecoverage html// Can be run after 1st commandcoverage report// Can be run after 1st command -
After the commands are run, you can check the coverage report in
htmlcov/index.html. Open the file in any browser, and it shows complete coverage details -
The terminal will show the output of coverage like this
> python -m unittest discover -v tests/unit_tests
test_validate_failed_upload (test_canonical_validator.TestCanonicalValidator) ... ok
test_validate_successful_upload (test_canonical_validator.TestCanonicalValidator) ... ok
test_validate_successful_upload (test_canonical_validator.TestCanonicalValidatorSuccessWithDatasets) ... ok
test_get_result_url (test_constants.TestConstants) ... ok
test_get_info_failure (test_mobility_data.TestMobilityData) ... ok
test_get_info_success (test_mobility_data.TestMobilityData) ... ok
test_get_mobility_data_failure (test_mobility_data.TestMobilityData) ... ok
test_get_mobility_data_success (test_mobility_data.TestMobilityData) ... ok
test_upload_failure (test_mobility_data.TestMobilityData) ... ok
test_upload_success (test_mobility_data.TestMobilityData) ... ok
----------------------------------------------------------------------
Ran 10 tests in 69.643s
OK
Coverage Report
> coverage report
Name Stmts Miss Cover
-----------------------------------------------------------------------
src/example.py 5 5 0%
src/gtfs_canonical_validator/__init__.py 20 0 100%
src/gtfs_canonical_validator/constants.py 5 0 100%
src/gtfs_canonical_validator/gtfs_validator.py 44 0 100%
src/gtfs_canonical_validator/version.py 1 0 100%
-----------------------------------------------------------------------
TOTAL 75 5 93%
Running validation on Local files
- Use the code in example.py to replace the dataset sources and run the code to get the validation report.
- An example report can be found at example-report.json
- The report explanation can be found here
Deployment:
Deploy to TestPy
- On every push to
devbranch, a workflow is triggered which publishes the updated version to TestPy
Deploy to PyPI
- This happens whenever a tag/release is created with
*.*.*notation (eg. 0.0.8) - To change the version, change the version at version.py
- To release a new version:
- Go to Github link of this repository
- Under releases, click on
Draft a new release - Under
choose a new tag, add a new tagv*.*.*, Generate Release notes - Choose
mainbranch for release - Publish the release.
- This release triggers a workflow to generate the new version of the Package.
- The new package will be available at https://pypi.org/project/gtfs-canonical-validator/
Metadata
Release files for gtfs-canonical-validator 0.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gtfs_canonical_validator-0.0.9-py3-none-any.whl | Python 3 | none | any | Details |
Release files / gtfs_canonical_validator-0.0.9-py3-none-any.whl
| Download URL | gtfs_canonical_validator-0.0.9-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b3a7c4ebff91efafbdb2cc37a022037606100befffa6989491e39771b50ce865
|
|
BLAKE2b-256 checksum How to use checksums |
936912f759a3c4877ffd9ea0b7677192a04336ebb0e56efee518b72761f7f757
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|