From d07cf8eefd28e4c58e1ce29fd17e7ede38975ea1 Mon Sep 17 00:00:00 2001 From: Michel Hidalgo Date: Mon, 30 Mar 2026 13:28:05 -0300 Subject: [PATCH] Fix DeclareEnumLaunchArgument for string enums Signed-off-by: Michel Hidalgo --- synchros2/synchros2/launch/actions.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/synchros2/synchros2/launch/actions.py b/synchros2/synchros2/launch/actions.py index 7b49861..b794527 100644 --- a/synchros2/synchros2/launch/actions.py +++ b/synchros2/synchros2/launch/actions.py @@ -60,23 +60,23 @@ def __init__(self, enum_type: Type[Enum], *args: Any, optional: bool = False, ** raise KeyError("Cannot set `choices` for `DeclareEnumLaunchArgument`") if "default_value" in kwargs: default_value = kwargs["default_value"] - if isinstance(default_value, str): - if default_value not in choices: + if isinstance(default_value, enum_type): + if default_value not in enum_type: raise ValueError( ( f"For an Enum Launch Argument of type {enum_type.__name__}, the `default_value` must be" f" from {choices} or {list(enum_type)}" ), ) - elif isinstance(default_value, enum_type): - if default_value not in enum_type: + kwargs["default_value"] = str(default_value.value) + elif isinstance(default_value, str): + if default_value not in choices: raise ValueError( ( f"For an Enum Launch Argument of type {enum_type.__name__}, the `default_value` must be" f" from {choices} or {list(enum_type)}" ), ) - kwargs["default_value"] = str(default_value.value) else: raise TypeError( (