Skip to main content

A Python Library for GTFS

Project description

PyGTFSLib

A python library for the GTFS format.

So far, this is only a loose, incomplete collection of rather low-level tools for parsing GTFS feeds. The motivation for this library is to consolidate GTFS related code used at geOps in a single library. This is still work in progress, so breaking changes are to be expected.

This library aims to be efficient in terms of parsing time and memory usage to allow processing a large number of feeds.

Installation

Install the latest stable release from PyPI with pip:

pip install pygtfslib

Modules

Spatial

The pygtfslib.spatial module contains classes and functions related to spatial data. So far, there is only one function read_shapes that can be used to parse shapes.txt using a generic factory that accepts an iterable of pygtfslib.spatial.ShapeRow instances.

Temporal

The pygtfslib.temporal module contains classes and functions related to temporal data. So far, it provides functions to parse calendar and frequency entries and stop times. It also provides a TimeCache class that accelerates conversion of GTFS timezone, operating day and time delta to a timezone-aware python datetime.datetime.

MOT

The pygtfslib.mot module contains tools related to GTFS route types / mode of transportation. So far, there is a function route_type_to_mot that can convert a GTFS route type or extended route type to a MOT string that can be used in the geOps routing engine.

CSV

The pygtfslib.fast_csv module contains low-level tools for CSV parsing. There are two generator functions that allow to iterate over a CSV file yielding rows as dicts or namedtuples. They are built on top of the builtin python CSV reader but they are faster than the builtin DictReader.

Issue Tracker

Please use the GitHub issue tracker to report bugs/issues.

Development

Contributing

If you want to contribute to the pygtfslib library, you can make a pull request at GitHub. Before working on major features/changes, please consider contacting us about your plans. See our GitHub page for contact details.

Editable Installation

Clone this repo and enter the corresponding directory. Create a virtual environment, then install frozen requirements, dev-requirements and this library in editable mode:

python3.7 -m venv env
. env/bin/activate
pip install -U pip
pip install -r requirements.txt -r dev-requirements.txt -e .

Keep env activated for all following instructions.

Pre-Commit Hooks

Enable pre-commit hooks:

pre-commit install

From time to time (not automated yet) run

pre-commit autoupdate

to update frozen revs.

Run tests

Run tests and analyze code coverage:

pytest --cov=pygtfslib --cov-report term --cov-fail-under=35 pygtfslib

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygtfslib-0.1.0.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

pygtfslib-0.1.0-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file pygtfslib-0.1.0.tar.gz.

File metadata

  • Download URL: pygtfslib-0.1.0.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.14

File hashes

Hashes for pygtfslib-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1115f5fecea10beb1695b9c228608b01e02914607d730e4cd0e0bd8e3364bfbf
MD5 ad0041f8b31540b8ea8aeb64c372b019
BLAKE2b-256 353d3a09005e847e18db26ee128481da670facf0a0c8d74301827a0167ca0a62

See more details on using hashes here.

File details

Details for the file pygtfslib-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pygtfslib-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.14

File hashes

Hashes for pygtfslib-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a22bb65681f94da704825aa8b5fce25a6587a8fb76d705600cd081b2434057a7
MD5 27ce96f7c90f679b53a6906215e4906e
BLAKE2b-256 f0ef1511de75d0291bd6c60d1e8c1e768489dbad2680afa600630012986e2ac5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page