syndesi 0.4.2__py3-none-any.whl → 0.5.0__py3-none-any.whl

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.
Files changed (57) hide show
  1. syndesi/__init__.py +22 -2
  2. syndesi/adapters/adapter.py +332 -489
  3. syndesi/adapters/adapter_worker.py +820 -0
  4. syndesi/adapters/auto.py +58 -25
  5. syndesi/adapters/descriptors.py +38 -0
  6. syndesi/adapters/ip.py +203 -71
  7. syndesi/adapters/serialport.py +154 -25
  8. syndesi/adapters/stop_conditions.py +354 -0
  9. syndesi/adapters/timeout.py +58 -21
  10. syndesi/adapters/visa.py +236 -11
  11. syndesi/cli/console.py +51 -16
  12. syndesi/cli/shell.py +95 -47
  13. syndesi/cli/terminal_tools.py +8 -8
  14. syndesi/component.py +315 -0
  15. syndesi/protocols/delimited.py +92 -107
  16. syndesi/protocols/modbus.py +2368 -868
  17. syndesi/protocols/protocol.py +186 -33
  18. syndesi/protocols/raw.py +45 -62
  19. syndesi/protocols/scpi.py +65 -102
  20. syndesi/remote/remote.py +188 -0
  21. syndesi/scripts/syndesi.py +12 -2
  22. syndesi/tools/errors.py +49 -31
  23. syndesi/tools/log_settings.py +21 -8
  24. syndesi/tools/{log.py → logmanager.py} +24 -13
  25. syndesi/tools/types.py +9 -7
  26. syndesi/version.py +5 -1
  27. {syndesi-0.4.2.dist-info → syndesi-0.5.0.dist-info}/METADATA +1 -1
  28. syndesi-0.5.0.dist-info/RECORD +41 -0
  29. syndesi/adapters/backend/__init__.py +0 -0
  30. syndesi/adapters/backend/adapter_backend.py +0 -438
  31. syndesi/adapters/backend/adapter_manager.py +0 -48
  32. syndesi/adapters/backend/adapter_session.py +0 -346
  33. syndesi/adapters/backend/backend.py +0 -438
  34. syndesi/adapters/backend/backend_status.py +0 -0
  35. syndesi/adapters/backend/backend_tools.py +0 -66
  36. syndesi/adapters/backend/descriptors.py +0 -153
  37. syndesi/adapters/backend/ip_backend.py +0 -149
  38. syndesi/adapters/backend/serialport_backend.py +0 -241
  39. syndesi/adapters/backend/stop_condition_backend.py +0 -219
  40. syndesi/adapters/backend/timed_queue.py +0 -39
  41. syndesi/adapters/backend/timeout.py +0 -252
  42. syndesi/adapters/backend/visa_backend.py +0 -197
  43. syndesi/adapters/ip_server.py +0 -102
  44. syndesi/adapters/stop_condition.py +0 -90
  45. syndesi/cli/backend_console.py +0 -96
  46. syndesi/cli/backend_status.py +0 -274
  47. syndesi/cli/backend_wrapper.py +0 -61
  48. syndesi/scripts/syndesi_backend.py +0 -37
  49. syndesi/tools/backend_api.py +0 -175
  50. syndesi/tools/backend_logger.py +0 -64
  51. syndesi/tools/exceptions.py +0 -16
  52. syndesi/tools/internal.py +0 -0
  53. syndesi-0.4.2.dist-info/RECORD +0 -60
  54. {syndesi-0.4.2.dist-info → syndesi-0.5.0.dist-info}/WHEEL +0 -0
  55. {syndesi-0.4.2.dist-info → syndesi-0.5.0.dist-info}/entry_points.txt +0 -0
  56. {syndesi-0.4.2.dist-info → syndesi-0.5.0.dist-info}/licenses/LICENSE +0 -0
  57. {syndesi-0.4.2.dist-info → syndesi-0.5.0.dist-info}/top_level.txt +0 -0
