CIEnum¶
- class deepfos.lib.utils.CIEnum(value)¶
大小写非敏感的枚举类
经常用于入参为一组可选字符串的情况。 可以简化参数检查逻辑代码的书写。 当入参不支持时,提供友好的报错提示。
>>> class Flag(CIEnum): ... zero = 'zero' ... negative = 'negative' ... positive = 'positive' >>> def example(flag: Union[Flag, str]): ... flag = Flag[flag] ... if flag is Flag.zero: ... return '0' ... elif flag is Flag.negative: ... return '-' ... else: ... return '+' >>> example('zero') '0' >>> example('Zero') '0' >>> example(Flag.negative) '-' >>> example('unknown') Traceback (most recent call last): ... KeyError: "Flag: 'unknown' is not valid. Possible choices are: [zero, negative, positive]"
- Exclude-members
大小写非敏感的枚举类
经常用于入参为一组可选字符串的情况。 可以简化参数检查逻辑代码的书写。 当入参不支持时,提供友好的报错提示。
>>> class Flag(CIEnum): ... zero = 'zero' ... negative = 'negative' ... positive = 'positive' >>> def example(flag: Union[Flag, str]): ... flag = Flag[flag] ... if flag is Flag.zero: ... return '0' ... elif flag is Flag.negative: ... return '-' ... else: ... return '+' >>> example('zero') '0' >>> example('Zero') '0' >>> example(Flag.negative) '-' >>> example('unknown') Traceback (most recent call last): ... KeyError: "Flag: 'unknown' is not valid. Possible choices are: [zero, negative, positive]"