Source code for radar.models.route

from .model import Model


[docs]class RouteDistance: """Travel distance of the route Parameters: value (str): value of distance in requested units text (str): human readable distance """ def __init__(self, value, text): self.value = value self.text = text def __repr__(self): return f"<text={self.text} value={self.value}>" def to_feet(self): pass
[docs]class RouteDuration: """Travel duration of the route Parameters: value (str): minutes text (str): human readable duration """ def __init__(self, value, text): self.value = value self.text = text def __repr__(self): return f"<text={self.text} value={self.value}>" def to_sec(self): pass
[docs]class Route: """The travel distance and duration between two locations Parameters: mode (str): one of 'car', 'bike', 'foot', 'transit' duration (:class:`~radar.models.route.RouteDuration`) distance (:class:`~radar.models.route.RouteDistance`) """ def __init__(self, distance=None, duration=None, mode=None): self.mode = mode if distance: self.distance = RouteDuration( value=distance.get("value"), text=distance.get("text") ) else: self.distance = None if duration: self.duration = RouteDuration( value=duration.get("value"), text=duration.get("text") ) else: self.duration = None def __repr__(self): fields = [] if self.distance: fields.append(f"distance={self.distance.text}") if self.duration: fields.append(f"duration={self.duration.text}") display_str = f"<{' '.join(fields)}>" return display_str
[docs]class Routes(Model): """A collection of :class:`~radar.models.route.Route`""" OBJECT_NAME = "Routes" _DISPLAY_ATTRIBUTES = ( "geodesic", "transit", "car", "bike", "foot", ) def __init__(self, radar, data={}): """Initialize a Radar Routes instance Args: radar (RadarClient): RadarClient for instance CRUD actions data (dict): raw data to initialize the model with """ self._radar = radar self.raw_json = data for attribute, value in data.items(): if attribute in ["geodesic", "transit", "car", "bike", "foot"]: route = Route( distance=value.get("distance"), duration=value.get("duration"), mode=attribute, ) setattr(self, attribute, route) else: setattr(self, attribute, value)