Source code for pyrtid.utils.enum

"""
Provide a StrEnum class.

Note: it has been added in python 3.10 https://bugs.python.org/issue41816

@author: acollet
"""

from enum import Enum
from typing import List


[docs]class StrEnum(str, Enum): """Hashable string Enum. .. tip:: Can be used as :class:`pandas.DataFrame` column names. """ def __str__(self) -> str: """Return instance value.""" return self.value def __hash__(self) -> int: """Return the hash of the value.""" return hash(self.value) def __eq__(self, other: object) -> bool: """Return if two instances are equal.""" if not isinstance(other, StrEnum) and not isinstance(other, str): return False return self.value == other
[docs] @classmethod def to_list(cls) -> List[str]: """Return all enums as a list.""" return list(cls)