From 5943125cb77f1fce81ccf2948cf3b54ef6c3fba0 Mon Sep 17 00:00:00 2001 From: Abderrahim AZIME Date: Tue, 17 Dec 2024 13:31:58 +0100 Subject: [PATCH 1/2] Add zonal ODT params --- .../interfaces/v1/journey_common.py | 18 +++++++++++++++++- .../jormungandr/pt_planners/pt_planner.py | 4 ++++ .../scenarios/helper_classes/pt_journey.py | 2 ++ source/jormungandr/jormungandr/utils.py | 2 ++ source/navitia-proto | 2 +- .../navitiacommon/default_values.py | 2 ++ 6 files changed, 28 insertions(+), 2 deletions(-) diff --git a/source/jormungandr/jormungandr/interfaces/v1/journey_common.py b/source/jormungandr/jormungandr/interfaces/v1/journey_common.py index a14ecaad32..3ea08991f1 100644 --- a/source/jormungandr/jormungandr/interfaces/v1/journey_common.py +++ b/source/jormungandr/jormungandr/interfaces/v1/journey_common.py @@ -41,6 +41,7 @@ from functools import cmp_to_key from jormungandr.instance_manager import instances_comparator from navitiacommon.default_traveler_profile_params import acceptable_traveler_types +from navitiacommon.default_values import default_max_waiting_duration_odt import pytz import six from jormungandr.fallback_modes import FallbackModes @@ -57,6 +58,7 @@ FloatRange, KeyValueType, PositiveFloat, + PositiveInteger, ) from navitiacommon import type_pb2 @@ -881,7 +883,21 @@ def __init__(self, output_type_serializer): hidden=True, help="whether or not to use predicted/historical traffic data for routing, it affects only car/car_no_park mode in Asgard", ) - + parser_get.add_argument( + "_use_zonal_odt", + type=BooleanType(), + default=False, + hidden=True, + help="only available for Loki: " "Use zonal ODT in fallback.", + ) + parser_get.add_argument( + "_max_waiting_duration_odt", + type=PositiveInteger(), + default= default_max_waiting_duration_odt, + hidden=True, + help='A journey containing a waiting section between TC and Zonal ODT with a duration greater to max_waiting_duration_odt ' + 'will be discarded. Units : seconds. Must be > 0. Default value : 30 minutes', + ) def parse_args(self, region=None, uri=None): args = self.parsers['get'].parse_args() diff --git a/source/jormungandr/jormungandr/pt_planners/pt_planner.py b/source/jormungandr/jormungandr/pt_planners/pt_planner.py index e606404b63..20cdae1459 100644 --- a/source/jormungandr/jormungandr/pt_planners/pt_planner.py +++ b/source/jormungandr/jormungandr/pt_planners/pt_planner.py @@ -79,6 +79,8 @@ def __init__( departure_coord=None, arrival_coord=None, global_max_speed=None, + use_zonal_odt=False, + max_waiting_duration_odt = 30*60 # 30 minutes ): self.max_duration = max_duration @@ -106,6 +108,8 @@ def __init__( self.departure_coord = departure_coord self.arrival_coord = arrival_coord self.global_max_speed = global_max_speed + self.use_zonal_odt = use_zonal_odt + self.max_waiting_duration_odt = max_waiting_duration_odt # Needed for GraphicalIsochrones diff --git a/source/jormungandr/jormungandr/scenarios/helper_classes/pt_journey.py b/source/jormungandr/jormungandr/scenarios/helper_classes/pt_journey.py index d1100aa92f..247fac5b32 100644 --- a/source/jormungandr/jormungandr/scenarios/helper_classes/pt_journey.py +++ b/source/jormungandr/jormungandr/scenarios/helper_classes/pt_journey.py @@ -344,6 +344,8 @@ def _create_parameters( if self._requested_dest_obj else None, global_max_speed=request["_global_max_speed"], + use_zonal_odt=request["_use_zonal_odt"], + max_waiting_duration_odt=request["_max_waiting_duration_odt"], ) def _async_request(self): diff --git a/source/jormungandr/jormungandr/utils.py b/source/jormungandr/jormungandr/utils.py index eeef4df700..1e76ec4f94 100644 --- a/source/jormungandr/jormungandr/utils.py +++ b/source/jormungandr/jormungandr/utils.py @@ -1094,6 +1094,8 @@ def _set_arrival_attractivity(stop_point_id, location): ) ) req.journeys.global_max_speed = journey_parameters.global_max_speed + req.journeys.use_zonal_odt = journey_parameters.use_zonal_odt + req.journeys.max_waiting_duration_odt = journey_parameters.max_waiting_duration_odt #################### return req diff --git a/source/navitia-proto b/source/navitia-proto index bbb31a948b..dc551b9b75 160000 --- a/source/navitia-proto +++ b/source/navitia-proto @@ -1 +1 @@ -Subproject commit bbb31a948b969e295e9607cf5208376fda42eb00 +Subproject commit dc551b9b754d0582ea2a2b22a646aa7f4eaba9e1 diff --git a/source/navitiacommon/navitiacommon/default_values.py b/source/navitiacommon/navitiacommon/default_values.py index 628faef3b7..0cbc8ac182 100644 --- a/source/navitiacommon/navitiacommon/default_values.py +++ b/source/navitiacommon/navitiacommon/default_values.py @@ -235,6 +235,8 @@ additional_parameters = False +default_max_waiting_duration_odt = 30*60 # 30 minutes + ghost_words = [] # type: List[str] # { From c971e408d080bac52c6a77ea7669d6e80870ab97 Mon Sep 17 00:00:00 2001 From: Abderrahim AZIME Date: Tue, 17 Dec 2024 13:53:59 +0100 Subject: [PATCH 2/2] correction & pre-commit --- .../jormungandr/jormungandr/interfaces/v1/journey_common.py | 6 +++--- source/jormungandr/jormungandr/pt_planners/pt_planner.py | 2 +- source/navitiacommon/navitiacommon/default_values.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source/jormungandr/jormungandr/interfaces/v1/journey_common.py b/source/jormungandr/jormungandr/interfaces/v1/journey_common.py index 3ea08991f1..67c47b8ffa 100644 --- a/source/jormungandr/jormungandr/interfaces/v1/journey_common.py +++ b/source/jormungandr/jormungandr/interfaces/v1/journey_common.py @@ -41,7 +41,6 @@ from functools import cmp_to_key from jormungandr.instance_manager import instances_comparator from navitiacommon.default_traveler_profile_params import acceptable_traveler_types -from navitiacommon.default_values import default_max_waiting_duration_odt import pytz import six from jormungandr.fallback_modes import FallbackModes @@ -60,7 +59,7 @@ PositiveFloat, PositiveInteger, ) -from navitiacommon import type_pb2 +from navitiacommon import type_pb2, default_values BICYCLE_TYPES = [t for t, _ in type_pb2.BicycleType.items()] @@ -893,11 +892,12 @@ def __init__(self, output_type_serializer): parser_get.add_argument( "_max_waiting_duration_odt", type=PositiveInteger(), - default= default_max_waiting_duration_odt, + default=default_values.max_waiting_duration_odt, hidden=True, help='A journey containing a waiting section between TC and Zonal ODT with a duration greater to max_waiting_duration_odt ' 'will be discarded. Units : seconds. Must be > 0. Default value : 30 minutes', ) + def parse_args(self, region=None, uri=None): args = self.parsers['get'].parse_args() diff --git a/source/jormungandr/jormungandr/pt_planners/pt_planner.py b/source/jormungandr/jormungandr/pt_planners/pt_planner.py index 20cdae1459..c256485caa 100644 --- a/source/jormungandr/jormungandr/pt_planners/pt_planner.py +++ b/source/jormungandr/jormungandr/pt_planners/pt_planner.py @@ -80,7 +80,7 @@ def __init__( arrival_coord=None, global_max_speed=None, use_zonal_odt=False, - max_waiting_duration_odt = 30*60 # 30 minutes + max_waiting_duration_odt=default_values.max_waiting_duration_odt, ): self.max_duration = max_duration diff --git a/source/navitiacommon/navitiacommon/default_values.py b/source/navitiacommon/navitiacommon/default_values.py index 0cbc8ac182..1c33b54cb1 100644 --- a/source/navitiacommon/navitiacommon/default_values.py +++ b/source/navitiacommon/navitiacommon/default_values.py @@ -235,7 +235,7 @@ additional_parameters = False -default_max_waiting_duration_odt = 30*60 # 30 minutes +max_waiting_duration_odt = 30 * 60 # 30 minutes ghost_words = [] # type: List[str]