Source code for runtimepy.mixins.enum
"""
A module implementing a class mixin for classes that have an optional
enum-registry key.
"""
# built-in
from typing import Optional as _Optional
# internal
from runtimepy.registry.name import RegistryKey as _RegistryKey
[docs]
class EnumMixin:
"""A class for working with an underlying enum attribute."""
# Instance initialization must set this.
_enum: _Optional[_RegistryKey]
@property
def is_enum(self) -> bool:
"""Determine if this channel has an associated enumeration."""
return self._enum is not None
@property
def enum(self) -> _RegistryKey:
"""Get the enum-registry key for this channel."""
assert self._enum is not None
return self._enum