iqrfpy.utils.enums

Utility enums module.

This module contains auxiliary enums enriched with quality of life functions.

 1"""Utility enums module.
 2
 3This module contains auxiliary enums enriched with quality of life functions.
 4"""
 5
 6from enum import EnumMeta, IntEnum
 7
 8__all__ = (
 9    'IntEnumMember',
10    'MetaEnum',
11)
12
13
14class MetaEnum(EnumMeta):
15    """Auxiliary enum meta class implementing __contains__ for the `in` operator."""
16
17    def __contains__(cls, item):
18        """Check if item is an enum member.
19
20        Args:
21            item: Item to check
22        Returns:
23            :obj`bool`: True if item is enum member, False otherwise
24        """
25        try:
26            cls(item)
27            return True
28        except ValueError:
29            return False
30
31
32class IntEnumMember(IntEnum, metaclass=MetaEnum):
33    """Integer enum base class with member value method."""
class IntEnumMember(enum.IntEnum):
33class IntEnumMember(IntEnum, metaclass=MetaEnum):
34    """Integer enum base class with member value method."""

Integer enum base class with member value method.

class MetaEnum(enum.EnumType):
15class MetaEnum(EnumMeta):
16    """Auxiliary enum meta class implementing __contains__ for the `in` operator."""
17
18    def __contains__(cls, item):
19        """Check if item is an enum member.
20
21        Args:
22            item: Item to check
23        Returns:
24            :obj`bool`: True if item is enum member, False otherwise
25        """
26        try:
27            cls(item)
28            return True
29        except ValueError:
30            return False

Auxiliary enum meta class implementing __contains__ for the in operator.