Skip to content

Commit 34a6f4e

Browse files
authored
Change are param of CleanArea to list of int or float (#1449)
1 parent 7c3461d commit 34a6f4e

File tree

5 files changed

+21
-13
lines changed

5 files changed

+21
-13
lines changed

deebot_client/capabilities.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ class CapabilityCleanAction:
141141
"""Capabilities for clean action."""
142142

143143
command: Callable[[CleanAction], Command]
144-
area: Callable[[CleanMode, str, int], Command] | None = None
144+
area: Callable[[CleanMode, list[int | float], int], Command] | None = None
145145

146146

147147
@dataclass(frozen=True, kw_only=True)

deebot_client/commands/json/clean.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,12 @@ def _get_args(self, action: CleanAction) -> dict[str, Any]:
5858
class CleanArea(Clean):
5959
"""Clean area command."""
6060

61-
def __init__(self, mode: CleanMode, area: str, cleanings: int = 1) -> None:
61+
def __init__(
62+
self, mode: CleanMode, area: list[int | float], cleanings: int = 1
63+
) -> None:
6264
self._additional_args = {
6365
"type": mode.value,
64-
"content": area,
66+
"content": ",".join(str(i) for i in area),
6567
"count": cleanings,
6668
}
6769
super().__init__(CleanAction.START)
@@ -92,8 +94,11 @@ def _get_args(self, action: CleanAction) -> dict[str, Any]:
9294
class CleanAreaV2(CleanV2):
9395
"""Clean area command."""
9496

95-
def __init__(self, mode: CleanMode, area: str, _: int = 1) -> None:
96-
self._additional_content = {"type": mode.value, "value": area}
97+
def __init__(self, mode: CleanMode, area: list[int | float], _: int = 1) -> None:
98+
self._additional_content = {
99+
"type": mode.value,
100+
"value": ",".join(str(i) for i in area),
101+
}
97102
super().__init__(CleanAction.START)
98103

99104
def _get_args(self, action: CleanAction) -> dict[str, Any]:

deebot_client/commands/xml/clean.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,17 @@ class CleanArea(Clean):
4949
def __init__(
5050
self,
5151
mode: CleanMode,
52-
area_or_coordinates: str,
52+
area_or_coordinates: list[int | float],
5353
cleanings: int = 1,
5454
) -> None:
5555
key = "mid" if mode == CleanMode.SPOT_AREA else "p"
5656
super().__init__(
5757
CleanAction.START,
5858
mode=mode,
59-
additional_args={"deep": str(cleanings), key: area_or_coordinates},
59+
additional_args={
60+
"deep": str(cleanings),
61+
key: ",".join(str(i) for i in area_or_coordinates),
62+
},
6063
)
6164

6265

tests/commands/json/test_clean.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,15 +110,15 @@ async def test_Clean_act(
110110
("command", "args"),
111111
[
112112
(
113-
CleanArea(CleanMode.SPOT_AREA, "5,8"),
113+
CleanArea(CleanMode.SPOT_AREA, [5, 8]),
114114
{"act": "start", "type": "spotArea", "content": "5,8", "count": 1},
115115
),
116116
(
117-
CleanAreaV2(CleanMode.SPOT_AREA, "5,8"),
117+
CleanAreaV2(CleanMode.SPOT_AREA, [5, 8]),
118118
{"act": "start", "content": {"type": "spotArea", "value": "5,8"}},
119119
),
120120
(
121-
CleanArea(CleanMode.CUSTOM_AREA, "1580.0,-4087.0,3833.0,-7525.0"),
121+
CleanArea(CleanMode.CUSTOM_AREA, [1580.0, -4087.0, 3833.0, -7525.0]),
122122
{
123123
"act": "start",
124124
"type": "customArea",
@@ -127,7 +127,7 @@ async def test_Clean_act(
127127
},
128128
),
129129
(
130-
CleanAreaV2(CleanMode.CUSTOM_AREA, "1580.0,-4087.0,3833.0,-7525.0"),
130+
CleanAreaV2(CleanMode.CUSTOM_AREA, [1580.0, -4087.0, 3833.0, -7525.0]),
131131
{
132132
"act": "start",
133133
"content": {

tests/commands/xml/test_clean.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ async def test_Clean(command: Clean) -> None:
3232
@pytest.mark.parametrize(
3333
"command",
3434
[
35-
CleanArea(CleanMode.SPOT_AREA, "4", 1),
36-
CleanArea(CleanMode.CUSTOM_AREA, "1580.0,-4087.0,3833.0,-7525.0"),
35+
CleanArea(CleanMode.SPOT_AREA, [4], 1),
36+
CleanArea(CleanMode.CUSTOM_AREA, [1580.0, -4087.0, 3833.0, -7525.0]),
3737
],
3838
)
3939
async def test_CleanArea(command: CleanArea) -> None:

0 commit comments

Comments
 (0)