def apply_measure_conversion_rule(rules_json: dict[str, Any], rule: MeasureConversionRule) -> tuple[
dict[str, Any], int]:
"""
Возвращает копию rules_json с заменой единиц давления и число заменённых сигналов.
Замена строго по полному совпадению OriginUnit с исходной единицей давления
(kgf/cm^2 <-> MPa). Остальные единицы (cSt, m^3/h, rpm и т.д.) не затрагиваются.
"""
source_unit, target_unit = _resolve_unit_mapping(rule)
result = copy.deepcopy(rules_json)
for signal in result.get("Signals", []):
origin_unit = signal.get("OriginUnit")
if origin_unit == source_unit:
signal["OriginUnit"] = target_unit
return result
Expected type 'tuple[dict[str, Any], int]', got 'dict[str, Any]' instead