def _process_enum(cls: EnumMeta, name: Optional[str] = None, description: Optional[str] = None) -> EnumMeta: if not isinstance(cls, EnumMeta): raise NotAnEnum() if not name: name = cls.__name__ description = description values = [EnumValue(item.name, item.value) for item in cls] # type: ignore cls._enum_definition = EnumDefinition( # type: ignore name=name, values=values, description=description, ) return cls