python-selve-new 2.5.6__tar.gz → 2.5.8__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_selve_new-2.5.6 → python_selve_new-2.5.8}/PKG-INFO +1 -1
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/python_selve_new.egg-info/PKG-INFO +1 -1
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/__init__.py +7 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/_version.py +3 -3
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/util/serial_transport.py +34 -1
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.github/FUNDING.yml +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.github/architect.chatmode.md +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.github/ask.chatmode.md +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.github/code.chatmode.md +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.github/debug.chatmode.md +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.github/workflows/python-publish.yml +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.github/workflows/tests.yml +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.gitignore +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.idea/.gitignore +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.idea/misc.xml +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.idea/modules.xml +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.idea/python-selve-new.iml +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/.idea/vcs.xml +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/CHANGELOG.md +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/LICENSE +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/README.md +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/coverage_xdist_example.txt +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/debug_response.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/debug_test.bat +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/direct_hardware_test.bat +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/direct_hardware_test.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/generate_coverage.bat +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/package.sh +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/pyproject.toml +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/python_selve_new.egg-info/SOURCES.txt +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/python_selve_new.egg-info/dependency_links.txt +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/python_selve_new.egg-info/requires.txt +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/python_selve_new.egg-info/top_level.txt +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/release.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/run_all_tests.bat +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/run_hardware_tests.bat +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/run_integration_tests.bat +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/run_mock_tests.bat +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/run_single_test.bat +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/run_tests.bat +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/__init__.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/command.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/device.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/event.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/firmware.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/group.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/iveo.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/param.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/senSim.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/sender.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/sensor.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/commands/service.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/device.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/gateway.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/group.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/iveo.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/senSim.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/sender.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/sensor.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/util/__init__.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/util/errors.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/selve/util/protocol.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/setup.cfg +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/setup.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/setup_and_test.bat +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/__init__.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/conftest.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/integration/README.md +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/integration/__init__.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/integration/conftest.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/integration/test_device_integration.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/integration/test_selve_gateway_integration.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/integration/test_selve_hardware.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/integration/test_selve_integration.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/test_import.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/test_replacement.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/__init__.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/mock_utils.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_command_coverage.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_commands.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_device.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_device_classes_coverage.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_device_commands_extended.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_gateway_configuration_issues.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_gateway_error_handling_fixed.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_group.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_group_commands.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_missing_components.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_mock_commands.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_mock_devices_and_groups.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_mock_sensors_and_senders.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_param_commands_extended.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_port_discovery.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_advanced_coverage.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_core_coverage.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_edge_cases.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_gateway.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_init_comprehensive.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_init_response_coverage.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_init_simple.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_main_class_extensive.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_sender_commands_extended.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_sensim_commands_extended.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_sensor_commands_extended.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_service_command_errors.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_service_commands.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_util.py +0 -0
- {python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_utility_coverage.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-selve-new
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.8
|
|
4
4
|
Summary: Python library for interfacing with selve devices using the USB-RF controller. Written completely new.
|
|
5
5
|
Home-page: https://github.com/Kannix2005/python-selve-new
|
|
6
6
|
Author: Stefan Altheimer
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-selve-new
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.8
|
|
4
4
|
Summary: Python library for interfacing with selve devices using the USB-RF controller. Written completely new.
|
|
5
5
|
Home-page: https://github.com/Kannix2005/python-selve-new
|
|
6
6
|
Author: Stefan Altheimer
|
|
@@ -778,6 +778,13 @@ class Selve:
|
|
|
778
778
|
# Rebuild transport for a clean connection (avoids stale StreamReader state
|
|
779
779
|
# left over from _probe_port, which explains why USB-replug was needed).
|
|
780
780
|
await self._teardown_transport()
|
|
781
|
+
# Flush any stale messages left in the receive queue from the probe phase
|
|
782
|
+
# (unsolicited gateway events or responses the cancelled dispatch task never
|
|
783
|
+
# consumed). If we don't do this, the dispatch loop matches those old
|
|
784
|
+
# messages against the new discover() command futures, resolving them with
|
|
785
|
+
# the wrong response object and causing silent discover failures.
|
|
786
|
+
self.rxQ = asyncio.Queue()
|
|
787
|
+
self._pending_futures.clear()
|
|
781
788
|
await self.setEvents(0,0,0,0,0)
|
|
782
789
|
rdy = await self.gatewayReady()
|
|
783
790
|
if rdy:
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '2.5.
|
|
22
|
-
__version_tuple__ = version_tuple = (2, 5,
|
|
21
|
+
__version__ = version = '2.5.8'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 5, 8)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g2562749e3'
|
|
@@ -5,6 +5,8 @@ from typing import Optional
|
|
|
5
5
|
import serialx
|
|
6
6
|
from serialx import Parity
|
|
7
7
|
|
|
8
|
+
_READLINE_TIMEOUT = 12.0 # seconds — gateway goes silent during RF motor ops
|
|
9
|
+
|
|
8
10
|
|
|
9
11
|
class SerialTransport:
|
|
10
12
|
"""Async serial transport using serialx (replaces pyserial + background thread)."""
|
|
@@ -36,6 +38,7 @@ class SerialTransport:
|
|
|
36
38
|
|
|
37
39
|
async def ensure_open(self) -> None:
|
|
38
40
|
if not self.is_open:
|
|
41
|
+
self._logger.info("Serial: opening %s", self._port)
|
|
39
42
|
self._reader, self._writer = await serialx.open_serial_connection(
|
|
40
43
|
url=self._port,
|
|
41
44
|
baudrate=self._baudrate,
|
|
@@ -46,8 +49,10 @@ class SerialTransport:
|
|
|
46
49
|
rtscts=False,
|
|
47
50
|
dsrdtr=False,
|
|
48
51
|
)
|
|
52
|
+
self._logger.info("Serial: %s opened, reader=%r writer=%r", self._port, self._reader, self._writer)
|
|
49
53
|
|
|
50
54
|
async def close(self) -> None:
|
|
55
|
+
self._logger.info("Serial: closing %s", self._port)
|
|
51
56
|
try:
|
|
52
57
|
if self._writer and not self._writer.is_closing():
|
|
53
58
|
self._writer.close()
|
|
@@ -56,34 +61,60 @@ class SerialTransport:
|
|
|
56
61
|
self._logger.debug("Serial close failed", exc_info=True)
|
|
57
62
|
self._reader = None
|
|
58
63
|
self._writer = None
|
|
64
|
+
self._logger.info("Serial: %s closed", self._port)
|
|
59
65
|
|
|
60
66
|
async def start_reader(self, rx_queue: asyncio.Queue) -> None:
|
|
61
67
|
"""Opens the serial port and starts the async reader task."""
|
|
62
68
|
await self.ensure_open()
|
|
63
69
|
self._rx_queue = rx_queue
|
|
64
70
|
if self._reader_task and not self._reader_task.done():
|
|
71
|
+
self._logger.info("Serial: reader task already running")
|
|
65
72
|
return
|
|
73
|
+
self._logger.info("Serial: starting reader task, reader=%r", self._reader)
|
|
66
74
|
self._reader_task = asyncio.create_task(
|
|
67
75
|
self._reader_loop(), name="selve-serial-reader"
|
|
68
76
|
)
|
|
69
77
|
|
|
70
78
|
async def stop_reader(self) -> None:
|
|
71
79
|
if self._reader_task:
|
|
80
|
+
self._logger.info("Serial: stopping reader task")
|
|
72
81
|
self._reader_task.cancel()
|
|
73
82
|
try:
|
|
74
83
|
await self._reader_task
|
|
75
84
|
except asyncio.CancelledError:
|
|
76
85
|
pass
|
|
77
86
|
self._reader_task = None
|
|
87
|
+
self._logger.info("Serial: reader task stopped")
|
|
78
88
|
|
|
79
89
|
async def _reader_loop(self) -> None:
|
|
90
|
+
self._logger.info("Serial: reader loop started, reader=%r at_eof=%s",
|
|
91
|
+
self._reader,
|
|
92
|
+
self._reader.at_eof() if self._reader else "N/A")
|
|
80
93
|
buffer = ""
|
|
94
|
+
iteration = 0
|
|
81
95
|
while True:
|
|
82
96
|
try:
|
|
83
97
|
if self._reader is None:
|
|
98
|
+
self._logger.warning("Serial: reader is None in loop, reopening")
|
|
84
99
|
await self.ensure_open()
|
|
85
|
-
|
|
100
|
+
self._logger.debug("Serial: awaiting readline (iter=%d, buf=%r)", iteration, buffer)
|
|
101
|
+
line_bytes = await asyncio.wait_for(
|
|
102
|
+
self._reader.readline(), timeout=_READLINE_TIMEOUT
|
|
103
|
+
)
|
|
104
|
+
self._logger.debug("Serial: readline returned %d bytes (iter=%d)", len(line_bytes), iteration)
|
|
105
|
+
iteration += 1
|
|
106
|
+
except asyncio.TimeoutError:
|
|
107
|
+
self._logger.warning(
|
|
108
|
+
"Serial: readline timeout after %.0fs (iter=%d, buf=%r) — reconnecting",
|
|
109
|
+
_READLINE_TIMEOUT, iteration, buffer,
|
|
110
|
+
)
|
|
111
|
+
buffer = ""
|
|
112
|
+
await self.close()
|
|
113
|
+
await asyncio.sleep(1.0)
|
|
114
|
+
await self.ensure_open()
|
|
115
|
+
continue
|
|
86
116
|
except asyncio.CancelledError:
|
|
117
|
+
self._logger.info("Serial: reader loop cancelled")
|
|
87
118
|
break
|
|
88
119
|
except (OSError, EOFError) as exc:
|
|
89
120
|
self._logger.error("Serial read error: %s", exc)
|
|
@@ -95,6 +126,8 @@ class SerialTransport:
|
|
|
95
126
|
continue
|
|
96
127
|
|
|
97
128
|
if not line_bytes:
|
|
129
|
+
self._logger.debug("Serial: readline returned empty bytes (EOF?), reader.at_eof=%s",
|
|
130
|
+
self._reader.at_eof() if self._reader else "N/A")
|
|
98
131
|
await asyncio.sleep(0.01)
|
|
99
132
|
continue
|
|
100
133
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/.idea/inspectionProfiles/profiles_settings.xml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/python_selve_new.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/integration/test_device_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/integration/test_selve_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_device_classes_coverage.py
RENAMED
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_device_commands_extended.py
RENAMED
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_gateway_configuration_issues.py
RENAMED
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_gateway_error_handling_fixed.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_mock_devices_and_groups.py
RENAMED
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_mock_sensors_and_senders.py
RENAMED
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_param_commands_extended.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_advanced_coverage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_init_comprehensive.py
RENAMED
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_init_response_coverage.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_selve_main_class_extensive.py
RENAMED
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_sender_commands_extended.py
RENAMED
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_sensim_commands_extended.py
RENAMED
|
File without changes
|
{python_selve_new-2.5.6 → python_selve_new-2.5.8}/tests/unit/test_sensor_commands_extended.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|