Skip to content

Commit

Permalink
Enforce CameraEntityFeature (home-assistant#82325)
Browse files Browse the repository at this point in the history
  • Loading branch information
epenet authored Nov 22, 2022
1 parent 7df711f commit 8b54a06
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 10 deletions.
4 changes: 2 additions & 2 deletions homeassistant/components/camera/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ class Camera(Entity):
_attr_motion_detection_enabled: bool = False
_attr_should_poll: bool = False # No need to poll cameras
_attr_state: None = None # State is determined by is_on
_attr_supported_features: CameraEntityFeature | int = 0
_attr_supported_features: CameraEntityFeature = CameraEntityFeature(0)

def __init__(self) -> None:
"""Initialize a camera."""
Expand All @@ -450,7 +450,7 @@ def entity_picture(self) -> str:
return ENTITY_IMAGE_URL.format(self.entity_id, self.access_tokens[-1])

@property
def supported_features(self) -> CameraEntityFeature | int:
def supported_features(self) -> CameraEntityFeature:
"""Flag supported features."""
return self._attr_supported_features

Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/nest/camera_sdm.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,9 @@ def model(self) -> str | None:
return self._device_info.device_model

@property
def supported_features(self) -> int:
def supported_features(self) -> CameraEntityFeature:
"""Flag supported features."""
supported_features = 0
supported_features = CameraEntityFeature(0)
if CameraLiveStreamTrait.NAME in self._device.traits:
supported_features |= CameraEntityFeature.STREAM
return supported_features
Expand Down
7 changes: 4 additions & 3 deletions homeassistant/components/unifiprotect/camera.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,9 +175,10 @@ def _async_set_stream_source(self) -> None:
self._stream_source = ( # pylint: disable=attribute-defined-outside-init
None if disable_stream else rtsp_url
)
self._attr_supported_features = (
CameraEntityFeature.STREAM if self._stream_source else 0
)
if self._stream_source:
self._attr_supported_features = CameraEntityFeature.STREAM
else:
self._attr_supported_features = CameraEntityFeature(0)

@callback
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None:
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/uvc/camera.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,14 +107,14 @@ def name(self):
return self._name

@property
def supported_features(self) -> CameraEntityFeature | int:
def supported_features(self) -> CameraEntityFeature:
"""Return supported features."""
channels = self._caminfo["channels"]
for channel in channels:
if channel["isRtspEnabled"]:
return CameraEntityFeature.STREAM

return 0
return CameraEntityFeature(0)

@property
def extra_state_attributes(self):
Expand Down
2 changes: 1 addition & 1 deletion pylint/plugins/hass_enforce_type_hints.py
Original file line number Diff line number Diff line change
Expand Up @@ -803,7 +803,7 @@ class ClassTypeHintMatch:
),
TypeHintMatch(
function_name="supported_features",
return_type=["CameraEntityFeature", "int"],
return_type="CameraEntityFeature",
),
TypeHintMatch(
function_name="is_recording",
Expand Down

0 comments on commit 8b54a06

Please sign in to comment.