Skip to content

Commit b9f8ca5

Browse files
committed
chore: move outside of loop
1 parent e791aff commit b9f8ca5

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

roborock/devices/traits/v1/__init__.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,12 @@ async def discover_features(self) -> None:
230230
# Dock type also acts like a device feature for some traits.
231231
dock_type = await self._dock_type()
232232

233+
# Initialize traits with special arguments before the generic loop
234+
if self.wash_towel_mode is None and self._is_supported(WashTowelModeTrait, "wash_towel_mode", dock_type):
235+
wash_towel_mode = WashTowelModeTrait(self.device_features)
236+
wash_towel_mode._rpc_channel = self._get_rpc_channel(wash_towel_mode) # type: ignore[assignment]
237+
self.wash_towel_mode = wash_towel_mode
238+
233239
# Dynamically create any traits that need to be populated
234240
for item in fields(self):
235241
if (trait := getattr(self, item.name, None)) is not None:
@@ -245,10 +251,7 @@ async def discover_features(self) -> None:
245251
_LOGGER.debug("Trait '%s' not supported, skipping", item.name)
246252
continue
247253
_LOGGER.debug("Trait '%s' is supported, initializing", item.name)
248-
if item_type is WashTowelModeTrait:
249-
trait = item_type(self.device_features)
250-
else:
251-
trait = item_type()
254+
trait = item_type()
252255
setattr(self, item.name, trait)
253256
trait._rpc_channel = self._get_rpc_channel(trait)
254257

0 commit comments

Comments
 (0)