| 4242 | info_text = "Trait type adapter to a Enum class" |
| 4243 | |
| 4244 | def __init__( |
| 4245 | self, enum_class: type[t.Any], default_value: t.Any = None, **kwargs: t.Any |
| 4246 | ) -> None: |
| 4247 | assert issubclass(enum_class, enum.Enum), "REQUIRE: enum.Enum, but was: %r" % enum_class |
| 4248 | allow_none = kwargs.get("allow_none", False) |
| 4249 | if default_value is None and not allow_none: |
| 4250 | default_value = next(iter(enum_class.__members__.values())) |
| 4251 | super().__init__(default_value=default_value, **kwargs) |
| 4252 | self.enum_class = enum_class |
| 4253 | self.name_prefix = enum_class.__name__ + "." |
| 4254 | |
| 4255 | def select_by_number(self, value: int, default: t.Any = Undefined) -> t.Any: |
| 4256 | """Selects enum-value by using its number-constant.""" |