I have an enum
from enum import Enum
class StrangeEventTypeVariants(Enum):
crew_training = "Crew training"
crew_travel = "Crew travel"
flight = "Flight"
maintenance = "Maintenance"
parking = "Parking"
and function that of class that process abstract enum
class EnumSuggest:
def __init__(self, enum: Enum):
self.variants = [{"id": member.name, "name": member.value} for member in enum]
def get_suggest(self, _):
return self.variants
but annotation above is incorrect, for
suggest = EnumSuggest(StrangeEventTypeVariants)
I got next linter warning
Expected type Enum, got Type[StrangeEventTypeVariants]
How to fix it ?
You aren't passing an instance of Enum
to EnumSuggest.__init__
; you are passing a subclass of Enum
. The type hint should reflect that.
class EnumSuggest:
def __init__(self, enum: Type[Enum]):
self.variants = [{"id": member.name, "name": member.value} for member in enum]
def get_suggest(self, _):
return self.variants