Skip to content

Commit 9c05f3d

Browse files
committed
Enhance ChoiceItem validation to check for valid values in choices and raise ValueError with detailed message
1 parent 59b18f6 commit 9c05f3d

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

guidata/dataset/dataitems.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -962,11 +962,15 @@ def check_value(self, value: str, raise_exception: bool = False) -> bool:
962962
"""Override DataItem method"""
963963
if not self.get_prop("data", "check_value", True):
964964
return True
965-
if value not in [v for v, _k, _i in self.get_prop("data", "choices", [])]:
966-
if raise_exception:
967-
values = [v for v, _k, _i in self.get_prop("data", "choices", [])]
968-
raise ValueError(f"Invalid value '{value}' (valid values: {values})")
969-
return False
965+
choices = self.get_prop("data", "choices", [])
966+
if not isinstance(choices, ItemProperty):
967+
values = [v for v, _k, _i in choices]
968+
if value not in values:
969+
if raise_exception:
970+
raise ValueError(
971+
f"Invalid value '{value}' (valid values: {values})"
972+
)
973+
return False
970974
return True
971975

972976
def _enum_coerce_in(self, v: Any) -> str:

0 commit comments

Comments
 (0)