def geo_status(self, request, instance): req = request_pb2.Request() req.requested_api = type_pb2.geo_status resp = instance.send_and_receive(req) return resp
def create_pb_request(requested_type, request, dep_mode, arr_mode): """Parse the request dict and create the protobuf version""" # TODO: bench if the creation of the request each time is expensive req = request_pb2.Request() req.requested_api = requested_type req._current_datetime = date_to_timestamp(request['_current_datetime']) if "origin" in request and request["origin"]: if requested_type != type_pb2.NMPLANNER: origins, durations = ([request["origin"]], [0]) else: # in the n-m query, we have several origin points, with their corresponding access duration origins, durations = (request["origin"], request["origin_access_duration"]) for place, duration in zip(origins, durations): location = req.journeys.origin.add() location.place = place location.access_duration = duration if "destination" in request and request["destination"]: if requested_type != type_pb2.NMPLANNER: destinations, durations = ([request["destination"]], [0]) else: destinations, durations = (request["destination"], request["destination_access_duration"]) for place, duration in zip(destinations, durations): location = req.journeys.destination.add() location.place = place location.access_duration = duration req.journeys.datetimes.append( request["datetime"] ) # TODO remove this datetime list completly in another PR req.journeys.clockwise = request["clockwise"] sn_params = req.journeys.streetnetwork_params sn_params.max_walking_duration_to_pt = request[ "max_walking_duration_to_pt"] sn_params.max_bike_duration_to_pt = request["max_bike_duration_to_pt"] sn_params.max_bss_duration_to_pt = request["max_bss_duration_to_pt"] sn_params.max_car_duration_to_pt = request["max_car_duration_to_pt"] sn_params.max_car_no_park_duration_to_pt = request[ "max_car_no_park_duration_to_pt"] sn_params.walking_speed = request["walking_speed"] sn_params.bike_speed = request["bike_speed"] sn_params.car_speed = request["car_speed"] sn_params.bss_speed = request["bss_speed"] sn_params.car_no_park_speed = request["car_no_park_speed"] sn_params.origin_filter = request.get("origin_filter", "") sn_params.destination_filter = request.get("destination_filter", "") # we always want direct path, even for car sn_params.enable_direct_path = True # settings fallback modes sn_params.origin_mode = dep_mode sn_params.destination_mode = arr_mode req.journeys.max_duration = request["max_duration"] req.journeys.max_transfers = request["max_transfers"] if request["max_extra_second_pass"]: req.journeys.max_extra_second_pass = request["max_extra_second_pass"] req.journeys.wheelchair = request[ "wheelchair"] or False # default value is no wheelchair req.journeys.realtime_level = get_pb_data_freshness(request) if "details" in request and request["details"]: req.journeys.details = request["details"] req.journeys.walking_transfer_penalty = request[ '_walking_transfer_penalty'] for forbidden_uri in get_or_default(request, "forbidden_uris[]", []): req.journeys.forbidden_uris.append(forbidden_uri) for allowed_id in get_or_default(request, "allowed_id[]", []): req.journeys.allowed_id.append(allowed_id) req.journeys.bike_in_pt = (dep_mode == 'bike') and (arr_mode == 'bike') if request["free_radius_from"]: req.journeys.free_radius_from = request["free_radius_from"] if request["free_radius_to"]: req.journeys.free_radius_to = request["free_radius_to"] if request["min_nb_journeys"]: req.journeys.min_nb_journeys = request["min_nb_journeys"] req.journeys.night_bus_filter_max_factor = request[ '_night_bus_filter_max_factor'] req.journeys.night_bus_filter_base_factor = request[ '_night_bus_filter_base_factor'] if request['timeframe_duration']: req.journeys.timeframe_duration = int(request['timeframe_duration']) req.journeys.depth = request['depth'] return req
def metadatas(self, request, instance): req = request_pb2.Request() req.requested_api = type_pb2.METADATAS resp = instance.send_and_receive(req) return resp
def place_uri(self, request, instance): req = request_pb2.Request() req.requested_api = type_pb2.place_uri req.place_uri.uri = request["uri"] req._current_datetime = date_to_timestamp(request['_current_datetime']) return instance.send_and_receive(req)
def create_pb_request(requested_type, request, dep_mode, arr_mode): """Parse the request dict and create the protobuf version""" #TODO: bench if the creation of the request each time is expensive req = request_pb2.Request() req.requested_api = requested_type if "origin" in request and request["origin"]: if requested_type != type_pb2.NMPLANNER: origins, durations = ([request["origin"]], [0]) else: # in the n-m query, we have several origin points, with their corresponding access duration origins, durations = (request["origin"], request["origin_access_duration"]) for place, duration in zip(origins, durations): location = req.journeys.origin.add() location.place = place location.access_duration = duration if "destination" in request and request["destination"]: if requested_type != type_pb2.NMPLANNER: destinations, durations = ([request["destination"]], [0]) else: destinations, durations = (request["destination"], request["destination_access_duration"]) for place, duration in zip(destinations, durations): location = req.journeys.destination.add() location.place = place location.access_duration = duration req.journeys.datetimes.append( request["datetime"] ) #TODO remove this datetime list completly in another PR req.journeys.clockwise = request["clockwise"] sn_params = req.journeys.streetnetwork_params sn_params.max_walking_duration_to_pt = request[ "max_walking_duration_to_pt"] sn_params.max_bike_duration_to_pt = request["max_bike_duration_to_pt"] sn_params.max_bss_duration_to_pt = request["max_bss_duration_to_pt"] sn_params.max_car_duration_to_pt = request["max_car_duration_to_pt"] sn_params.walking_speed = request["walking_speed"] sn_params.bike_speed = request["bike_speed"] sn_params.car_speed = request["car_speed"] sn_params.bss_speed = request["bss_speed"] sn_params.origin_filter = request.get("origin_filter", "") sn_params.destination_filter = request.get("destination_filter", "") #settings fallback modes sn_params.origin_mode = dep_mode sn_params.destination_mode = arr_mode req.journeys.max_duration = request["max_duration"] req.journeys.max_transfers = request["max_transfers"] req.journeys.wheelchair = request["wheelchair"] req.journeys.disruption_active = request["disruption_active"] req.journeys.show_codes = request["show_codes"] if "details" in request and request["details"]: req.journeys.details = request["details"] for forbidden_uri in get_or_default(request, "forbidden_uris[]", []): req.journeys.forbidden_uris.append(forbidden_uri) return req
def get_odt_stop_points(self, coord): req = request_pb2.Request() req.requested_api = type_pb2.odt_stop_points req.coord.lon = coord.lon req.coord.lat = coord.lat return self.instance.send_and_receive(req).stop_points
def parse_journey_request(self, requested_type, request): """Parse the request dict and create the protobuf version""" req = request_pb2.Request() req.requested_api = requested_type if "origin" in request and request["origin"]: if requested_type != type_pb2.NMPLANNER: origins = ([request["origin"]], [0]) else: origins = (request["origin"], request["origin_access_duration"]) for i in range(0, len(origins[0])): location = req.journeys.origin.add() location.place = origins[0][i] location.access_duration = origins[1][i] if "destination" in request and request["destination"]: if requested_type != type_pb2.NMPLANNER: destinations = ([request["destination"]], [0]) else: destinations = (request["destination"], request["destination_access_duration"]) for i in range(0, len(destinations[0])): location = req.journeys.destination.add() location.place = destinations[0][i] location.access_duration = destinations[1][i] self.destination_modes = request["destination_mode"] else: self.destination_modes = ["walking"] if "datetime" in request and request["datetime"]: if isinstance(request["datetime"], int): request["datetime"] = [request["datetime"]] for dte in request["datetime"]: req.journeys.datetimes.append(dte) req.journeys.clockwise = request["clockwise"] sn_params = req.journeys.streetnetwork_params sn_params.max_walking_duration_to_pt = request[ "max_walking_duration_to_pt"] sn_params.max_bike_duration_to_pt = request["max_bike_duration_to_pt"] sn_params.max_bss_duration_to_pt = request["max_bss_duration_to_pt"] sn_params.max_car_duration_to_pt = request["max_car_duration_to_pt"] sn_params.walking_speed = request["walking_speed"] sn_params.bike_speed = request["bike_speed"] sn_params.car_speed = request["car_speed"] sn_params.bss_speed = request["bss_speed"] if "origin_filter" in request: sn_params.origin_filter = request["origin_filter"] else: sn_params.origin_filter = "" if "destination_filter" in request: sn_params.destination_filter = request["destination_filter"] else: sn_params.destination_filter = "" req.journeys.max_duration = request["max_duration"] req.journeys.max_transfers = request["max_transfers"] if request["max_extra_second_pass"]: req.journeys.max_extra_second_pass = request[ "max_extra_second_pass"] req.journeys.wheelchair = request[ "wheelchair"] or False # default value is no wheelchair if request['data_freshness'] == 'realtime': req.journeys.realtime_level = request_pb2.REAL_TIME elif request['data_freshness'] == 'adapted_schedule': req.journeys.realtime_level = request_pb2.ADAPTED else: req.journeys.realtime_level = request_pb2.BASE req.journeys.show_codes = request["show_codes"] if "details" in request and request["details"]: req.journeys.details = request["details"] self.origin_modes = request["origin_mode"] if req.journeys.streetnetwork_params.origin_mode == "bike_rental": req.journeys.streetnetwork_params.origin_mode = "bss" if req.journeys.streetnetwork_params.destination_mode == "bike_rental": req.journeys.streetnetwork_params.destination_mode = "bss" if "forbidden_uris[]" in request and request["forbidden_uris[]"]: for forbidden_uri in request["forbidden_uris[]"]: req.journeys.forbidden_uris.append(forbidden_uri) if not "type" in request: request["type"] = "all" #why ? #for the default scenario, we filter the walking if we have walking + bss # Technically, bss mode enable walking (if it is better than bss) # so if the user ask for walking and bss, we only keep bss for fallback_modes in self.origin_modes, self.destination_modes: if 'walking' in fallback_modes and 'bss' in fallback_modes: fallback_modes.remove('walking') return req
def place(self, place): req = request_pb2.Request() req.requested_api = type_pb2.place_uri req.place_uri.uri = place response = self.instance.send_and_receive(req) return response.places[0]
def get_uri(self, uri, instance=None, current_datetime=None): req = request_pb2.Request() req.requested_api = type_pb2.place_uri req.place_uri.uri = uri req._current_datetime = date_to_timestamp(current_datetime) return instance.send_and_receive(req)
def place_uri(self, request, instance): req = request_pb2.Request() req.requested_api = type_pb2.place_uri req.place_uri.uri = request["uri"] return instance.send_and_receive(req)
def load(self, request, instance, format): req = request_pb2.Request() req.requested_api = type_pb2.LOAD resp = instance.send_and_receive(req) return render_from_protobuf(resp, format, request.arguments.get('callback'))