Skip to content

Commit 6fed632

Browse files
committed
fix: ruff lint — use orjson, rename loop var, restore except parens
- json → orjson per TID251 (banned import) - mower_trace: rename for-loop var to avoid PLW2901 reassignment - restore `except (TypeError, ValueError):` parens (ruff format had stripped them, breaking Python 3 syntax) - imports reorganised by ruff - ruff format applied to test_on_map_trace.py and the map __init__.py 8 unit tests for OnMapTrace still pass. Addresses CI 'Run prek checks' fail.
1 parent 5db2ba5 commit 6fed632

3 files changed

Lines changed: 22 additions & 14 deletions

File tree

deebot_client/messages/json/map/__init__.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,16 @@
22

33
from __future__ import annotations
44

5-
import json as _json
65
from typing import TYPE_CHECKING, Any
76

8-
from deebot_client.events.map import MajorMapEvent, MapInfoEvent, MapSetType, MapTraceEvent
7+
import orjson
8+
9+
from deebot_client.events.map import (
10+
MajorMapEvent,
11+
MapInfoEvent,
12+
MapSetType,
13+
MapTraceEvent,
14+
)
915
from deebot_client.logging_filter import get_logger
1016
from deebot_client.message import HandlingResult, HandlingState, MessageBodyDataDict
1117
from deebot_client.rs.util import decompress_base64_data
@@ -136,12 +142,10 @@ def _handle_body_data_dict(
136142
return HandlingResult.analyse()
137143

138144
try:
139-
decompressed = decompress_base64_data(info).decode("utf-8")
140-
groups = _json.loads(decompressed)
145+
decompressed = decompress_base64_data(info)
146+
groups = orjson.loads(decompressed)
141147
except Exception:
142-
_LOGGER.debug(
143-
"Could not decompress/parse onMapTrace info field"
144-
)
148+
_LOGGER.debug("Could not decompress/parse onMapTrace info field")
145149
return HandlingResult.analyse()
146150

147151
flat_points: list[str] = []

deebot_client/mower_trace.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ def add_data(self, raw: str) -> int:
3838
points (FIFO drop). Returns the number of points actually added.
3939
"""
4040
new_points: list[tuple[int, int]] = []
41-
for token in raw.split(";"):
42-
token = token.strip()
41+
for raw_token in raw.split(";"):
42+
token = raw_token.strip()
4343
if not token:
4444
continue
4545
try:

tests/messages/json/map/test_on_map_trace.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,19 +56,23 @@ def test_OnMapTrace_decompresses_and_flattens_groups() -> None:
5656
assert_message(
5757
OnMapTrace,
5858
_envelope(_SINGLE_GROUP, 28),
59-
(FirmwareEvent("1.15.13"), MapTraceEvent(start=1, total=1, data="100,200;150,250")),
59+
(
60+
FirmwareEvent("1.15.13"),
61+
MapTraceEvent(start=1, total=1, data="100,200;150,250"),
62+
),
6063
device_class="xmp9ds",
6164
)
6265

6366

6467
def test_OnMapTrace_concatenates_multiple_groups_and_segments() -> None:
65-
expected_trace = (
66-
"-11850,-28849;-11800,-28899;-12850,-23699;-12800,-23750;-7899,-39700;-7950,-39649"
67-
)
68+
expected_trace = "-11850,-28849;-11800,-28899;-12850,-23699;-12800,-23750;-7899,-39700;-7950,-39649"
6869
assert_message(
6970
OnMapTrace,
7071
_envelope(_MULTI_GROUP, 110),
71-
(FirmwareEvent("1.15.13"), MapTraceEvent(start=1, total=1, data=expected_trace)),
72+
(
73+
FirmwareEvent("1.15.13"),
74+
MapTraceEvent(start=1, total=1, data=expected_trace),
75+
),
7276
device_class="xmp9ds",
7377
)
7478

0 commit comments

Comments
 (0)