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 get_by_value(value: int)[source]#

Get the enum member (an enum object) by value.

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.

classmethod ensure_int(value: Union[int, BetterIntEnum]) int[source]#

Ensure the value is an integer. If it is an enum object, return its value.

classmethod get_values() List[int][source]#

Return a list of values.

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 get_by_value(value: str)[source]#

Get the enum member (an enum object) by value.

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.

classmethod ensure_str(value: Union[str, BetterStrEnum]) str[source]#

Ensure the value is a string. If it is an enum object, return its value.

classmethod get_values() List[str][source]#

Return a list of values.