Core: Fix some typing errors (#4995)

* Fix some type errors in Generate and Options

* Add type parameter to new hint and fix whitespace errors

* Update identifier style
This commit is contained in:
Duck
2026-02-02 11:55:57 -07:00
committed by GitHub
parent 4cb518930c
commit 3b1971be66
2 changed files with 22 additions and 22 deletions

View File

@@ -523,9 +523,9 @@ class Choice(NumericOption):
class TextChoice(Choice):
"""Allows custom string input and offers choices. Choices will resolve to int and text will resolve to string"""
value: typing.Union[str, int]
value: str | int
def __init__(self, value: typing.Union[str, int]):
def __init__(self, value: str | int):
assert isinstance(value, str) or isinstance(value, int), \
f"'{value}' is not a valid option for '{self.__class__.__name__}'"
self.value = value
@@ -546,7 +546,7 @@ class TextChoice(Choice):
return cls(text)
@classmethod
def get_option_name(cls, value: T) -> str:
def get_option_name(cls, value: str | int) -> str:
if isinstance(value, str):
return value
return super().get_option_name(value)
@@ -891,7 +891,7 @@ class VerifyKeys(metaclass=FreezeValidKeys):
def __iter__(self) -> typing.Iterator[typing.Any]:
return self.value.__iter__()
class OptionDict(Option[typing.Dict[str, typing.Any]], VerifyKeys, typing.Mapping[str, typing.Any]):
default = {}
supports_weighting = False
@@ -906,7 +906,8 @@ class OptionDict(Option[typing.Dict[str, typing.Any]], VerifyKeys, typing.Mappin
else:
raise NotImplementedError(f"Cannot Convert from non-dictionary, got {type(data)}")
def get_option_name(self, value):
@classmethod
def get_option_name(cls, value):
return ", ".join(f"{key}: {v}" for key, v in value.items())
def __getitem__(self, item: str) -> typing.Any:
@@ -986,7 +987,8 @@ class OptionList(Option[typing.List[typing.Any]], VerifyKeys):
return cls(data)
return cls.from_text(str(data))
def get_option_name(self, value):
@classmethod
def get_option_name(cls, value):
return ", ".join(map(str, value))
def __contains__(self, item):
@@ -1011,7 +1013,8 @@ class OptionSet(Option[typing.Set[str]], VerifyKeys):
return cls(data)
return cls.from_text(str(data))
def get_option_name(self, value):
@classmethod
def get_option_name(cls, value):
return ", ".join(sorted(value))
def __contains__(self, item):
@@ -1656,7 +1659,7 @@ class PlandoItems(Option[typing.List[PlandoItem]]):
def __len__(self) -> int:
return len(self.value)
class Removed(FreeText):
"""This Option has been Removed."""
rich_text_doc = True