better_enum#
Improve the original enum module.
- class tt4human.better_enum.BetterIntEnum(value)[source]#
Example:
>>> class CodeEnum(BetterIntEnum): ... succeeded = 1 ... failed = 0 >>> CodeEnum.get_by_name("succeeded") <CodeEnum.succeeded: 1> >>> CodeEnum.get_by_value(1) <CodeEnum.succeeded: 1> >>> CodeEnum.is_valid_name("succeeded") True >>> CodeEnum.is_valid_name("SUCCEEDED") False >>> CodeEnum.is_valid_name(1) False >>> CodeEnum.is_valid_value("succeeded") False >>> CodeEnum.is_valid_value("SUCCEEDED") False >>> CodeEnum.is_valid_value(1) True >>> CodeEnum.ensure_is_valid_value(1) >>> CodeEnum.ensure_is_valid_value("succeeded") Traceback (most recent call last): ... ValueError: Invalid CodeEnum: 'succeeded' >>> CodeEnum.ensure_int(1) 1 >>> CodeEnum.ensure_int(CodeEnum.succeeded) 1 >>> isinstance(CodeEnum.ensure_int(1), int) True
- classmethod is_valid_value(value: int) bool[source]#
Return a boolean to indicate if the value is valid.
- classmethod ensure_is_valid_value(value)[source]#
Ensure the value is valid. Raise ValueError if not.
- class tt4human.better_enum.BetterStrEnum(value)[source]#
Example:
>>> class StatusEnum(BetterStrEnum): ... succeeded = "SUCCEEDED" ... failed = "FAILED" >>> StatusEnum.get_by_name("succeeded") <StatusEnum.succeeded: 'SUCCEEDED'> >>> StatusEnum.get_by_value("SUCCEEDED") <StatusEnum.succeeded: 'SUCCEEDED'> >>> StatusEnum.is_valid_name("succeeded") True >>> StatusEnum.is_valid_name("SUCCEEDED") False >>> StatusEnum.is_valid_value("succeeded") False >>> StatusEnum.is_valid_value("SUCCEEDED") True >>> StatusEnum.ensure_is_valid_value("SUCCEEDED") >>> StatusEnum.ensure_is_valid_value("succeeded") Traceback (most recent call last): ... ValueError: Invalid StatusEnum: 'succeeded' >>> StatusEnum.ensure_str("SUCCEEDED") 'SUCCEEDED' >>> StatusEnum.ensure_str(StatusEnum.succeeded) 'SUCCEEDED' >>> isinstance(StatusEnum.ensure_str("SUCCEEDED"), str) True
- classmethod is_valid_value(value: str) bool[source]#
Return a boolean to indicate if the value is valid.
- classmethod ensure_is_valid_value(value)[source]#
Ensure the value is valid. Raise ValueError if not.