From 9b96bc32ebcc464f4bf14a7ec721f12ca38bf5cd Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 23 Sep 2024 21:03:29 +0200 Subject: [PATCH] Add derived Entity classes in hass-enforce-class-module pylint plugin (#126494) --- homeassistant/components/homekit/type_cameras.py | 2 ++ homeassistant/components/roomba/braava.py | 2 +- homeassistant/components/roomba/entity.py | 2 +- homeassistant/components/roomba/roomba.py | 4 ++-- pylint/plugins/hass_enforce_class_module.py | 8 ++++---- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/homekit/type_cameras.py b/homeassistant/components/homekit/type_cameras.py index 13169c877a9..9e076f7d4d7 100644 --- a/homeassistant/components/homekit/type_cameras.py +++ b/homeassistant/components/homekit/type_cameras.py @@ -147,6 +147,8 @@ CONFIG_DEFAULTS = { @TYPES.register("Camera") +# False-positive on pylint, not a CameraEntity +# pylint: disable-next=hass-enforce-class-module class Camera(HomeAccessory, PyhapCamera): # type: ignore[misc] """Generate a Camera accessory.""" diff --git a/homeassistant/components/roomba/braava.py b/homeassistant/components/roomba/braava.py index 6a62a715a8a..8744561b2c5 100644 --- a/homeassistant/components/roomba/braava.py +++ b/homeassistant/components/roomba/braava.py @@ -27,7 +27,7 @@ BRAAVA_SPRAY_AMOUNT = [1, 2, 3] SUPPORT_BRAAVA = SUPPORT_IROBOT | VacuumEntityFeature.FAN_SPEED -class BraavaJet(IRobotVacuum): +class BraavaJet(IRobotVacuum): # pylint: disable=hass-enforce-class-module """Braava Jet.""" _attr_supported_features = SUPPORT_BRAAVA diff --git a/homeassistant/components/roomba/entity.py b/homeassistant/components/roomba/entity.py index 07d05a28b89..10c3d36de12 100644 --- a/homeassistant/components/roomba/entity.py +++ b/homeassistant/components/roomba/entity.py @@ -156,7 +156,7 @@ class IRobotEntity(Entity): self.schedule_update_ha_state() -class IRobotVacuum(IRobotEntity, StateVacuumEntity): +class IRobotVacuum(IRobotEntity, StateVacuumEntity): # pylint: disable=hass-enforce-class-module """Base class for iRobot robots.""" _attr_name = None diff --git a/homeassistant/components/roomba/roomba.py b/homeassistant/components/roomba/roomba.py index a26f1912831..917fbb2bfff 100644 --- a/homeassistant/components/roomba/roomba.py +++ b/homeassistant/components/roomba/roomba.py @@ -20,7 +20,7 @@ FAN_SPEEDS = [FAN_SPEED_AUTOMATIC, FAN_SPEED_ECO, FAN_SPEED_PERFORMANCE] SUPPORT_ROOMBA_CARPET_BOOST = SUPPORT_IROBOT | VacuumEntityFeature.FAN_SPEED -class RoombaVacuum(IRobotVacuum): +class RoombaVacuum(IRobotVacuum): # pylint: disable=hass-enforce-class-module """Basic Roomba robot (without carpet boost).""" @property @@ -40,7 +40,7 @@ class RoombaVacuum(IRobotVacuum): return state_attrs -class RoombaVacuumCarpetBoost(RoombaVacuum): +class RoombaVacuumCarpetBoost(RoombaVacuum): # pylint: disable=hass-enforce-class-module """Roomba robot with carpet boost.""" _attr_fan_speed_list = FAN_SPEEDS diff --git a/pylint/plugins/hass_enforce_class_module.py b/pylint/plugins/hass_enforce_class_module.py index 2b8a836dfb4..6491a702b7f 100644 --- a/pylint/plugins/hass_enforce_class_module.py +++ b/pylint/plugins/hass_enforce_class_module.py @@ -20,14 +20,14 @@ _MODULES: dict[str, set[str]] = { "binary_sensor": {"BinarySensorEntity", "BinarySensorEntityDescription"}, "button": {"ButtonEntity", "ButtonEntityDescription"}, "calendar": {"CalendarEntity"}, - "camera": {"CameraEntity", "CameraEntityDescription"}, + "camera": {"Camera", "CameraEntityDescription"}, "climate": {"ClimateEntity", "ClimateEntityDescription"}, "coordinator": {"DataUpdateCoordinator"}, "conversation": {"ConversationEntity"}, "cover": {"CoverEntity", "CoverEntityDescription"}, "date": {"DateEntity", "DateEntityDescription"}, "datetime": {"DateTimeEntity", "DateTimeEntityDescription"}, - "device_tracker": {"DeviceTrackerEntity"}, + "device_tracker": {"DeviceTrackerEntity", "ScannerEntity", "TrackerEntity"}, "event": {"EventEntity", "EventEntityDescription"}, "fan": {"FanEntity", "FanEntityDescription"}, "geo_location": {"GeolocationEvent"}, @@ -54,8 +54,8 @@ _MODULES: dict[str, set[str]] = { "time": {"TimeEntity", "TimeEntityDescription"}, "todo": {"TodoListEntity"}, "tts": {"TextToSpeechEntity"}, - "update": {"UpdateEntityDescription"}, - "vacuum": {"VacuumEntity", "VacuumEntityDescription"}, + "update": {"UpdateEntity", "UpdateEntityDescription"}, + "vacuum": {"StateVacuumEntity", "VacuumEntity", "VacuumEntityDescription"}, "wake_word": {"WakeWordDetectionEntity"}, "water_heater": {"WaterHeaterEntity"}, "weather": {