Skip to content

Commit bd373c5

Browse files
committed
fix: remove functon
1 parent fa0fd7b commit bd373c5

File tree

1 file changed

+41
-45
lines changed

1 file changed

+41
-45
lines changed

roborock/device_features.py

Lines changed: 41 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,38 @@ class ProductFeatures(StrEnum):
123123
TANOSS_FEATURES = [ProductFeatures.REMOTE_BACK, ProductFeatures.MOP_SHAKE_MODULE]
124124
TOPAZSPOWER_FEATURES = [ProductFeatures.CLEANMODE_MAXPLUS, ProductFeatures.MOP_SHAKE_MODULE]
125125

126-
product_feature_map: dict[RoborockProductNickname, list[ProductFeatures]] = {
126+
PRODUCTS_WITHOUT_CUSTOM_CLEAN: set[RoborockProductNickname] = {
127+
RoborockProductNickname.TANOS,
128+
RoborockProductNickname.RUBYPLUS,
129+
RoborockProductNickname.RUBYSC,
130+
RoborockProductNickname.RUBYSE,
131+
}
132+
PRODUCTS_WITHOUT_DEFAULT_3D_MAP: set[RoborockProductNickname] = {
133+
RoborockProductNickname.TANOS,
134+
RoborockProductNickname.TANOSSPLUS,
135+
RoborockProductNickname.TANOSE,
136+
RoborockProductNickname.TANOSV,
137+
RoborockProductNickname.RUBYPLUS,
138+
RoborockProductNickname.RUBYSC,
139+
RoborockProductNickname.RUBYSE,
140+
}
141+
PRODUCTS_WITHOUT_PURE_CLEAN_MOP: set[RoborockProductNickname] = {
142+
RoborockProductNickname.TANOS,
143+
RoborockProductNickname.TANOSE,
144+
RoborockProductNickname.TANOSV,
145+
RoborockProductNickname.TANOSSLITE,
146+
RoborockProductNickname.TANOSSE,
147+
RoborockProductNickname.TANOSSC,
148+
RoborockProductNickname.ULTRONLITE,
149+
RoborockProductNickname.ULTRONE,
150+
RoborockProductNickname.RUBYPLUS,
151+
RoborockProductNickname.RUBYSLITE,
152+
RoborockProductNickname.RUBYSC,
153+
RoborockProductNickname.RUBYSE,
154+
}
155+
156+
# Base map containing the initial, unconditional features for each product.
157+
_BASE_PRODUCT_FEATURE_MAP: dict[RoborockProductNickname, list[ProductFeatures]] = {
127158
RoborockProductNickname.PEARL: PEARL_FEATURES,
128159
RoborockProductNickname.PEARLS: PEARL_FEATURES,
129160
RoborockProductNickname.PEARLPLUS: PEARL_PLUS_FEATURES,
@@ -174,50 +205,15 @@ class ProductFeatures(StrEnum):
174205
RoborockProductNickname.RUBYSLITE: [ProductFeatures.MOP_ELECTRONIC_MODULE],
175206
}
176207

177-
178-
def update_features():
179-
"""Update the feature mapping."""
180-
# Their firmware describes what doesn't have these features - not which one does.
181-
# Matching that for ease of future updates.
182-
PRODUCTS_WITHOUT_CUSTOM_CLEAN = {
183-
RoborockProductNickname.TANOS,
184-
RoborockProductNickname.RUBYPLUS,
185-
RoborockProductNickname.RUBYSC,
186-
RoborockProductNickname.RUBYSE,
187-
}
188-
PRODUCTS_WITHOUT_DEFAULT_3D_MAP = {
189-
RoborockProductNickname.TANOS,
190-
RoborockProductNickname.TANOSSPLUS,
191-
RoborockProductNickname.TANOSE,
192-
RoborockProductNickname.TANOSV,
193-
RoborockProductNickname.RUBYPLUS,
194-
RoborockProductNickname.RUBYSC,
195-
RoborockProductNickname.RUBYSE,
196-
}
197-
PRODUCTS_WITHOUT_PURE_CLEAN_MOP = {
198-
RoborockProductNickname.TANOS,
199-
RoborockProductNickname.TANOSE,
200-
RoborockProductNickname.TANOSV,
201-
RoborockProductNickname.TANOSSLITE,
202-
RoborockProductNickname.TANOSSE,
203-
RoborockProductNickname.TANOSSC,
204-
RoborockProductNickname.ULTRONLITE,
205-
RoborockProductNickname.ULTRONE,
206-
RoborockProductNickname.RUBYPLUS,
207-
RoborockProductNickname.RUBYSLITE,
208-
RoborockProductNickname.RUBYSC,
209-
RoborockProductNickname.RUBYSE,
210-
}
211-
for product, feature_list in product_feature_map.items():
212-
if product not in PRODUCTS_WITHOUT_CUSTOM_CLEAN:
213-
feature_list.append(ProductFeatures.DEFAULT_CLEANMODECUSTOM)
214-
if product not in PRODUCTS_WITHOUT_DEFAULT_3D_MAP:
215-
feature_list.append(ProductFeatures.DEFAULT_MAP3D)
216-
if product not in PRODUCTS_WITHOUT_PURE_CLEAN_MOP:
217-
feature_list.append(ProductFeatures.CLEANMODE_PURECLEANMOP)
218-
219-
220-
update_features()
208+
product_feature_map: dict[RoborockProductNickname, list[ProductFeatures]] = {
209+
product: (
210+
features
211+
+ ([ProductFeatures.DEFAULT_CLEANMODECUSTOM] if product not in PRODUCTS_WITHOUT_CUSTOM_CLEAN else [])
212+
+ ([ProductFeatures.DEFAULT_MAP3D] if product not in PRODUCTS_WITHOUT_DEFAULT_3D_MAP else [])
213+
+ ([ProductFeatures.CLEANMODE_PURECLEANMOP] if product not in PRODUCTS_WITHOUT_PURE_CLEAN_MOP else [])
214+
)
215+
for product, features in _BASE_PRODUCT_FEATURE_MAP.items()
216+
}
221217

222218

223219
@dataclass

0 commit comments

Comments
 (0)