@@ -1,64 +0,0 @@
1
- # File : backend_logger.py
2
- # Author : Sébastien Deriaz
3
- # License : GPL
4
- #
5
- # This class starts a thread to grab log records from the backend and emit them here
6
- # in their respective loggers
7
-
8
- import logging
9
- import threading
10
- from multiprocessing.connection import Client
11
- from time import sleep
12
-
13
- from syndesi.adapters.backend.backend_tools import NamedConnection
14
- from syndesi.tools.errors import BackendCommunicationError
15
- from syndesi.tools.log_settings import LoggerAlias
16
-
17
- from .backend_api import BACKEND_PORT, Action, backend_request, default_host
18
-
19
-
20
- class BackendLogger(threading.Thread):
21
- def __init__(self) -> None:
22
- self._conn_description_lock = threading.Lock()
23
- self.conn_description = ""
24
- self._logger = logging.getLogger(LoggerAlias.BACKEND_LOGGER.value)
25
- self._logger.setLevel(logging.DEBUG)
26
- super().__init__(daemon=True)
27
-
28
- def run(self) -> None:
29
- conn = None
30
- loggers: dict[str, logging.Logger] = {}
31
- while True:
32
- if conn is None:
33
- try:
34
- conn = NamedConnection(Client((default_host, BACKEND_PORT)))
35
- except ConnectionRefusedError:
36
- conn = None
37
- sleep(0.1)
38
- continue
39
- else:
40
- with self._conn_description_lock:
41
- self.conn_description = conn.local()
42
- self._logger.info("Backend connected")
43
-
44
- try:
45
- backend_request(conn.conn, Action.SET_ROLE_LOGGER)
46
- except BackendCommunicationError:
47
- conn.conn.close()
48
- conn = None
49
- sleep(0.1)
50
- continue
51
-
52
- else:
53
- try:
54
- record: logging.LogRecord = conn.conn.recv()
55
- except (EOFError, OSError, Exception):
56
- self._logger.info("Backend disconnected")
57
- sleep(0.1)
58
- conn.conn.close()
59
- conn = None
60
- else:
61
- logger_name = record.name
62
- if logger_name not in loggers:
63
- loggers[logger_name] = logging.getLogger(logger_name)
64
- loggers[logger_name].handle(record)
@@ -1,16 +0,0 @@
1
- # File : exceptions
2
- # Author : Sébastien Deriaz
3
- # License : GPL
4
-
5
-
6
- class SyndesiException(Exception):
7
- def __init__(self, *args: object) -> None:
8
- """
9
- Syndesi base exception class
10
- """
11
- super().__init__(*args)
12
-
13
-
14
- class SyndesiTimeoutException(SyndesiException):
15
- def __init__(self, *args: object) -> None:
16
- super().__init__(*args)
syndesi/tools/internal.py DELETED
File without changes
@@ -1,60 +0,0 @@
1
- syndesi/__init__.py,sha256=FjPBCp-hgUfpzbl9vvNVybvP3Ml8toibnew9kZH2cQw,360
2
- syndesi/__main__.py,sha256=S9G9k0SHGJJ9qMdF_txtYryiPdEPTI10bgQ-M-rVITs,75
3
- syndesi/version.py,sha256=N7YMxKDsV6J_qHl8WtOeRrGxjN8_l6QQ1AFeNkv0fRE,68
4
- syndesi/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- syndesi/adapters/adapter.py,sha256=7f9vjz6zXj7F-TFS9N0sF7voPhNDXzIUmrlnIxfDQHY,21057
6
- syndesi/adapters/auto.py,sha256=SSNlo_EpjWJIqjpSyYPOYBKowVsd1TlaS8_-nng-Bp4,1592
7
- syndesi/adapters/ip.py,sha256=IGzp7h_yqyKjrIE9oDppof6cO7JYu3-sxHYT0vdXCyU,3393
8
- syndesi/adapters/ip_server.py,sha256=8o0cPRxAjnzTvwTCADy6MaNCDc5Uk0NDMXo0sZXoYCY,3773
9
- syndesi/adapters/serialport.py,sha256=GeMVfwqgpTL0mR0LfI--4M80EwSg4zvjj03FIGh-x9g,2362
10
- syndesi/adapters/stop_condition.py,sha256=QRxCAj6soDdALWUBbzT1pjNVHnPPEWygKT5BXitgrWU,2164
11
- syndesi/adapters/timeout.py,sha256=0uLZzLjVXddvq792o9SJ6v3QDQXM649_pISyEZJZ40A,2443
12
- syndesi/adapters/visa.py,sha256=dbszb9qFaPc3iiFh8KQV2bQK-QrwTcCUA36yPip4dkU,1406
13
- syndesi/adapters/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- syndesi/adapters/backend/adapter_backend.py,sha256=E69K25fHZtCWy201UQ1mLYQcyl99KJdNAspheY9r800,14321
15
- syndesi/adapters/backend/adapter_manager.py,sha256=8t_4D3WGtkvdF5RdnFiBJASD3_xny5eBxP8ZQI5BmgM,1938
16
- syndesi/adapters/backend/adapter_session.py,sha256=Bjm8Pc40lJo4KCiFi4S-HYI3bCpy4BI9h7T0vPmXALs,13999
17
- syndesi/adapters/backend/backend.py,sha256=yoEYW9wnkii8b6TkiQNz_iRLjB8kdhzZG3Ky1dcycxI,15862
18
- syndesi/adapters/backend/backend_status.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- syndesi/adapters/backend/backend_tools.py,sha256=cJKAdDh3cVCDGc1bQmKSuaR3kKWXiov8GU32RYCnJcg,1893
20
- syndesi/adapters/backend/descriptors.py,sha256=xDkdvVx2t0unxvzGIu8zH02q2QSKb5LBrX4MqtEUfxU,4300
21
- syndesi/adapters/backend/ip_backend.py,sha256=wiETW21eLOi-JlvZf3yw_SdBxCddV7H5ElMmuHYsjfk,5122
22
- syndesi/adapters/backend/serialport_backend.py,sha256=DRGgAZtKVIpcy6-AF_36Jj_IbxsyokVRo8K2CZNY17k,8479
23
- syndesi/adapters/backend/stop_condition_backend.py,sha256=nLOoEUEBep5ii8l2fKzVmc-xjLi06Eh9Pxkx9JPup3o,6988
24
- syndesi/adapters/backend/timed_queue.py,sha256=CwE3PklJqwwwbjyVvdEXIHXAIMwQSGPeBX3O_Kk4wH8,1163
25
- syndesi/adapters/backend/timeout.py,sha256=thWUajfgvasPLptf0n5TvWLEjp3F2k0s3EAbAICpdvU,10480
26
- syndesi/adapters/backend/visa_backend.py,sha256=mI6LWurPRye1esiPekoQT_MNpsmEknQ_AF6GueC8910,6352
27
- syndesi/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- syndesi/cli/backend_console.py,sha256=9INqGf2EtnuCxFYWZbNCJ3exrx6k04uCh6jno8sUQTw,2971
29
- syndesi/cli/backend_status.py,sha256=12-tIUTXq1fSQ2wphSHXGZ9u0F5UvXpc0FhGaEAjR6A,11653
30
- syndesi/cli/backend_wrapper.py,sha256=dbBZs0NaWh2OiV3eh_D6_njfkPj_vYGJsY_SSY7QaCI,1900
31
- syndesi/cli/console.py,sha256=yiJiZH2r5sZzRERVVfMrWI1yNvrkM16pkrqpT2s8LOg,8149
32
- syndesi/cli/shell.py,sha256=hZDNuO6TrarWhaCbLeyGiUCOhM2RTW9PUhSryCpRYRc,7147
33
- syndesi/cli/shell_tools.py,sha256=wqa0d5yELV1my_NhcLw00OXmYP8vKlrlkPqjLF2dCNs,3335
34
- syndesi/cli/terminal.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- syndesi/cli/terminal_apps.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- syndesi/cli/terminal_tools.py,sha256=VsqN-i7MM29Vo0gIUqFmgTyvMRBkcNuw6H3M4jJ4b4o,285
37
- syndesi/protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- syndesi/protocols/delimited.py,sha256=RIRjDs83cba8SrmlYPVqdiclYU1GLIjPMJXXTUh0c8M,6410
39
- syndesi/protocols/modbus.py,sha256=BjVJKhLbHVpkwUwX2XvTkHchiwBdRU7nsUOYmBXOxfE,52980
40
- syndesi/protocols/protocol.py,sha256=r4Hdc5UvR3oYsFW7NYiOYQBG-K0MPEJGHygK3jlp4pI,2263
41
- syndesi/protocols/raw.py,sha256=CxepjGEYaUQBbZ2L1URdg9LeC7ImyIrD51gqwfQrn-A,2754
42
- syndesi/protocols/scpi.py,sha256=DE1tWCVQ9rAAAfBv3MrxwSdG0TKJUjGLkOfVDU2zNLw,4798
43
- syndesi/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
- syndesi/scripts/syndesi.py,sha256=WYAmDh4WtXGiqyRcNebq8yt6sYnMHBbFMa5BPZC96mI,1371
45
- syndesi/scripts/syndesi_backend.py,sha256=wrJt-_ciuKumOgbcNTcpNGQj7XN_toJ_Mp_IjdA5TZA,914
46
- syndesi/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
- syndesi/tools/backend_api.py,sha256=43T-4t1b2dMh-9Pz4mtYfW4IubRzh_qLFgqun4J8vqg,5325
48
- syndesi/tools/backend_logger.py,sha256=aS15rWfQe4NWmAIvTp5Tf72MQoyWB4YeHA12lUKsjyE,2299
49
- syndesi/tools/errors.py,sha256=qr-7pdymqHcjlnx3n_2M6-lZJnXQe35mJzv9WYf4Z-I,1202
50
- syndesi/tools/exceptions.py,sha256=4zWJFMpNgVHMW91zFX-CafVhBFuP-P8h5tgvHlQMWw4,372
51
- syndesi/tools/internal.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- syndesi/tools/log.py,sha256=Z2uv56bXFNyboyfRBBIcTgJ9XjAr6Xur8He3cFkC2CI,4414
53
- syndesi/tools/log_settings.py,sha256=CEshxSpIZeVu1BUhy-l1Fel1PY_hxb5ywsYQs9UEUVQ,382
54
- syndesi/tools/types.py,sha256=fkPMLGTr30NFGNRPqZ3AeTAHMiiFmbFlSLDJEzQo6P4,1403
55
- syndesi-0.4.2.dist-info/licenses/LICENSE,sha256=7oldAMqsditrYeX4dzMFHpFZ-6AkyGi3bha2zeaJB0A,34492
56
- syndesi-0.4.2.dist-info/METADATA,sha256=37FRINk27uZcPQxaL0w8yriwFLsW8eDISao92gNnsX0,2827
57
- syndesi-0.4.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
58
- syndesi-0.4.2.dist-info/entry_points.txt,sha256=1JbZYMX6PrakEg-6b_M_f58QJ1mGFJKJd7puoPQPyKM,112
59
- syndesi-0.4.2.dist-info/top_level.txt,sha256=HrY36JU6hFYp_6qv-GuVBBtHYYemn8qhCrqpvXBd1Lg,8
60
- syndesi-0.4.2.dist-info/RECORD,,