diff --git a/homeassistant/components/camera/__init__.py b/homeassistant/components/camera/__init__.py index fe7510c3bf5..1cbebea0c63 100644 --- a/homeassistant/components/camera/__init__.py +++ b/homeassistant/components/camera/__init__.py @@ -74,7 +74,10 @@ from .const import ( StreamType, ) from .helper import get_camera_from_entity_id -from .img_util import scale_jpeg_camera_image +from .img_util import ( + TurboJPEGSingleton, # noqa: F401 + scale_jpeg_camera_image, +) from .prefs import ( CameraPreferences, DynamicStreamSettings, # noqa: F401 diff --git a/homeassistant/components/cloud/client.py b/homeassistant/components/cloud/client.py index e15ea92dece..a6f9c7a1a79 100644 --- a/homeassistant/components/cloud/client.py +++ b/homeassistant/components/cloud/client.py @@ -19,7 +19,7 @@ from homeassistant.components.alexa import ( errors as alexa_errors, smart_home as alexa_smart_home, ) -from homeassistant.components.camera.webrtc import async_register_ice_servers +from homeassistant.components.camera import async_register_ice_servers from homeassistant.components.google_assistant import smart_home as ga from homeassistant.const import __version__ as HA_VERSION from homeassistant.core import Context, HassJob, HomeAssistant, callback diff --git a/homeassistant/components/demo/alarm_control_panel.py b/homeassistant/components/demo/alarm_control_panel.py index 64474b4beb6..9716eccc2c1 100644 --- a/homeassistant/components/demo/alarm_control_panel.py +++ b/homeassistant/components/demo/alarm_control_panel.py @@ -5,7 +5,9 @@ from __future__ import annotations import datetime from homeassistant.components.alarm_control_panel import AlarmControlPanelState -from homeassistant.components.manual.alarm_control_panel import ManualAlarm +from homeassistant.components.manual.alarm_control_panel import ( # pylint: disable=hass-component-root-import + ManualAlarm, +) from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_ARMING_TIME, CONF_DELAY_TIME, CONF_TRIGGER_TIME from homeassistant.core import HomeAssistant diff --git a/homeassistant/components/go2rtc/__init__.py b/homeassistant/components/go2rtc/__init__.py index 5ee449f3833..6abb16d36ea 100644 --- a/homeassistant/components/go2rtc/__init__.py +++ b/homeassistant/components/go2rtc/__init__.py @@ -30,8 +30,8 @@ from homeassistant.components.camera import ( WebRTCMessage, WebRTCSendMessage, async_register_webrtc_provider, + get_dynamic_camera_stream_settings, ) -from homeassistant.components.camera.prefs import get_dynamic_camera_stream_settings from homeassistant.components.default_config import DOMAIN as DEFAULT_CONFIG_DOMAIN from homeassistant.components.stream import Orientation from homeassistant.config_entries import SOURCE_SYSTEM, ConfigEntry diff --git a/homeassistant/components/lovelace/cast.py b/homeassistant/components/lovelace/cast.py index 635425ba3dc..a22e94b9b1f 100644 --- a/homeassistant/components/lovelace/cast.py +++ b/homeassistant/components/lovelace/cast.py @@ -8,7 +8,7 @@ from pychromecast import Chromecast from pychromecast.const import CAST_TYPE_CHROMECAST from homeassistant.components.cast import DOMAIN as CAST_DOMAIN -from homeassistant.components.cast.home_assistant_cast import ( +from homeassistant.components.cast.home_assistant_cast import ( # pylint: disable=hass-component-root-import ATTR_URL_PATH, ATTR_VIEW_PATH, NO_URL_AVAILABLE_ERROR, diff --git a/homeassistant/components/sonos/media_player.py b/homeassistant/components/sonos/media_player.py index a2719ec6ba9..f7d72587c5b 100644 --- a/homeassistant/components/sonos/media_player.py +++ b/homeassistant/components/sonos/media_player.py @@ -39,7 +39,9 @@ from homeassistant.components.media_player import ( async_process_play_media_url, ) from homeassistant.components.plex import PLEX_URI_SCHEME -from homeassistant.components.plex.services import process_plex_payload +from homeassistant.components.plex.services import ( # pylint: disable=hass-component-root-import + process_plex_payload, +) from homeassistant.core import HomeAssistant, callback from homeassistant.exceptions import HomeAssistantError, ServiceValidationError from homeassistant.helpers import entity_registry as er diff --git a/homeassistant/components/stream/core.py b/homeassistant/components/stream/core.py index 7dc6bab16b9..2ee49edb23e 100644 --- a/homeassistant/components/stream/core.py +++ b/homeassistant/components/stream/core.py @@ -441,9 +441,7 @@ class KeyFrameConverter: # Keep import here so that we can import stream integration # without installing reqs - from homeassistant.components.camera.img_util import ( # noqa: PLC0415 - TurboJPEGSingleton, - ) + from homeassistant.components.camera import TurboJPEGSingleton # noqa: PLC0415 self._packet: Packet | None = None self._event: asyncio.Event = asyncio.Event() diff --git a/pylint/plugins/hass_imports.py b/pylint/plugins/hass_imports.py index 95f7b0a0feb..ae7644419dc 100644 --- a/pylint/plugins/hass_imports.py +++ b/pylint/plugins/hass_imports.py @@ -128,8 +128,6 @@ _OBSOLETE_IMPORT: dict[str, list[ObsoleteImportMatch]] = { _IGNORE_ROOT_IMPORT = ( "automation", "bluetooth", - "camera", - "cast", "device_automation", "device_tracker", "ffmpeg", @@ -138,8 +136,6 @@ _IGNORE_ROOT_IMPORT = ( "homeassistant", "homeassistant_hardware", "http", - "manual", - "plex", "recorder", "rest", "script", diff --git a/tests/components/go2rtc/test_init.py b/tests/components/go2rtc/test_init.py index 7b748096ca5..5b85bfee3db 100644 --- a/tests/components/go2rtc/test_init.py +++ b/tests/components/go2rtc/test_init.py @@ -21,6 +21,9 @@ import pytest from webrtc_models import RTCIceCandidateInit from homeassistant.components.camera import ( + DATA_CAMERA_PREFS, + CameraPreferences, + DynamicStreamSettings, StreamType, WebRTCAnswer as HAWebRTCAnswer, WebRTCCandidate as HAWebRTCCandidate, @@ -29,11 +32,6 @@ from homeassistant.components.camera import ( WebRTCSendMessage, async_get_image, ) -from homeassistant.components.camera.const import DATA_CAMERA_PREFS -from homeassistant.components.camera.prefs import ( - CameraPreferences, - DynamicStreamSettings, -) from homeassistant.components.default_config import DOMAIN as DEFAULT_CONFIG_DOMAIN from homeassistant.components.go2rtc import HomeAssistant, WebRTCProvider from homeassistant.components.go2rtc.const import ( diff --git a/tests/components/homekit/test_type_cameras.py b/tests/components/homekit/test_type_cameras.py index a42980ec2af..6dad8a83461 100644 --- a/tests/components/homekit/test_type_cameras.py +++ b/tests/components/homekit/test_type_cameras.py @@ -9,7 +9,7 @@ import pytest from homeassistant.components import camera, ffmpeg from homeassistant.components.binary_sensor import BinarySensorDeviceClass -from homeassistant.components.camera.img_util import TurboJPEGSingleton +from homeassistant.components.camera import TurboJPEGSingleton from homeassistant.components.event import EventDeviceClass from homeassistant.components.homekit.accessories import HomeBridge from homeassistant.components.homekit.const import ( diff --git a/tests/components/stream/test_worker.py b/tests/components/stream/test_worker.py index 276b4109652..d6baf53a732 100644 --- a/tests/components/stream/test_worker.py +++ b/tests/components/stream/test_worker.py @@ -1005,7 +1005,7 @@ async def test_get_image(hass: HomeAssistant, h264_video, filename) -> None: # Since libjpeg-turbo is not installed on the CI runner, we use a mock with patch( - "homeassistant.components.camera.img_util.TurboJPEGSingleton" + "homeassistant.components.camera.TurboJPEGSingleton" ) as mock_turbo_jpeg_singleton: mock_turbo_jpeg_singleton.instance.return_value = mock_turbo_jpeg() stream = create_stream(hass, h264_video, {}, dynamic_stream_settings()) @@ -1068,7 +1068,7 @@ async def test_get_image_rotated(hass: HomeAssistant, h264_video, filename) -> N # Since libjpeg-turbo is not installed on the CI runner, we use a mock with patch( - "homeassistant.components.camera.img_util.TurboJPEGSingleton" + "homeassistant.components.camera.TurboJPEGSingleton" ) as mock_turbo_jpeg_singleton: mock_turbo_jpeg_singleton.instance.return_value = mock_turbo_jpeg() for orientation in (Orientation.NO_TRANSFORM, Orientation.ROTATE_RIGHT): diff --git a/tests/components/unifiprotect/test_camera.py b/tests/components/unifiprotect/test_camera.py index 9c78e09d264..8541895e9b3 100644 --- a/tests/components/unifiprotect/test_camera.py +++ b/tests/components/unifiprotect/test_camera.py @@ -21,8 +21,8 @@ from homeassistant.components.camera import ( async_get_image, async_get_stream_source, async_register_webrtc_provider, + get_camera_from_entity_id, ) -from homeassistant.components.camera.helper import get_camera_from_entity_id from homeassistant.components.unifiprotect.const import ( ATTR_BITRATE, ATTR_CHANNEL_ID,