import util import ptv_client from urllib import parse def format_stop_and_route_name_li(stop_and_route): stop, route = stop_and_route return '
  • Stop: {}, Route: {} {} {}
  • '.format( stop['stop_name'], ptv_client.get_route_type(route['route_type']), route['route_number'], route['route_name']) def format_stop_and_route_name_ol(stop_and_routes): return '
      {}
    '.format(''.join( map(format_stop_and_route_name_li, stop_and_routes))) def format_stop_and_route_name_tr(stop_and_route): stop, route = stop_and_route return """ {} {}{}{} """.format( route['route_type'], stop['stop_id'], route['route_id'], parse.quote(stop['stop_name']), parse.quote(route['route_number']), stop['stop_name'], ptv_client.get_route_type(route['route_type']), route['route_number'], route['route_name']) def format_stop_and_route_name_table(stop_and_routes): return """ {}
    Stop Route type Route number Route name
    """.format(''.join(map(format_stop_and_route_name_tr, stop_and_routes))) def format_departure_title(stop_name, route_type, route_number): return 'Departures of {} {} at {}'.format( ptv_client.get_route_type(route_type), route_number, stop_name) def format_departure_tr(departure, direction_names): return """ {}{}{} """.format( util.format_time(util.parse_time(departure['estimated_departure_utc'])), util.format_time(util.parse_time(departure['scheduled_departure_utc'])), direction_names[departure['direction_id']]) def format_departure_table(departures, direction_names): return """ {}
    Estimated Scheduled Direction
    """.format(''.join(format_departure_tr(dep, direction_names) for dep in departures)) def style(): return """ """ def html(title, body): return """ %(title)s %(style)s

    %(title)s

    %(body)s """ % {'title': title, 'style': style(), 'body': body} def landing_page(): title = 'PTV timetable search tool' body = """

    Query:

    """ return html(title, body)