diff --git a/homeassistant/components/dremel_3d_printer/binary_sensor.py b/homeassistant/components/dremel_3d_printer/binary_sensor.py index 22c2a1a9557..f1fc31eac60 100644 --- a/homeassistant/components/dremel_3d_printer/binary_sensor.py +++ b/homeassistant/components/dremel_3d_printer/binary_sensor.py @@ -19,20 +19,13 @@ from .const import DOMAIN from .entity import Dremel3DPrinterEntity -@dataclass(frozen=True) -class Dremel3DPrinterBinarySensorEntityMixin: - """Mixin for Dremel 3D Printer binary sensor.""" +@dataclass(frozen=True, kw_only=True) +class Dremel3DPrinterBinarySensorEntityDescription(BinarySensorEntityDescription): + """Describes a Dremel 3D Printer binary sensor.""" value_fn: Callable[[Dremel3DPrinter], bool] -@dataclass(frozen=True) -class Dremel3DPrinterBinarySensorEntityDescription( - BinarySensorEntityDescription, Dremel3DPrinterBinarySensorEntityMixin -): - """Describes a Dremel 3D Printer binary sensor.""" - - BINARY_SENSOR_TYPES: tuple[Dremel3DPrinterBinarySensorEntityDescription, ...] = ( Dremel3DPrinterBinarySensorEntityDescription( key="door", diff --git a/homeassistant/components/dremel_3d_printer/button.py b/homeassistant/components/dremel_3d_printer/button.py index b2ea103f78b..0a312de1468 100644 --- a/homeassistant/components/dremel_3d_printer/button.py +++ b/homeassistant/components/dremel_3d_printer/button.py @@ -16,20 +16,13 @@ from .const import DOMAIN from .entity import Dremel3DPrinterEntity -@dataclass(frozen=True) -class Dremel3DPrinterButtonEntityMixin: - """Mixin for required keys.""" +@dataclass(frozen=True, kw_only=True) +class Dremel3DPrinterButtonEntityDescription(ButtonEntityDescription): + """Describes a Dremel 3D Printer button entity.""" press_fn: Callable[[Dremel3DPrinter], None] -@dataclass(frozen=True) -class Dremel3DPrinterButtonEntityDescription( - ButtonEntityDescription, Dremel3DPrinterButtonEntityMixin -): - """Describes a Dremel 3D Printer button entity.""" - - BUTTON_TYPES: tuple[Dremel3DPrinterButtonEntityDescription, ...] = ( Dremel3DPrinterButtonEntityDescription( key="cancel_job", diff --git a/homeassistant/components/dremel_3d_printer/sensor.py b/homeassistant/components/dremel_3d_printer/sensor.py index 98e4cd0e85d..0bcdfa904e8 100644 --- a/homeassistant/components/dremel_3d_printer/sensor.py +++ b/homeassistant/components/dremel_3d_printer/sensor.py @@ -31,19 +31,11 @@ from .const import ATTR_EXTRUDER, ATTR_PLATFORM, DOMAIN from .entity import Dremel3DPrinterEntity -@dataclass(frozen=True) -class Dremel3DPrinterSensorEntityMixin: - """Mixin for Dremel 3D Printer sensor.""" - - value_fn: Callable[[Dremel3DPrinter, str], StateType | datetime] - - -@dataclass(frozen=True) -class Dremel3DPrinterSensorEntityDescription( - SensorEntityDescription, Dremel3DPrinterSensorEntityMixin -): +@dataclass(frozen=True, kw_only=True) +class Dremel3DPrinterSensorEntityDescription(SensorEntityDescription): """Describes a Dremel 3D Printer sensor.""" + value_fn: Callable[[Dremel3DPrinter, str], StateType | datetime] available_fn: Callable[[Dremel3DPrinter, str], bool] = lambda api, _: True