diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0db0244edc9..cc3be5c2391 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.1.8 + rev: v0.1.15 hooks: - id: ruff args: diff --git a/homeassistant/components/bluetooth/passive_update_processor.py b/homeassistant/components/bluetooth/passive_update_processor.py index 601f78d4c8d..43991672e81 100644 --- a/homeassistant/components/bluetooth/passive_update_processor.py +++ b/homeassistant/components/bluetooth/passive_update_processor.py @@ -51,6 +51,7 @@ class PassiveBluetoothEntityKey: Example: key: temperature device_id: outdoor_sensor_1 + """ key: str diff --git a/homeassistant/components/easyenergy/diagnostics.py b/homeassistant/components/easyenergy/diagnostics.py index 6bc5ed3803a..0c885174872 100644 --- a/homeassistant/components/easyenergy/diagnostics.py +++ b/homeassistant/components/easyenergy/diagnostics.py @@ -21,6 +21,7 @@ def get_gas_price(data: EasyEnergyData, hours: int) -> float | None: Returns: The gas market price value. + """ if not data.gas_today: return None diff --git a/homeassistant/components/easyenergy/sensor.py b/homeassistant/components/easyenergy/sensor.py index 7298c49660f..0aab8c6ffa6 100644 --- a/homeassistant/components/easyenergy/sensor.py +++ b/homeassistant/components/easyenergy/sensor.py @@ -208,6 +208,7 @@ def get_gas_price(data: EasyEnergyData, hours: int) -> float | None: Returns: The gas market price value. + """ if data.gas_today is None: return None diff --git a/homeassistant/components/energyzero/diagnostics.py b/homeassistant/components/energyzero/diagnostics.py index 3b0c05b7368..b4018a32d3d 100644 --- a/homeassistant/components/energyzero/diagnostics.py +++ b/homeassistant/components/energyzero/diagnostics.py @@ -21,6 +21,7 @@ def get_gas_price(data: EnergyZeroData, hours: int) -> float | None: Returns: The gas market price value. + """ if not data.gas_today: return None diff --git a/homeassistant/components/energyzero/sensor.py b/homeassistant/components/energyzero/sensor.py index 59c44c1aad8..50cc2f21bd3 100644 --- a/homeassistant/components/energyzero/sensor.py +++ b/homeassistant/components/energyzero/sensor.py @@ -140,6 +140,7 @@ def get_gas_price(data: EnergyZeroData, hours: int) -> float | None: Returns: The gas market price value. + """ if data.gas_today is None: return None diff --git a/homeassistant/components/nuki/__init__.py b/homeassistant/components/nuki/__init__.py index 42d95f85937..41fc4c2e03e 100644 --- a/homeassistant/components/nuki/__init__.py +++ b/homeassistant/components/nuki/__init__.py @@ -332,6 +332,7 @@ class NukiCoordinator(DataUpdateCoordinator[None]): # pylint: disable=hass-enfo Returns: A dict with the events to be fired. The event type is the key and the device ids are the value + """ events: dict[str, set[str]] = defaultdict(set) diff --git a/homeassistant/components/sensor/__init__.py b/homeassistant/components/sensor/__init__.py index 05fec64608f..7d104fa2bbe 100644 --- a/homeassistant/components/sensor/__init__.py +++ b/homeassistant/components/sensor/__init__.py @@ -502,6 +502,7 @@ class SensorEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_): Note: suggested_unit_of_measurement is stored in the entity registry the first time the entity is seen, and then never updated. + """ if hasattr(self, "_attr_suggested_unit_of_measurement"): return self._attr_suggested_unit_of_measurement diff --git a/homeassistant/components/snapcast/server.py b/homeassistant/components/snapcast/server.py index 6a787dd5e88..bac51150eba 100644 --- a/homeassistant/components/snapcast/server.py +++ b/homeassistant/components/snapcast/server.py @@ -134,6 +134,7 @@ class HomeAssistantSnapcast: ---------- client : Snapclient Snapcast client to be added to HA. + """ if not self.hass_async_add_entities: return diff --git a/homeassistant/components/wemo/wemo_device.py b/homeassistant/components/wemo/wemo_device.py index 2c216100244..a54610e9a8b 100644 --- a/homeassistant/components/wemo/wemo_device.py +++ b/homeassistant/components/wemo/wemo_device.py @@ -55,6 +55,7 @@ class OptionsValidationError(Exception): field_key must also match one of the field names inside the Options class. error_key: Name of the options.error key that corresponds to this error. message: Message for the Exception class. + """ super().__init__(message) self.field_key = field_key diff --git a/homeassistant/components/zwave_js/discovery_data_template.py b/homeassistant/components/zwave_js/discovery_data_template.py index b633e2a614f..61a0cfdb802 100644 --- a/homeassistant/components/zwave_js/discovery_data_template.py +++ b/homeassistant/components/zwave_js/discovery_data_template.py @@ -564,6 +564,7 @@ class ConfigurableFanValueMappingDataTemplate( `configuration_value_to_fan_value_mapping` maps the values from `configuration_option` to the value mapping object. + """ def resolve_data( @@ -634,6 +635,7 @@ class FixedFanValueMappingDataTemplate( ) ), ), + """ def get_fan_value_mapping( diff --git a/homeassistant/helpers/config_validation.py b/homeassistant/helpers/config_validation.py index bdf9897a4ba..7d63fb4a7b4 100644 --- a/homeassistant/helpers/config_validation.py +++ b/homeassistant/helpers/config_validation.py @@ -364,6 +364,7 @@ def domain_key(config_key: Any) -> str: 'hue 1' returns 'hue' 'hue ' raises 'hue ' raises + """ if not isinstance(config_key, str): raise vol.Invalid("invalid domain", path=[config_key]) diff --git a/homeassistant/helpers/template.py b/homeassistant/helpers/template.py index 8d837bc9bc6..1bb7220f784 100644 --- a/homeassistant/helpers/template.py +++ b/homeassistant/helpers/template.py @@ -2295,6 +2295,7 @@ def iif( {{ is_state("device_tracker.frenck", "home") | iif("yes", "no") }} {{ iif(1==2, "yes", "no") }} {{ (1 == 1) | iif("yes", "no") }} + """ if value is None and if_none is not _SENTINEL: return if_none diff --git a/requirements_test_pre_commit.txt b/requirements_test_pre_commit.txt index a02eed66ffa..e12fefa0768 100644 --- a/requirements_test_pre_commit.txt +++ b/requirements_test_pre_commit.txt @@ -1,5 +1,5 @@ # Automatically generated from .pre-commit-config.yaml by gen_requirements_all.py, do not edit codespell==2.2.2 -ruff==0.1.8 +ruff==0.1.15 yamllint==1.32.0 diff --git a/tests/components/blackbird/test_media_player.py b/tests/components/blackbird/test_media_player.py index 2185c549d9b..de8be9d4ed5 100644 --- a/tests/components/blackbird/test_media_player.py +++ b/tests/components/blackbird/test_media_player.py @@ -287,10 +287,10 @@ async def test_state(hass: HomeAssistant, media_player_entity, mock_blackbird) - async def test_supported_features(media_player_entity) -> None: """Test supported features property.""" assert ( - MediaPlayerEntityFeature.TURN_ON + media_player_entity.supported_features + == MediaPlayerEntityFeature.TURN_ON | MediaPlayerEntityFeature.TURN_OFF | MediaPlayerEntityFeature.SELECT_SOURCE - == media_player_entity.supported_features ) diff --git a/tests/components/cast/test_media_player.py b/tests/components/cast/test_media_player.py index 55e4d8d5c65..2af5e67f845 100644 --- a/tests/components/cast/test_media_player.py +++ b/tests/components/cast/test_media_player.py @@ -2285,6 +2285,7 @@ async def test_cast_platform_play_media_local_media( quick_play_mock.assert_called() app_data = quick_play_mock.call_args[0][2] # No authSig appended - assert app_data[ - "media_id" - ] == f"{network.get_url(hass)}/api/hls/bla/master_playlist.m3u8?token=bla" + assert ( + app_data["media_id"] + == f"{network.get_url(hass)}/api/hls/bla/master_playlist.m3u8?token=bla" + ) diff --git a/tests/components/directv/test_media_player.py b/tests/components/directv/test_media_player.py index 48b12132cbe..55dd2e758dc 100644 --- a/tests/components/directv/test_media_player.py +++ b/tests/components/directv/test_media_player.py @@ -172,7 +172,8 @@ async def test_supported_features( # Features supported for main DVR state = hass.states.get(MAIN_ENTITY_ID) assert ( - MediaPlayerEntityFeature.PAUSE + state.attributes.get("supported_features") + == MediaPlayerEntityFeature.PAUSE | MediaPlayerEntityFeature.TURN_ON | MediaPlayerEntityFeature.TURN_OFF | MediaPlayerEntityFeature.PLAY_MEDIA @@ -180,19 +181,18 @@ async def test_supported_features( | MediaPlayerEntityFeature.NEXT_TRACK | MediaPlayerEntityFeature.PREVIOUS_TRACK | MediaPlayerEntityFeature.PLAY - == state.attributes.get("supported_features") ) # Feature supported for clients. state = hass.states.get(CLIENT_ENTITY_ID) assert ( - MediaPlayerEntityFeature.PAUSE + state.attributes.get("supported_features") + == MediaPlayerEntityFeature.PAUSE | MediaPlayerEntityFeature.PLAY_MEDIA | MediaPlayerEntityFeature.STOP | MediaPlayerEntityFeature.NEXT_TRACK | MediaPlayerEntityFeature.PREVIOUS_TRACK | MediaPlayerEntityFeature.PLAY - == state.attributes.get("supported_features") ) diff --git a/tests/components/monoprice/test_media_player.py b/tests/components/monoprice/test_media_player.py index c2f9ef01111..36577c259d0 100644 --- a/tests/components/monoprice/test_media_player.py +++ b/tests/components/monoprice/test_media_player.py @@ -360,13 +360,13 @@ async def test_supported_features(hass: HomeAssistant) -> None: state = hass.states.get(ZONE_1_ID) assert ( - MediaPlayerEntityFeature.VOLUME_MUTE + state.attributes["supported_features"] + == MediaPlayerEntityFeature.VOLUME_MUTE | MediaPlayerEntityFeature.VOLUME_SET | MediaPlayerEntityFeature.VOLUME_STEP | MediaPlayerEntityFeature.TURN_ON | MediaPlayerEntityFeature.TURN_OFF | MediaPlayerEntityFeature.SELECT_SOURCE - == state.attributes["supported_features"] ) diff --git a/tests/components/nx584/test_binary_sensor.py b/tests/components/nx584/test_binary_sensor.py index b11865448b6..044fbc6ae9e 100644 --- a/tests/components/nx584/test_binary_sensor.py +++ b/tests/components/nx584/test_binary_sensor.py @@ -27,6 +27,7 @@ def fake_zones(): Returns: list: List of fake zones + """ return [ {"name": "front", "number": 1}, @@ -44,6 +45,7 @@ def client(fake_zones): Yields: MagicMock: Client Mock + """ with mock.patch.object(nx584_client, "Client") as _mock_client: client = nx584_client.Client.return_value diff --git a/tests/components/roku/test_media_player.py b/tests/components/roku/test_media_player.py index c186741aac9..776962e071c 100644 --- a/tests/components/roku/test_media_player.py +++ b/tests/components/roku/test_media_player.py @@ -189,7 +189,8 @@ async def test_supported_features( # Features supported for Rokus state = hass.states.get(MAIN_ENTITY_ID) assert ( - MediaPlayerEntityFeature.PREVIOUS_TRACK + state.attributes.get("supported_features") + == MediaPlayerEntityFeature.PREVIOUS_TRACK | MediaPlayerEntityFeature.NEXT_TRACK | MediaPlayerEntityFeature.VOLUME_STEP | MediaPlayerEntityFeature.VOLUME_MUTE @@ -200,7 +201,6 @@ async def test_supported_features( | MediaPlayerEntityFeature.TURN_ON | MediaPlayerEntityFeature.TURN_OFF | MediaPlayerEntityFeature.BROWSE_MEDIA - == state.attributes.get("supported_features") ) @@ -214,7 +214,8 @@ async def test_tv_supported_features( state = hass.states.get(TV_ENTITY_ID) assert state assert ( - MediaPlayerEntityFeature.PREVIOUS_TRACK + state.attributes.get("supported_features") + == MediaPlayerEntityFeature.PREVIOUS_TRACK | MediaPlayerEntityFeature.NEXT_TRACK | MediaPlayerEntityFeature.VOLUME_STEP | MediaPlayerEntityFeature.VOLUME_MUTE @@ -225,7 +226,6 @@ async def test_tv_supported_features( | MediaPlayerEntityFeature.TURN_ON | MediaPlayerEntityFeature.TURN_OFF | MediaPlayerEntityFeature.BROWSE_MEDIA - == state.attributes.get("supported_features") ) diff --git a/tests/components/ws66i/test_media_player.py b/tests/components/ws66i/test_media_player.py index c4a10197a34..a79ff96cfd7 100644 --- a/tests/components/ws66i/test_media_player.py +++ b/tests/components/ws66i/test_media_player.py @@ -260,13 +260,13 @@ async def test_supported_features(hass: HomeAssistant) -> None: state = hass.states.get(ZONE_1_ID) assert ( - MediaPlayerEntityFeature.VOLUME_MUTE + state.attributes["supported_features"] + == MediaPlayerEntityFeature.VOLUME_MUTE | MediaPlayerEntityFeature.VOLUME_SET | MediaPlayerEntityFeature.VOLUME_STEP | MediaPlayerEntityFeature.TURN_ON | MediaPlayerEntityFeature.TURN_OFF | MediaPlayerEntityFeature.SELECT_SOURCE - == state.attributes["supported_features"] )