Index: leahi_dialin/utils/base.py =================================================================== diff -u -r95a7bdcce8c5ffed0de3fbfb09f7f6999ad0f1bd -r41de945f9c773e54e965e80d9e46def828beb732 --- leahi_dialin/utils/base.py (.../base.py) (revision 95a7bdcce8c5ffed0de3fbfb09f7f6999ad0f1bd) +++ leahi_dialin/utils/base.py (.../base.py) (revision 41de945f9c773e54e965e80d9e46def828beb732) @@ -268,8 +268,6 @@ class DialinEnum(Enum): - _ignore_ = ['_str_list'] - _str_list = {} @classmethod def has_value(cls, value): @@ -288,18 +286,18 @@ elif label.lower() == enum_member.name.lower().replace('mode_', ''): return enum_member # If it's in the string list provided for the enum - elif label.lower() in cls._str_list[enum_member.name]: + elif enum_member.name in cls._str_list and label.lower() in cls._str_list[enum_member.name]: return enum_member # Replace _ with ' ' and check the list again - elif label.lower().replace('_', ' ') in cls._str_list[enum_member.name]: + elif enum_member.name in cls._str_list and label.lower().replace('_', ' ') in cls._str_list[enum_member.name]: return enum_member # Replace _ with ' ' and check the list again with _ with ' ' - elif label.lower().replace('_', ' ') in [enum_mem.lower().replace('_', ' ') for enum_mem in cls._str_list[enum_member.name] ]: + elif enum_member.name in cls._str_list and label.lower().replace('_', ' ') in [enum_mem.lower().replace('_', ' ') for enum_mem in cls._str_list[enum_member.name] ]: return enum_member # If the enum is the NUM_ collector, then return stop as after that only aliases are present elif enum_member.name.lower().startswith('num_'): return None - return False + return None class AlarmEnum(Enum):