Skip to content

Commit 9f51bc4

Browse files
authored
Deprecate roborock specific miio.Vacuum (#1191)
* Fix module path for mirobo script * Deprecate Vacuum in favor of RoborockVacuum for roborock vacuums * Add miio.vacuum to maintain backwards compat, add deprecation warning
1 parent cb8ea87 commit 9f51bc4

8 files changed

Lines changed: 91 additions & 62 deletions

File tree

miio/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
from miio.integrations.petwaterdispenser import PetWaterDispenser
4444
from miio.integrations.vacuum.dreame.dreamevacuum_miot import DreameVacuumMiot
4545
from miio.integrations.vacuum.mijia import G1Vacuum
46-
from miio.integrations.vacuum.roborock import Vacuum, VacuumException
46+
from miio.integrations.vacuum.roborock import RoborockVacuum, Vacuum, VacuumException
4747
from miio.integrations.vacuum.roborock.vacuumcontainers import (
4848
CleaningDetails,
4949
CleaningSummary,
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# flake8: noqa
2-
from .vacuum import Vacuum, VacuumException, VacuumStatus
2+
from .vacuum import RoborockVacuum, Vacuum, VacuumException, VacuumStatus

miio/integrations/vacuum/roborock/tests/test_vacuum.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44

55
import pytest
66

7-
from miio import Vacuum, VacuumStatus
7+
from miio import RoborockVacuum, Vacuum, VacuumStatus
88
from miio.tests.dummies import DummyDevice
99

1010
from ..vacuum import CarpetCleaningMode, MopMode
1111

1212

13-
class DummyVacuum(DummyDevice, Vacuum):
13+
class DummyVacuum(DummyDevice, RoborockVacuum):
1414
STATE_CHARGING = 8
1515
STATE_CLEANING = 5
1616
STATE_ZONED_CLEAN = 9
@@ -311,3 +311,11 @@ def test_mop_mode(self):
311311

312312
with patch.object(self.device, "send", return_value=[32453]):
313313
assert self.device.mop_mode() is None
314+
315+
316+
def test_deprecated_vacuum(caplog):
317+
with pytest.deprecated_call():
318+
Vacuum("127.1.1.1", "68ffffffffffffffffffffffffffffff")
319+
320+
with pytest.deprecated_call():
321+
from miio.vacuum import ROCKROBO_S6 # noqa: F401

miio/integrations/vacuum/roborock/vacuum.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
)
2323
from miio.device import Device, DeviceInfo
2424
from miio.exceptions import DeviceException, DeviceInfoUnavailableException
25+
from miio.utils import deprecated
2526

2627
from .vacuumcontainers import (
2728
CarpetModeStatus,
@@ -146,8 +147,8 @@ class CarpetCleaningMode(enum.Enum):
146147
]
147148

148149

149-
class Vacuum(Device):
150-
"""Main class representing the vacuum."""
150+
class RoborockVacuum(Device):
151+
"""Main class for roborock vacuums (roborock.vacuum.*)."""
151152

152153
_supported_models = SUPPORTED_MODELS
153154

@@ -892,3 +893,13 @@ def cleanup(vac: Vacuum, *args, **kwargs):
892893
json.dump(seqs, f)
893894

894895
return dg
896+
897+
898+
class Vacuum(RoborockVacuum):
899+
"""Main class for roborock vacuums."""
900+
901+
@deprecated(
902+
"This class will become the base class for all vacuum implementations. Use RoborockVacuum to control roborock vacuums."
903+
)
904+
def __init__(self, *args, **kwargs):
905+
super().__init__(*args, **kwargs)

0 commit comments

Comments
 (0)