def test_complete_links(): links = complete_links(MockResource()) response = links(mock_stop_schedules)() assert "notes" in response assert "exceptions" in response assert len(response["exceptions"]) == 2 assert len(response["notes"]) == 1 for item in response["notes"][0].keys(): assert item in ["category", "type", "id", "value"] for exception in response["exceptions"]: for item in exception.keys(): assert item in ["date", "type", "id"] assert len(response["stop_schedules"]) == 1 stop_schedules = response["stop_schedules"] assert len(stop_schedules[0]["date_times"]) == 2 assert len(stop_schedules[0]["date_times"][0]["links"]) == 2 assert len(stop_schedules[0]["date_times"][1]["links"]) == 2 for dt in stop_schedules[0]["date_times"]: for link in dt["links"]: items = link.keys() for key in items: assert key in ["category", "internal", "rel", "type", "id"]
def __init__(self, endpoint, *args, **kwargs): ResourceUri.__init__(self, *args, **kwargs) ResourceUtc.__init__(self) self.endpoint = endpoint self.parsers["get"] = reqparse.RequestParser(argument_class=ArgumentDoc) parser_get = self.parsers["get"] parser_get.add_argument("filter", type=six.text_type) parser_get.add_argument("from_datetime", type=DateTimeFormat(), default=None, help="The datetime from which you want the schedules") parser_get.add_argument("until_datetime", type=DateTimeFormat(), default=None, help="The datetime until which you want the schedules") parser_get.add_argument("duration", type=int, default=3600 * 24, help="Maximum duration between datetime and the retrieved stop time") parser_get.add_argument("depth", type=depth_argument, default=2) parser_get.add_argument("count", type=default_count_arg_type, default=10, help="Number of schedules per page") parser_get.add_argument("start_page", type=int, default=0, help="The current page") parser_get.add_argument("max_date_times", type=UnsignedInteger(), deprecated=True, help="DEPRECATED, replaced by `items_per_schedule`") parser_get.add_argument("forbidden_id[]", type=six.text_type, deprecated=True, help="DEPRECATED, replaced by `forbidden_uris[]`", dest="__temporary_forbidden_id[]", default=[], action='append', schema_metadata={'format': 'pt-object'}) parser_get.add_argument("forbidden_uris[]", type=six.text_type, help="forbidden uris", dest="forbidden_uris[]", default=[], action='append', schema_metadata={'format': 'pt-object'}) parser_get.add_argument("calendar", type=six.text_type, help="Id of the calendar") parser_get.add_argument("distance", type=int, default=200, help="Distance range of the query. Used only if a coord is in the query") parser_get.add_argument("show_codes", type=BooleanType(), default=False, help="show more identification codes") #Note: no default param for data freshness, the default depends on the API parser_get.add_argument("data_freshness", help='freshness of the data. ' 'base_schedule is the long term planned schedule. ' 'adapted_schedule is for planned ahead disruptions (strikes, ' 'maintenances, ...). ' 'realtime is to have the freshest possible data', type=OptionValue(['base_schedule', 'adapted_schedule', 'realtime'])) parser_get.add_argument("_current_datetime", type=DateTimeFormat(), schema_metadata={'default': 'now'}, hidden=True, default=datetime.utcnow(), help='The datetime considered as "now". Used for debug, default is ' 'the moment of the request. It will mainly change the output ' 'of the disruptions.') parser_get.add_argument("items_per_schedule", type=UnsignedInteger(), default=10000, help="maximum number of date_times per schedule") parser_get.add_argument("disable_geojson", type=BooleanType(), default=False, help="remove geojson from the response") self.get_decorators.insert(0, ManageError()) self.get_decorators.insert(1, get_obj_serializer(self)) self.get_decorators.append(complete_links(self))
def __init__(self): # journeys must have a custom authentication process super(Journeys, self).__init__() parser_get = self.parsers["get"] parser_get.add_argument("count", type=default_count_arg_type) parser_get.add_argument("_min_journeys_calls", type=int) parser_get.add_argument("_final_line_filter", type=boolean) parser_get.add_argument("min_nb_journeys", type=int) parser_get.add_argument("max_nb_journeys", type=int) parser_get.add_argument("_max_extra_second_pass", type=int, dest="max_extra_second_pass") parser_get.add_argument("debug", type=boolean, default=False, hidden=True) parser_get.add_argument("show_codes", type=boolean, default=False, description="show more identification codes") parser_get.add_argument("_override_scenario", type=unicode, description="debug param to specify a custom scenario") parser_get.add_argument("_walking_transfer_penalty", type=int) parser_get.add_argument("_max_successive_physical_mode", type=int) parser_get.add_argument("_max_additional_connections", type=int) parser_get.add_argument("_night_bus_filter_base_factor", type=int) parser_get.add_argument("_night_bus_filter_max_factor", type=float) parser_get.add_argument("_min_car", type=int) parser_get.add_argument("_min_bike", type=int) self.method_decorators.append(complete_links(self))
def __init__(self, endpoint): ResourceUri.__init__(self) ResourceUtc.__init__(self) self.endpoint = endpoint self.parsers = {} self.parsers["get"] = reqparse.RequestParser(argument_class=ArgumentDoc) parser_get = self.parsers["get"] parser_get.add_argument("filter", type=six.text_type) parser_get.add_argument("from_datetime", type=DateTimeFormat(), default=None, help="The datetime from which you want the schedules") parser_get.add_argument("until_datetime", type=DateTimeFormat(), default=None, help="The datetime until which you want the schedules") parser_get.add_argument("duration", type=int, default=3600 * 24, help="Maximum duration between datetime and the retrieved stop time") parser_get.add_argument("depth", type=int, default=2) parser_get.add_argument("count", type=default_count_arg_type, default=10, help="Number of schedules per page") parser_get.add_argument("start_page", type=int, default=0, help="The current page") parser_get.add_argument("max_date_times", type=natural, help="DEPRECATED, replaced by `items_per_schedule`") parser_get.add_argument("forbidden_id[]", type=six.text_type, help="DEPRECATED, replaced by `forbidden_uris[]`", dest="__temporary_forbidden_id[]", default=[], action='append') parser_get.add_argument("forbidden_uris[]", type=six.text_type, help="forbidden uris", dest="forbidden_uris[]", default=[], action='append') parser_get.add_argument("calendar", type=six.text_type, help="Id of the calendar") parser_get.add_argument("distance", type=int, default=200, help="Distance range of the query. Used only if a coord is in the query") parser_get.add_argument("show_codes", type=BooleanType(), default=False, help="show more identification codes") #Note: no default param for data freshness, the default depends on the API parser_get.add_argument("data_freshness", help='freshness of the data. ' 'base_schedule is the long term planned schedule. ' 'adapted_schedule is for planned ahead disruptions (strikes, ' 'maintenances, ...). ' 'realtime is to have the freshest possible data', type=OptionValue(['base_schedule', 'adapted_schedule', 'realtime'])) parser_get.add_argument("_current_datetime", type=DateTimeFormat(), default=datetime.datetime.utcnow(), help="The datetime we want to publish the disruptions from." " Default is the current date and it is mainly used for debug.") parser_get.add_argument("items_per_schedule", type=natural, default=10000, help="maximum number of date_times per schedule") parser_get.add_argument("disable_geojson", type=BooleanType(), default=False, help="remove geojson from the response") self.get_decorators.append(complete_links(self))
def __init__(self): # journeys must have a custom authentication process super(Journeys, self).__init__(output_type_serializer=api.JourneysSerializer) parser_get = self.parsers["get"] parser_get.add_argument("count", type=default_count_arg_type, help='Fixed number of different journeys') parser_get.add_argument("_min_journeys_calls", type=int, hidden=True) parser_get.add_argument("_final_line_filter", type=BooleanType(), hidden=True) parser_get.add_argument("is_journey_schedules", type=BooleanType(), default=False, help="True when '/journeys' is called to compute" "the same journey schedules and " "it'll override some specific parameters") parser_get.add_argument("min_nb_journeys", type=int, help='Minimum number of different suggested journeys') parser_get.add_argument("max_nb_journeys", type=int, help='Maximum number of different suggested journeys') parser_get.add_argument("_max_extra_second_pass", type=int, dest="max_extra_second_pass", hidden=True) parser_get.add_argument("debug", type=BooleanType(), default=False, hidden=True, help='Activate debug mode.\n' 'No journeys are filtered in this mode.') parser_get.add_argument("show_codes", type=BooleanType(), default=False, hidden=True, deprecated=True, help="show more identification codes") parser_get.add_argument("_override_scenario", type=six.text_type, hidden=True, help="debug param to specify a custom scenario") parser_get.add_argument("_street_network", type=six.text_type, hidden=True, help="choose the streetnetwork component") parser_get.add_argument("_walking_transfer_penalty", hidden=True, type=int) parser_get.add_argument("_max_successive_physical_mode", hidden=True, type=int) parser_get.add_argument("_max_additional_connections", hidden=True, type=int) parser_get.add_argument("_night_bus_filter_base_factor", hidden=True, type=int) parser_get.add_argument("_night_bus_filter_max_factor", hidden=True, type=float) parser_get.add_argument("_min_car", hidden=True, type=int) parser_get.add_argument("_min_bike", hidden=True, type=int) parser_get.add_argument("bss_stands", type=BooleanType(), default=False, help="Show bss stands availability " "in the bicycle_rental pois of response") parser_get.add_argument("add_poi_infos[]", type=OptionValue(add_poi_infos_types), default=[], dest="add_poi_infos", action="append", help="Show more information about the poi if it's available, for instance, show " "BSS/car park availability in the pois(BSS/car park) of response") parser_get.add_argument("_no_shared_section", type=BooleanType(), default=False, hidden=True, dest="no_shared_section", help="Shared section journeys aren't returned as a separate journey") self.get_decorators.append(complete_links(self)) if parser_get.parse_args().get("add_poi_infos") or parser_get.parse_args().get("bss_stands"): self.get_decorators.insert(1, ManageParkingPlaces(self, 'journeys'))
def __init__(self): # journeys must have a custom authentication process super(Journeys, self).__init__(output_type_serializer=api.JourneysSerializer) parser_get = self.parsers["get"] parser_get.add_argument("count", type=default_count_arg_type, help='Fixed number of different journeys') parser_get.add_argument("_min_journeys_calls", type=int, hidden=True) parser_get.add_argument("_final_line_filter", type=BooleanType(), hidden=True) parser_get.add_argument( "is_journey_schedules", type=BooleanType(), default=False, help="True when '/journeys' is called to compute" "the same journey schedules and " "it'll override some specific parameters", ) parser_get.add_argument( "min_nb_journeys", type=UnsignedInteger(), help='Minimum number of different suggested journeys, must be >= 0', ) parser_get.add_argument( "max_nb_journeys", type=PositiveInteger(), help='Maximum number of different suggested journeys, must be > 0', ) parser_get.add_argument("_max_extra_second_pass", type=int, dest="max_extra_second_pass", hidden=True) parser_get.add_argument( "debug", type=BooleanType(), default=False, hidden=True, help='Activate debug mode.\n' 'No journeys are filtered in this mode.', ) parser_get.add_argument( "show_codes", type=BooleanType(), default=False, hidden=True, deprecated=True, help="DEPRECATED, show more identification codes", ) parser_get.add_argument( "_override_scenario", type=six.text_type, hidden=True, help="debug param to specify a custom scenario", ) parser_get.add_argument("_street_network", type=six.text_type, hidden=True, help="choose the streetnetwork component") parser_get.add_argument("_walking_transfer_penalty", hidden=True, type=int) parser_get.add_argument("_max_successive_physical_mode", hidden=True, type=int) parser_get.add_argument("_max_additional_connections", hidden=True, type=int) parser_get.add_argument("_night_bus_filter_base_factor", hidden=True, type=int) parser_get.add_argument("_night_bus_filter_max_factor", hidden=True, type=float) parser_get.add_argument("_min_car", hidden=True, type=int) parser_get.add_argument("_min_bike", hidden=True, type=int) parser_get.add_argument("_min_taxi", hidden=True, type=int) parser_get.add_argument( "bss_stands", type=BooleanType(), default=False, deprecated=True, help="DEPRECATED, Use add_poi_infos[]=bss_stands", ) parser_get.add_argument( "add_poi_infos[]", type=OptionValue(add_poi_infos_types), default=[], dest="add_poi_infos", action="append", help= "Show more information about the poi if it's available, for instance, show " "BSS/car park availability in the pois(BSS/car park) of response", ) parser_get.add_argument( "_no_shared_section", type=BooleanType(), default=False, hidden=True, dest="no_shared_section", help= "Shared section journeys aren't returned as a separate journey", ) parser_get.add_argument( "timeframe_duration", type=int, help="Minimum timeframe to search journeys.\n" "For example 'timeframe_duration=3600' will search for all " "interesting journeys departing within the next hour.\n" "Nota 1: Navitia can return journeys after that timeframe as it's " "actually a minimum.\n" "Nota 2: 'max_nb_journeys' parameter has priority over " "'timeframe_duration' parameter.", ) parser_get.add_argument( "_max_nb_crowfly_by_walking", type=int, hidden=True, help="limit nb of stop points accesible by walking crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_car", type=int, hidden=True, help="limit nb of stop points accesible by car crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_taxi", type=int, hidden=True, help="limit nb of stop points accesible by taxi crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_bike", type=int, hidden=True, help="limit nb of stop points accesible by bike crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_bss", type=int, hidden=True, help="limit nb of stop points accesible by bss crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "equipment_details", default=True, type=BooleanType(), help="enhance response with accessibility equipement details", ) for mode in FallbackModes.modes_str(): parser_get.add_argument( "max_{}_direct_path_duration".format(mode), type=int, help= "limit duration of direct path in {}, used ONLY in distributed scenario" .format(mode), ) parser_get.add_argument("depth", type=DepthArgument(), default=1, help="The depth of your object") args = self.parsers["get"].parse_args() self.get_decorators.append(complete_links(self)) if handle_poi_infos(args["add_poi_infos"], args["bss_stands"]): self.get_decorators.insert(1, ManageParkingPlaces(self, 'journeys'))
def __init__(self): # journeys must have a custom authentication process ResourceUri.__init__(self, authentication=False) ResourceUtc.__init__(self) modes = ["walking", "car", "bike", "bss"] types = { "all": "All types", "best": "The best journey", "rapid": "A good trade off between duration, changes and constraint respect", 'no_train': "Journey without train", 'comfort': "A journey with less changes and walking", 'car': "A journey with car to get to the public transport", 'less_fallback_walk': "A journey with less walking", 'less_fallback_bike': "A journey with less biking", 'less_fallback_bss': "A journey with less bss", 'fastest': "A journey with minimum duration", 'non_pt_walk': "A journey without public transport, only walking", 'non_pt_bike': "A journey without public transport, only biking", 'non_pt_bss': "A journey without public transport, only bike sharing", } self.parsers = {} self.parsers["get"] = reqparse.RequestParser( argument_class=ArgumentDoc) parser_get = self.parsers["get"] parser_get.add_argument("from", type=unicode, dest="origin") parser_get.add_argument("to", type=unicode, dest="destination") parser_get.add_argument("datetime", type=date_time_format) parser_get.add_argument("datetime_represents", dest="clockwise", type=dt_represents, default=True) parser_get.add_argument("max_nb_transfers", type=int, dest="max_transfers") parser_get.add_argument("first_section_mode[]", type=option_value(modes), dest="origin_mode", action="append") parser_get.add_argument("last_section_mode[]", type=option_value(modes), dest="destination_mode", action="append") parser_get.add_argument( "max_duration_to_pt", type=int, description="maximal duration of non public transport in second") parser_get.add_argument( "max_walking_duration_to_pt", type=int, description= "maximal duration of walking on public transport in second") parser_get.add_argument( "max_bike_duration_to_pt", type=int, description="maximal duration of bike on public transport in second" ) parser_get.add_argument( "max_bss_duration_to_pt", type=int, description="maximal duration of bss on public transport in second" ) parser_get.add_argument( "max_car_duration_to_pt", type=int, description="maximal duration of car on public transport in second" ) parser_get.add_argument("walking_speed", type=float_gt_0) parser_get.add_argument("bike_speed", type=float_gt_0) parser_get.add_argument("bss_speed", type=float_gt_0) parser_get.add_argument("car_speed", type=float_gt_0) parser_get.add_argument("forbidden_uris[]", type=unicode, action="append") parser_get.add_argument("count", type=default_count_arg_type) parser_get.add_argument("_min_journeys_calls", type=int) parser_get.add_argument("_final_line_filter", type=boolean) parser_get.add_argument("min_nb_journeys", type=int) parser_get.add_argument("max_nb_journeys", type=int) parser_get.add_argument("_max_extra_second_pass", type=int, dest="max_extra_second_pass") parser_get.add_argument("type", type=option_value(types), default="all") parser_get.add_argument("disruption_active", type=boolean, default=False) # for retrocomp # no default value for data_freshness because we need to maintain retrocomp with disruption_active parser_get.add_argument("data_freshness", type=option_value([ 'base_schedule', 'adapted_schedule', 'realtime' ])) parser_get.add_argument("max_duration", type=int) parser_get.add_argument("wheelchair", type=boolean, default=None) parser_get.add_argument("debug", type=boolean, default=False, hidden=True) # for retrocompatibility purpose, we duplicate (without []): parser_get.add_argument("first_section_mode", type=option_value(modes), action="append") parser_get.add_argument("last_section_mode", type=option_value(modes), action="append") parser_get.add_argument("show_codes", type=boolean, default=False, description="show more identification codes") parser_get.add_argument("traveler_type", type=option_value(acceptable_traveler_types)) parser_get.add_argument( "_override_scenario", type=unicode, description="debug param to specify a custom scenario") parser_get.add_argument("_walking_transfer_penalty", type=int) parser_get.add_argument("_night_bus_filter_base_factor", type=int) parser_get.add_argument("_night_bus_filter_max_factor", type=float) parser_get.add_argument("_min_car", type=int) parser_get.add_argument("_min_bike", type=int) parser_get.add_argument( "_current_datetime", type=date_time_format, default=datetime.utcnow(), description= "The datetime used to consider the state of the pt object" " Default is the current date and it is used for debug." " Note: it will mainly change the disruptions that concern " "the object The timezone should be specified in the format," " else we consider it as UTC") self.method_decorators.append(complete_links(self))
def __init__(self): # journeys must have a custom authentication process super(Journeys, self).__init__(output_type_serializer=api.JourneysSerializer) parser_get = self.parsers["get"] parser_get.add_argument("count", type=default_count_arg_type, help='Fixed number of different journeys') parser_get.add_argument("_min_journeys_calls", type=int, hidden=True) parser_get.add_argument("_final_line_filter", type=BooleanType(), hidden=True) parser_get.add_argument( "is_journey_schedules", type=BooleanType(), default=False, help="True when '/journeys' is called to compute" "the same journey schedules and " "it'll override some specific parameters", ) parser_get.add_argument( "min_nb_journeys", type=UnsignedInteger(), help='Minimum number of different suggested journeys, must be >= 0', ) parser_get.add_argument( "max_nb_journeys", type=PositiveInteger(), help='Maximum number of different suggested journeys, must be > 0', ) parser_get.add_argument("_max_extra_second_pass", type=int, dest="max_extra_second_pass", hidden=True) parser_get.add_argument( "debug", type=BooleanType(), default=False, hidden=True, help='Activate debug mode.\nNo journeys are filtered in this mode.', ) parser_get.add_argument( "_filter_odt_journeys", type=BooleanType(), hidden=True, help= 'Filter journeys that uses On Demand Transport if they arrive later/depart earlier than a pure public transport journey.', ) parser_get.add_argument( "show_codes", type=BooleanType(), default=True, hidden=True, deprecated=True, help="DEPRECATED (always True), show more identification codes", ) parser_get.add_argument( "_override_scenario", type=six.text_type, hidden=True, help="debug param to specify a custom scenario", ) parser_get.add_argument("_street_network", type=six.text_type, hidden=True, help="choose the streetnetwork component") parser_get.add_argument("_walking_transfer_penalty", hidden=True, type=int) parser_get.add_argument("_arrival_transfer_penalty", hidden=True, type=int) parser_get.add_argument("_max_successive_physical_mode", hidden=True, type=int) parser_get.add_argument("_max_additional_connections", hidden=True, type=int) parser_get.add_argument("_night_bus_filter_base_factor", hidden=True, type=int) parser_get.add_argument("_night_bus_filter_max_factor", hidden=True, type=float) parser_get.add_argument("_min_car", hidden=True, type=int) parser_get.add_argument("_min_bike", hidden=True, type=int) parser_get.add_argument("_min_taxi", hidden=True, type=int) parser_get.add_argument("_min_ridesharing", hidden=True, type=int) parser_get.add_argument( "bss_stands", type=BooleanType(), default=False, deprecated=True, help="DEPRECATED, Use add_poi_infos[]=bss_stands", ) parser_get.add_argument( "add_poi_infos[]", type=OptionValue(add_poi_infos_types), default=[], dest="add_poi_infos", action="append", help= "Show more information about the poi if it's available, for instance, show " "BSS/car park availability in the pois(BSS/car park) of response", ) parser_get.add_argument( "_no_shared_section", type=BooleanType(), default=False, hidden=True, dest="no_shared_section", help= "Shared section journeys aren't returned as a separate journey", ) parser_get.add_argument( "timeframe_duration", type=int, help="Minimum timeframe to search journeys.\n" "For example 'timeframe_duration=3600' will search for all " "interesting journeys departing within the next hour.\n" "Nota 1: Navitia can return journeys after that timeframe as it's " "actually a minimum.\n" "Nota 2: 'max_nb_journeys' parameter has priority over " "'timeframe_duration' parameter.", ) parser_get.add_argument( "_max_nb_crowfly_by_walking", type=int, hidden=True, help="limit nb of stop points accesible by walking crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_car", type=int, hidden=True, help="limit nb of stop points accesible by car crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_car_nor_park", type=int, hidden=True, help= "limit nb of stop points accesible by car no park crowfly, used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_taxi", type=int, hidden=True, help="limit nb of stop points accesible by taxi crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_bike", type=int, hidden=True, help="limit nb of stop points accesible by bike crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_bss", type=int, hidden=True, help="limit nb of stop points accesible by bss crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_car_park_duration", type=int, default=default_values.car_park_duration, hidden=True, help="how long it takes to park the car, " "used especially in distributed scenario", ) parser_get.add_argument( "_here_realtime_traffic", type=BooleanType(), default=True, hidden=True, help= "Here, Active or not the realtime traffic information (True/False)", ) parser_get.add_argument( "_here_language", type=OptionValue([ 'afrikaans', 'arabic', 'chinese', 'dutch', 'english', 'french', 'german', 'hebrew', 'hindi', 'italian', 'japanese', 'nepali', 'portuguese', 'russian', 'spanish', ]), hidden=True, help='Here, select a specific language for guidance instruction.\n' 'list available:\n' '- afrikaans = af\n' '- arabic = ar-sa\n' '- chinese = zh-cn\n' '- dutch = nl-nl\n' '- english = en-gb\n' '- french = fr-fr\n' '- german = de-de\n' '- hebrew = he\n' '- hindi = hi\n' '- italian = it-it\n' '- japanese = ja-jp\n' '- nepali = ne-np\n' '- portuguese = pt-pt\n' '- russian = ru-ru\n' '- spanish = es-es\n', ) parser_get.add_argument( "_here_matrix_type", type=six.text_type, hidden=True, help= "Here, street network matrix type (simple_matrix/multi_direct_path)", ) parser_get.add_argument( "_here_max_matrix_points", type=int, default=default_values.here_max_matrix_points, hidden=True, help= "Here, Max number of matrix points for the street network computation (limited to 100)", ) parser_get.add_argument( '_here_exclusion_area[]', type=six.text_type, case_sensitive=False, hidden=True, action='append', dest='_here_exclusion_area[]', help='Give 2 coords for an exclusion box. The format is like that:\n' 'Coord_1!Coord_2 with Coord=lat;lon\n' ' - exemple : _here_exclusion_area[]=2.40553;48.84866!2.41453;48.85677\n' ' - This is a list, you can add to the maximun 20 _here_exclusion_area[]\n', ) parser_get.add_argument( "_asgard_language", type=OptionValue([ 'bulgarian', 'catalan', 'czech', 'danish', 'german', 'greek', 'english_gb', 'english_pirate', 'english_us', 'spanish', 'estonian', 'finnish', 'french', 'hindi', 'hungarian', 'italian', 'japanese', 'bokmal', 'dutch', 'polish', 'portuguese_br', 'portuguese_pt', 'romanian', 'russian', 'slovak', 'slovenian', 'swedish', 'turkish', 'ukrainian', ]), hidden=True, help='Select a specific language for Asgard guidance instruction.\n' 'list available:\n' '- bulgarian = bg-BG\n' '- catalan = ca-ES\n' '- czech = cs-CZ\n' '- danish = da-DK\n' '- german = de-DE\n' '- greek = el-GR\n' '- english_gb = en-GB\n' '- english_pirate = en-US-x-pirate\n' '- english_us = en-US\n' '- spanish = es-ES\n' '- estonian = et-EE\n' '- finnish = fi-FI\n' '- french = fr-FR\n' '- hindi = hi-IN\n' '- hungarian = hu-HU\n' '- italian = it-IT\n' '- japanese = ja-JP\n' '- bokmal = nb-NO\n' '- dutch = nl-NL\n' '- polish = pl-PL\n' '- portuguese_br = pt-BR\n' '- portuguese_pt = pt-PT\n' '- romanian = ro-RO\n' '- russian = ru-RU\n' '- slovak = sk-SK\n' '- slovenian = sl-SI\n' '- swedish = sv-SE\n' '- turkish = tr-TR\n' '- ukrainian = uk-UA\n', ) parser_get.add_argument( "equipment_details", default=True, type=BooleanType(), help="enhance response with accessibility equipement details", ) parser_get.add_argument( "_enable_instructions", type=BooleanType(), default=True, hidden=True, help= "Enable/Disable the narrative instructions for street network sections", ) for mode in FallbackModes.modes_str(): parser_get.add_argument( "max_{}_direct_path_duration".format(mode), type=int, help= "limit duration of direct path in {}, used ONLY in distributed scenario" .format(mode), ) parser_get.add_argument("depth", type=DepthArgument(), default=1, help="The depth of your object") args = self.parsers["get"].parse_args() self.get_decorators.append(complete_links(self)) if handle_poi_infos(args["add_poi_infos"], args["bss_stands"]): self.get_decorators.insert(1, ManageParkingPlaces(self, 'journeys')) parser_get.add_argument( "max_waiting_duration", type=PositiveInteger(), help= 'A journey containing a waiting section with a duration greater or equal to max_waiting_duration ' 'will be discarded. Units : seconds. Must be > 0. Default value : 4h', ) parser_get.add_argument( "bss_rent_duration", type=int, hidden=True, help= "Only used in bss mode, how long it takes to rent a bike from bike share station", ) parser_get.add_argument( "bss_rent_penalty", type=int, hidden=True, help= "Only used in bss mode, how much the maneuver is penalized in the search algorithm", ) parser_get.add_argument( "bss_return_duration", type=int, hidden=True, help= "Only used in bss mode, how long it takes to return a bike to bike share station", ) parser_get.add_argument( "bss_return_penalty", type=int, hidden=True, help= "Only used in bss mode, how much the maneuver is penalized in the search algorithm", ) parser_get.add_argument( "_transfer_path", type=BooleanType(), hidden=True, help= "Compute pathways using the street_network engine for transfers between surface physical modes", ) parser_get.add_argument( "_asgard_max_walking_duration_coeff", type=PositiveFloat(), default=1.12, hidden=True, help= "used to adjust the search range in Asgard when computing matrix", ) parser_get.add_argument( "_asgard_max_bike_duration_coeff", type=PositiveFloat(), default=2.8, hidden=True, help= "used to adjust the search range in Asgard when computing matrix", ) parser_get.add_argument( "_asgard_max_bss_duration_coeff", type=PositiveFloat(), default=0.46, hidden=True, help= "used to adjust the search range in Asgard when computing matrix", ) parser_get.add_argument( "_asgard_max_car_duration_coeff", type=PositiveFloat(), default=1, hidden=True, help= "used to adjust the search range in Asgard when computing matrix", )
def __init__(self): # journeys must have a custom authentication process super(Journeys, self).__init__(output_type_serializer=api.JourneysSerializer) parser_get = self.parsers["get"] parser_get.add_argument("count", type=default_count_arg_type, help='Fixed number of different journeys') parser_get.add_argument("_min_journeys_calls", type=int, hidden=True) parser_get.add_argument("_final_line_filter", type=BooleanType(), hidden=True) parser_get.add_argument( "is_journey_schedules", type=BooleanType(), default=False, help="True when '/journeys' is called to compute" "the same journey schedules and " "it'll override some specific parameters", ) parser_get.add_argument( "min_nb_journeys", type=UnsignedInteger(), help='Minimum number of different suggested journeys, must be >= 0', ) parser_get.add_argument( "max_nb_journeys", type=PositiveInteger(), help='Maximum number of different suggested journeys, must be > 0', ) parser_get.add_argument("_max_extra_second_pass", type=int, dest="max_extra_second_pass", hidden=True) parser_get.add_argument( "debug", type=BooleanType(), default=False, hidden=True, help='Activate debug mode.\n' 'No journeys are filtered in this mode.', ) parser_get.add_argument( "show_codes", type=BooleanType(), default=False, hidden=True, deprecated=True, help="DEPRECATED, show more identification codes", ) parser_get.add_argument( "_override_scenario", type=six.text_type, hidden=True, help="debug param to specify a custom scenario", ) parser_get.add_argument( "_street_network", type=six.text_type, hidden=True, help="choose the streetnetwork component" ) parser_get.add_argument("_walking_transfer_penalty", hidden=True, type=int) parser_get.add_argument("_max_successive_physical_mode", hidden=True, type=int) parser_get.add_argument("_max_additional_connections", hidden=True, type=int) parser_get.add_argument("_night_bus_filter_base_factor", hidden=True, type=int) parser_get.add_argument("_night_bus_filter_max_factor", hidden=True, type=float) parser_get.add_argument("_min_car", hidden=True, type=int) parser_get.add_argument("_min_bike", hidden=True, type=int) parser_get.add_argument("_min_taxi", hidden=True, type=int) parser_get.add_argument("_min_ridesharing", hidden=True, type=int) parser_get.add_argument( "bss_stands", type=BooleanType(), default=False, deprecated=True, help="DEPRECATED, Use add_poi_infos[]=bss_stands", ) parser_get.add_argument( "add_poi_infos[]", type=OptionValue(add_poi_infos_types), default=[], dest="add_poi_infos", action="append", help="Show more information about the poi if it's available, for instance, show " "BSS/car park availability in the pois(BSS/car park) of response", ) parser_get.add_argument( "_no_shared_section", type=BooleanType(), default=False, hidden=True, dest="no_shared_section", help="Shared section journeys aren't returned as a separate journey", ) parser_get.add_argument( "timeframe_duration", type=int, help="Minimum timeframe to search journeys.\n" "For example 'timeframe_duration=3600' will search for all " "interesting journeys departing within the next hour.\n" "Nota 1: Navitia can return journeys after that timeframe as it's " "actually a minimum.\n" "Nota 2: 'max_nb_journeys' parameter has priority over " "'timeframe_duration' parameter.", ) parser_get.add_argument( "_max_nb_crowfly_by_walking", type=int, hidden=True, help="limit nb of stop points accesible by walking crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_car", type=int, hidden=True, help="limit nb of stop points accesible by car crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_car_nor_park", type=int, hidden=True, help="limit nb of stop points accesible by car no park crowfly, used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_taxi", type=int, hidden=True, help="limit nb of stop points accesible by taxi crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_bike", type=int, hidden=True, help="limit nb of stop points accesible by bike crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_max_nb_crowfly_by_bss", type=int, hidden=True, help="limit nb of stop points accesible by bss crowfly, " "used especially in distributed scenario", ) parser_get.add_argument( "_car_park_duration", type=int, default=default_values.car_park_duration, hidden=True, help="how long it takes to park the car, " "used especially in distributed scenario", ) parser_get.add_argument( "_here_realtime_traffic", type=BooleanType(), default=True, hidden=True, help="Here, Active or not the realtime traffic information (True/False)", ) parser_get.add_argument( "_here_language", type=OptionValue( [ 'afrikaans', 'arabic', 'chinese', 'dutch', 'english', 'french', 'german', 'hebrew', 'hindi', 'italian', 'japanese', 'nepali', 'portuguese', 'russian', 'spanish', ] ), hidden=True, help='Here, select a specific language for guidance instruction.\n' 'list available:\n' '- afrikaans = af\n' '- arabic = ar-sa\n' '- chinese = zh-cn\n' '- dutch = nl-nl\n' '- english = en-gb\n' '- french = fr-fr\n' '- german = de-de\n' '- hebrew = he\n' '- hindi = hi\n' '- italian = it-it\n' '- japanese = ja-jp\n' '- nepali = ne-np\n' '- portuguese = pt-pt\n' '- russian = ru-ru\n' '- spanish = es-es\n', ) parser_get.add_argument( "_here_matrix_type", type=six.text_type, hidden=True, help="Here, street network matrix type (simple_matrix/multi_direct_path)", ) parser_get.add_argument( "_here_max_matrix_points", type=int, default=default_values.here_max_matrix_points, hidden=True, help="Here, Max number of matrix points for the street network computation (limited to 100)", ) parser_get.add_argument( '_here_exclusion_area[]', type=six.text_type, case_sensitive=False, hidden=True, action='append', dest='_here_exclusion_area[]', help='Give 2 coords for an exclusion box. The format is like that:\n' 'Coord_1!Coord_2 with Coord=lat;lon\n' ' - exemple : _here_exclusion_area[]=2.40553;48.84866!2.41453;48.85677\n' ' - This is a list, you can add to the maximun 20 _here_exclusion_area[]\n', ) parser_get.add_argument( "equipment_details", default=True, type=BooleanType(), help="enhance response with accessibility equipement details", ) parser_get.add_argument( "_enable_instructions", type=BooleanType(), default=True, hidden=True, help="Enable/Disable the narrative instructions for street network sections", ) for mode in FallbackModes.modes_str(): parser_get.add_argument( "max_{}_direct_path_duration".format(mode), type=int, help="limit duration of direct path in {}, used ONLY in distributed scenario".format(mode), ) parser_get.add_argument("depth", type=DepthArgument(), default=1, help="The depth of your object") args = self.parsers["get"].parse_args() self.get_decorators.append(complete_links(self)) if handle_poi_infos(args["add_poi_infos"], args["bss_stands"]): self.get_decorators.insert(1, ManageParkingPlaces(self, 'journeys'))