python-roborock 3.13.0__tar.gz → 3.14.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_roborock-3.13.0 → python_roborock-3.14.0}/PKG-INFO +1 -1
- {python_roborock-3.13.0 → python_roborock-3.14.0}/pyproject.toml +1 -1
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/callbacks.py +9 -5
- python_roborock-3.14.0/roborock/devices/README.md +691 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/device.py +32 -8
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/device_manager.py +18 -3
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/local_channel.py +17 -16
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/mqtt_channel.py +4 -2
- python_roborock-3.14.0/roborock/devices/traits/b01/__init__.py +5 -0
- python_roborock-3.14.0/roborock/devices/traits/b01/q10/__init__.py +1 -0
- python_roborock-3.14.0/roborock/devices/traits/b01/q7/__init__.py +31 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/traits_mixin.py +2 -2
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/v1_channel.py +32 -29
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/protocols/b01_protocol.py +2 -2
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/roborock_typing.py +2 -2
- python_roborock-3.13.0/roborock/devices/README.md +0 -100
- python_roborock-3.13.0/roborock/devices/traits/b01/__init__.py +0 -30
- {python_roborock-3.13.0 → python_roborock-3.14.0}/.gitignore +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/LICENSE +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/README.md +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/api.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/broadcast_protocol.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/cli.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/cloud_api.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/command_cache.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/const.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/b01_q10/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/b01_q10/b01_q10_code_mappings.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/b01_q10/b01_q10_containers.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/b01_q7/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/b01_q7/b01_q7_code_mappings.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/b01_q7/b01_q7_containers.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/code_mappings.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/containers.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/dyad/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/dyad/dyad_code_mappings.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/dyad/dyad_containers.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/v1/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/v1/v1_clean_modes.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/v1/v1_code_mappings.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/v1/v1_containers.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/zeo/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/zeo/zeo_code_mappings.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/data/zeo/zeo_containers.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/device_features.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/a01_channel.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/b01_channel.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/cache.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/channel.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/file_cache.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/a01/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/child_lock.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/clean_summary.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/command.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/common.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/consumeable.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/device_features.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/do_not_disturb.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/dust_collection_mode.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/flow_led_status.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/home.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/led_status.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/map_content.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/maps.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/network_info.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/rooms.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/routines.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/smart_wash_params.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/status.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/valley_electricity_timer.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/volume.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/devices/traits/v1/wash_towel_mode.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/exceptions.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/map/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/map/map_parser.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/mqtt/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/mqtt/health_manager.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/mqtt/roborock_session.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/mqtt/session.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/protocol.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/protocols/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/protocols/a01_protocol.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/protocols/v1_protocol.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/py.typed +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/roborock_future.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/roborock_message.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/util.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/version_1_apis/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/version_1_apis/roborock_client_v1.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/version_1_apis/roborock_local_client_v1.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/version_1_apis/roborock_mqtt_client_v1.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/version_a01_apis/__init__.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/version_a01_apis/roborock_client_a01.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/version_a01_apis/roborock_mqtt_client_a01.py +0 -0
- {python_roborock-3.13.0 → python_roborock-3.14.0}/roborock/web_api.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-roborock
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.14.0
|
|
4
4
|
Summary: A package to control Roborock vacuums.
|
|
5
5
|
Project-URL: Repository, https://github.com/humbertogontijo/python-roborock
|
|
6
6
|
Project-URL: Documentation, https://python-roborock.readthedocs.io/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "python-roborock"
|
|
3
|
-
version = "3.
|
|
3
|
+
version = "3.14.0"
|
|
4
4
|
description = "A package to control Roborock vacuums."
|
|
5
5
|
authors = [{ name = "humbertogontijo", email = "humbertogontijo@users.noreply.github.com" }, {name="Lash-L"}, {name="allenporter"}]
|
|
6
6
|
requires-python = ">=3.11, <4"
|
|
@@ -10,7 +10,9 @@ K = TypeVar("K")
|
|
|
10
10
|
V = TypeVar("V")
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
def safe_callback(
|
|
13
|
+
def safe_callback(
|
|
14
|
+
callback: Callable[[V], None], logger: logging.Logger | logging.LoggerAdapter | None = None
|
|
15
|
+
) -> Callable[[V], None]:
|
|
14
16
|
"""Wrap a callback to catch and log exceptions.
|
|
15
17
|
|
|
16
18
|
This is useful for ensuring that errors in callbacks do not propagate
|
|
@@ -36,7 +38,7 @@ class CallbackMap(Generic[K, V]):
|
|
|
36
38
|
when a value is received for a specific key.
|
|
37
39
|
"""
|
|
38
40
|
|
|
39
|
-
def __init__(self, logger: logging.Logger | None = None) -> None:
|
|
41
|
+
def __init__(self, logger: logging.Logger | logging.LoggerAdapter | None = None) -> None:
|
|
40
42
|
self._callbacks: dict[K, list[Callable[[V], None]]] = {}
|
|
41
43
|
self._logger = logger or _LOGGER
|
|
42
44
|
|
|
@@ -79,7 +81,7 @@ class CallbackList(Generic[V]):
|
|
|
79
81
|
additional callbacks to the list at any time.
|
|
80
82
|
"""
|
|
81
83
|
|
|
82
|
-
def __init__(self, logger: logging.Logger | None = None) -> None:
|
|
84
|
+
def __init__(self, logger: logging.Logger | logging.LoggerAdapter | None = None) -> None:
|
|
83
85
|
self._callbacks: list[Callable[[V], None]] = []
|
|
84
86
|
self._logger = logger or _LOGGER
|
|
85
87
|
|
|
@@ -101,7 +103,9 @@ class CallbackList(Generic[V]):
|
|
|
101
103
|
|
|
102
104
|
|
|
103
105
|
def decoder_callback(
|
|
104
|
-
decoder: Callable[[K], list[V]],
|
|
106
|
+
decoder: Callable[[K], list[V]],
|
|
107
|
+
callback: Callable[[V], None],
|
|
108
|
+
logger: logging.Logger | logging.LoggerAdapter | None = None,
|
|
105
109
|
) -> Callable[[K], None]:
|
|
106
110
|
"""Create a callback that decodes messages using a decoder and invokes a callback.
|
|
107
111
|
|
|
@@ -120,7 +124,7 @@ def decoder_callback(
|
|
|
120
124
|
logger.warning("Failed to decode message: %s", data)
|
|
121
125
|
return
|
|
122
126
|
for message in messages:
|
|
123
|
-
|
|
127
|
+
logger.debug("Decoded message: %s", message)
|
|
124
128
|
safe_cb(message)
|
|
125
129
|
|
|
126
130
|
return wrapper
|