I want to define multiple strings for an enum variable and compare the variable either against a string or an enum type. I am currently doing the following:
from enum import Enum
class Ordinal(str, Enum):
    NORTH = ['north', 'NORTH', 'n']
    SOUTH = ['south', 'SOUTH', 's']
input_by_user_1 = 'n'
input_by_user_2 = Ordinal.NORTH
print(input_by_user_1 in Ordinal.NORTH)  #True
print(input_by_user_2 in Ordinal.NORTH)  #True
print(input_by_user_1 == Ordinal.NORTH)  #False
print(input_by_user_2 == Ordinal.NORTH)  #True
However, I do not find the in key word nice to understand. I would rather prefer the option using == but this does not work because I defined a list. Is there a better way to do that?
Solution:
The answer was to use the MultiValueEnum class. Then I can use the following code:
from aenum import MultiValueEnum
class Ordinal(MultiValueEnum):
    NORTH = 'north', 'NORTH', 'n'
    SOUTH = 'south', 'SOUTH', 's'
input_by_user_1 = 'n'
input_by_user_2 = Ordinal.NORTH
print(Ordinal(input_by_user_1) == Ordinal.NORTH)  #True
print(Ordinal(input_by_user_2) == Ordinal.NORTH)  #True