Source code for tilapya.gtfsrt
"""
GTFS-realtime is a specification for sharing real-time transit information.
It's primarily ingested by Google in order to power transit information within Google Maps.
.. seealso:: `TransLink's GTFS-realtime API reference <https://developer.translink.ca/ServicesGtfs/ApiReference>`_.
Much of it is replicated here for convenience.
However, the docs here reflect Tilapya-specific behaviour.
Usage example
-------------
.. code-block:: python
:caption: Request the real-time positions feed.
>>> from tilapya import GTFSRT
>>> api = GTFSRT('my key')
>>> api.position()
<Response [200]>
The protobuf data in ``response.content`` can then be deserialized.
"""
from ._util import TransLinkAPIBase
from .errors import TransLinkAPIError
[docs]class GTFSRT(TransLinkAPIBase):
"""
The wrapper around TransLink's endpoints for GTFS-realtime datasets.
"""
def __init__(self, api_key, session=None):
"""
:param api_key: TransLink API key.
:param requests.Session session: Session to use, instead of the default.
"""
super(GTFSRT, self).__init__(
'https://gtfs.translink.ca/v2',
api_key=api_key, session=session)
[docs] def trip_updates(self):
"""
Request the trip updates feed.
:returns: The response. The raw protobuf data is in ``content``.
:rtype: requests.Response
"""
resp = self._request('gtfsrealtime')
if not resp.ok:
raise TransLinkAPIError(resp)
return resp
[docs] def position(self):
"""
Request the position feed.
:returns: The response. The raw protobuf data is in ``content``.
:rtype: requests.Response
"""
resp = self._request('gtfsposition')
if not resp.ok:
raise TransLinkAPIError(resp)
return resp
[docs] def service_alerts(self):
"""
Request the service alerts feed.
:returns: The response. The raw protobuf data is in ``content``.
:rtype: requests.Response
"""
resp = self._request('gtfsalerts')
if not resp.ok:
raise TransLinkAPIError(resp)
return resp