Skip to content

Commit b31d57b

Browse files
committed
Improve common function-name
1 parent 43483d8 commit b31d57b

File tree

3 files changed

+30
-30
lines changed

3 files changed

+30
-30
lines changed

plugwise/helper.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@
4848
)
4949
from plugwise.util import (
5050
check_model,
51+
common_match_cases,
5152
escape_illegal_xml_characters,
5253
format_measure,
53-
match_on_true_cases,
5454
skip_obsolete_measurements,
5555
)
5656

@@ -583,7 +583,7 @@ def _appliance_measurements(
583583
case "select_dhw_mode":
584584
data["select_dhw_mode"] = appl_p_loc.text
585585

586-
match_on_true_cases(measurement, attrs, appl_p_loc, data)
586+
common_match_cases(measurement, attrs, appl_p_loc, data)
587587

588588
i_locator = f'.//logs/interval_log[type="{measurement}"]/period/measurement'
589589
if (appl_i_loc := appliance.find(i_locator)) is not None:

plugwise/legacy/helper.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
ThermoLoc,
3636
)
3737
from plugwise.util import (
38+
common_match_cases,
3839
format_measure,
39-
match_on_true_cases,
4040
skip_obsolete_measurements,
4141
version_to_model,
4242
)
@@ -338,7 +338,7 @@ def _appliance_measurements(
338338
if new_name := getattr(attrs, ATTR_NAME, None):
339339
measurement = new_name
340340

341-
match_on_true_cases(measurement, attrs, appl_p_loc, data)
341+
common_match_cases(measurement, attrs, appl_p_loc, data)
342342

343343
i_locator = f'.//logs/interval_log[type="{measurement}"]/period/measurement'
344344
if (appl_i_loc := appliance.find(i_locator)) is not None:

plugwise/util.py

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,32 @@ def check_model(name: str | None, vendor_name: str | None) -> str | None:
113113
return name
114114

115115

116+
def common_match_cases(
117+
measurement: str,
118+
attrs: DATA | UOM,
119+
location: etree,
120+
data: DeviceData,
121+
) -> None:
122+
"""Helper-function for common match-case execution."""
123+
value = location.text in ("on", "true")
124+
match measurement:
125+
case _ as measurement if measurement in BINARY_SENSORS:
126+
bs_key = cast(BinarySensorType, measurement)
127+
data["binary_sensors"][bs_key] = value
128+
case _ as measurement if measurement in SENSORS:
129+
s_key = cast(SensorType, measurement)
130+
s_value = format_measure(
131+
location.text, getattr(attrs, ATTR_UNIT_OF_MEASUREMENT)
132+
)
133+
data["sensors"][s_key] = s_value
134+
case _ as measurement if measurement in SWITCHES:
135+
sw_key = cast(SwitchType, measurement)
136+
data["switches"][sw_key] = value
137+
case _ as measurement if measurement in SPECIALS:
138+
sp_key = cast(SpecialType, measurement)
139+
data[sp_key] = value
140+
141+
116142
def escape_illegal_xml_characters(xmldata: str) -> str:
117143
"""Replace illegal &-characters."""
118144
return re.sub(r"&([^a-zA-Z#])", r"&\1", xmldata)
@@ -157,32 +183,6 @@ def get_vendor_name(module: etree, model_data: ModelData) -> ModelData:
157183
return model_data
158184

159185

160-
def match_on_true_cases(
161-
measurement: str,
162-
attrs: DATA | UOM,
163-
location: etree,
164-
data: DeviceData,
165-
) -> None:
166-
"""Helper-function for common match-case execution."""
167-
value = location.text in ("on", "true")
168-
match measurement:
169-
case _ as measurement if measurement in BINARY_SENSORS:
170-
bs_key = cast(BinarySensorType, measurement)
171-
data["binary_sensors"][bs_key] = value
172-
case _ as measurement if measurement in SENSORS:
173-
s_key = cast(SensorType, measurement)
174-
s_value = format_measure(
175-
location.text, getattr(attrs, ATTR_UNIT_OF_MEASUREMENT)
176-
)
177-
data["sensors"][s_key] = s_value
178-
case _ as measurement if measurement in SWITCHES:
179-
sw_key = cast(SwitchType, measurement)
180-
data["switches"][sw_key] = value
181-
case _ as measurement if measurement in SPECIALS:
182-
sp_key = cast(SpecialType, measurement)
183-
data[sp_key] = value
184-
185-
186186
def power_data_local_format(
187187
attrs: dict[str, str], key_string: str, val: str
188188
) -> float | int:

0 commit comments

Comments
 (0)