Improved @supermodo results with caching of results.
from enum import IntEnum
class SuperIntEnum(IntEnum):
_dict = None
_items = None
_keys = None
_values = None
@classmethod
def to_dict(cls):
if cls._dict is None:
cls._dict = {e.name: e.value for e in cls}
return cls._dict
@classmethod
def items(cls):
if cls._items is None:
cls._items = [(e.name, e.value) for e in cls]
return cls._items
@classmethod
def keys(cls):
if cls._keys is None:
cls._keys = [e.name for e in cls]
return cls._keys
@classmethod
def values(cls):
if cls._values is None:
cls._values = [e.value for e in cls]
return cls._values