We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 7c3461d commit 34a6f4eCopy full SHA for 34a6f4e
deebot_client/capabilities.py
@@ -141,7 +141,7 @@ class CapabilityCleanAction:
141
"""Capabilities for clean action."""
142
143
command: Callable[[CleanAction], Command]
144
- area: Callable[[CleanMode, str, int], Command] | None = None
+ area: Callable[[CleanMode, list[int | float], int], Command] | None = None
145
146
147
@dataclass(frozen=True, kw_only=True)
deebot_client/commands/json/clean.py
@@ -58,10 +58,12 @@ def _get_args(self, action: CleanAction) -> dict[str, Any]:
58
class CleanArea(Clean):
59
"""Clean area command."""
60
61
- def __init__(self, mode: CleanMode, area: str, cleanings: int = 1) -> None:
+ def __init__(
62
+ self, mode: CleanMode, area: list[int | float], cleanings: int = 1
63
+ ) -> None:
64
self._additional_args = {
65
"type": mode.value,
- "content": area,
66
+ "content": ",".join(str(i) for i in area),
67
"count": cleanings,
68
}
69
super().__init__(CleanAction.START)
@@ -92,8 +94,11 @@ def _get_args(self, action: CleanAction) -> dict[str, Any]:
92
94
class CleanAreaV2(CleanV2):
93
95
96
- def __init__(self, mode: CleanMode, area: str, _: int = 1) -> None:
- 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
+ }
102
103
104
def _get_args(self, action: CleanAction) -> dict[str, Any]:
deebot_client/commands/xml/clean.py
@@ -49,14 +49,17 @@ class CleanArea(Clean):
49
def __init__(
50
self,
51
mode: CleanMode,
52
- area_or_coordinates: str,
+ area_or_coordinates: list[int | float],
53
cleanings: int = 1,
54
) -> None:
55
key = "mid" if mode == CleanMode.SPOT_AREA else "p"
56
super().__init__(
57
CleanAction.START,
mode=mode,
- additional_args={"deep": str(cleanings), key: area_or_coordinates},
+ additional_args={
+ "deep": str(cleanings),
+ key: ",".join(str(i) for i in area_or_coordinates),
+ },
)
tests/commands/json/test_clean.py
@@ -110,15 +110,15 @@ async def test_Clean_act(
110
("command", "args"),
111
[
112
(
113
- CleanArea(CleanMode.SPOT_AREA, "5,8"),
+ CleanArea(CleanMode.SPOT_AREA, [5, 8]),
114
{"act": "start", "type": "spotArea", "content": "5,8", "count": 1},
115
),
116
117
- CleanAreaV2(CleanMode.SPOT_AREA, "5,8"),
+ CleanAreaV2(CleanMode.SPOT_AREA, [5, 8]),
118
{"act": "start", "content": {"type": "spotArea", "value": "5,8"}},
119
120
121
- CleanArea(CleanMode.CUSTOM_AREA, "1580.0,-4087.0,3833.0,-7525.0"),
+ CleanArea(CleanMode.CUSTOM_AREA, [1580.0, -4087.0, 3833.0, -7525.0]),
122
{
123
"act": "start",
124
"type": "customArea",
@@ -127,7 +127,7 @@ async def test_Clean_act(
127
},
128
129
130
- CleanAreaV2(CleanMode.CUSTOM_AREA, "1580.0,-4087.0,3833.0,-7525.0"),
+ CleanAreaV2(CleanMode.CUSTOM_AREA, [1580.0, -4087.0, 3833.0, -7525.0]),
131
132
133
"content": {
tests/commands/xml/test_clean.py
@@ -32,8 +32,8 @@ async def test_Clean(command: Clean) -> None:
32
@pytest.mark.parametrize(
33
"command",
34
35
- CleanArea(CleanMode.SPOT_AREA, "4", 1),
36
+ CleanArea(CleanMode.SPOT_AREA, [4], 1),
37
],
38
39
async def test_CleanArea(command: CleanArea) -> None:
0 commit comments