From f099048b5350a6cb2e77a7cc23d51e68029c75e0 Mon Sep 17 00:00:00 2001 From: Felipe Gomes de Melo Date: Mon, 27 Jun 2022 16:06:44 -0300 Subject: [PATCH] Improve evaluate_paramenter_dict() error msgs Signed-off-by: Felipe Gomes de Melo --- .../launch_ros/utilities/evaluate_parameters.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/launch_ros/launch_ros/utilities/evaluate_parameters.py b/launch_ros/launch_ros/utilities/evaluate_parameters.py index 8917bc74..467bf709 100644 --- a/launch_ros/launch_ros/utilities/evaluate_parameters.py +++ b/launch_ros/launch_ros/utilities/evaluate_parameters.py @@ -93,16 +93,20 @@ def check_sequence_type_is_allowed(sequence): if not check_sequence_type_is_allowed(yaml_evaluated_value): raise TypeError( 'Expected a non-empty sequence, with items of uniform type. ' - 'Allowed sequence item types are bool, int, float, str.' + 'Allowed sequence item types are bool, int, float, str. ' + 'Got inconsistent input for "{}"'.format(evaluated_name) ) evaluated_value = tuple(yaml_evaluated_value) else: raise TypeError( 'Allowed value types are bytes, bool, int, float, str, Sequence[bool]' - ', Sequence[int], Sequence[float], Sequence[str]. Got {}.' + ', Sequence[int], Sequence[float], Sequence[str]. Got {} for "{}". ' 'If the parameter is meant to be a string, try wrapping it in ' 'launch_ros.parameter_descriptions.ParameterValue' - '(value, value_type=str)'.format(type(yaml_evaluated_value)) + '(value, value_type=str)'.format( + type(yaml_evaluated_value), + evaluated_name + ) ) elif isinstance(value[0], Sequence): # Value is an array of a list of substitutions @@ -119,7 +123,8 @@ def check_sequence_type_is_allowed(sequence): if not check_sequence_type_is_allowed(yaml_evaluated_value): raise TypeError( 'Expected a non-empty sequence, with items of uniform type. ' - 'Allowed sequence item types are bool, int, float, str.' + 'Allowed sequence item types are bool, int, float, str. ' + 'Got inconsistent input for "{}"'.format(evaluated_name) ) evaluated_value = tuple(yaml_evaluated_value) else: