Browse Source

Split constants per device (#303)

Damian Sypniewski 4 weeks ago
parent
commit
94882d3f61

+ 1 - 1
switchbot/adv_parsers/lock.py

@@ -4,7 +4,7 @@ from __future__ import annotations
 
 import logging
 
-from ..const import LockStatus
+from ..const.lock import LockStatus
 
 _LOGGER = logging.getLogger(__name__)
 

+ 4 - 13
switchbot/const.py → switchbot/const/__init__.py

@@ -1,10 +1,11 @@
-"""Library to handle connection with Switchbot."""
+"""Switchbot Device Consts Library."""
 
 from __future__ import annotations
 
-from enum import Enum
+from ..enum import StrEnum
 
-from .enum import StrEnum
+# Preserve old LockStatus export for backwards compatibility
+from .lock import LockStatus as LockStatus
 
 DEFAULT_RETRY_COUNT = 3
 DEFAULT_RETRY_TIMEOUT = 1
@@ -61,13 +62,3 @@ class SwitchbotModel(StrEnum):
     RELAY_SWITCH_1PM = "Relay Switch 1PM"
     RELAY_SWITCH_1 = "Relay Switch 1"
     REMOTE = "WoRemote"
-
-
-class LockStatus(Enum):
-    LOCKED = 0
-    UNLOCKED = 1
-    LOCKING = 2
-    UNLOCKING = 3
-    LOCKING_STOP = 4  # LOCKING_BLOCKED
-    UNLOCKING_STOP = 5  # UNLOCKING_BLOCKED
-    NOT_FULLY_LOCKED = 6  # LATCH_LOCKED - Only EU lock type

+ 13 - 0
switchbot/const/lock.py

@@ -0,0 +1,13 @@
+from __future__ import annotations
+
+from enum import Enum
+
+
+class LockStatus(Enum):
+    LOCKED = 0
+    UNLOCKED = 1
+    LOCKING = 2
+    UNLOCKING = 3
+    LOCKING_STOP = 4  # LOCKING_BLOCKED
+    UNLOCKING_STOP = 5  # UNLOCKING_BLOCKED
+    NOT_FULLY_LOCKED = 6  # LATCH_LOCKED - Only EU lock type

+ 2 - 1
switchbot/devices/lock.py

@@ -8,7 +8,8 @@ from typing import Any
 
 from bleak.backends.device import BLEDevice
 
-from ..const import LockStatus, SwitchbotModel
+from ..const import SwitchbotModel
+from ..const.lock import LockStatus
 from .device import SwitchbotEncryptedDevice
 
 COMMAND_HEADER = "57"

+ 2 - 1
tests/test_adv_parser.py

@@ -5,8 +5,9 @@ from typing import Any
 from bleak.backends.device import BLEDevice
 from bleak.backends.scanner import AdvertisementData
 
-from switchbot import LockStatus, SwitchbotModel
+from switchbot import SwitchbotModel
 from switchbot.adv_parser import parse_advertisement_data
+from switchbot.const.lock import LockStatus
 from switchbot.models import SwitchBotAdvertisement
 
 ADVERTISEMENT_DATA_DEFAULTS = {