StringEnum#
- class composer.utils.StringEnum(value)[source]#
Base class for Enums containing string values.
This class enforces that all keys are uppercase and all values are lowercase. It also offers the following convenience features:
StringEnum(value)
will perform a case-insensitive match on both the keys and value, and is a no-op if given an existing instance of the class.>>> from composer.utils import StringEnum >>> class MyStringEnum(StringEnum): ... KEY = "value" >>> MyStringEnum("KeY") # case-insensitive match on the key <MyStringEnum.KEY: 'value'> >>> MyStringEnum("VaLuE") # case-insensitive match on the value <MyStringEnum.KEY: 'value'> >>> MyStringEnum(MyStringEnum.KEY) # no-op if given an existing instance <MyStringEnum.KEY: 'value'>
Equality checks support case-insensitive comparisions against strings:
>>> from composer.utils import StringEnum >>> class MyStringEnum(StringEnum): ... KEY = "value" >>> MyStringEnum.KEY == "KeY" # case-insensitive match on the key True >>> MyStringEnum.KEY == "VaLuE" # case-insensitive match on the value True >>> MyStringEnum.KEY == "something else" False