conson-xp 1.45.0__tar.gz → 1.47.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.
Files changed (327) hide show
  1. {conson_xp-1.45.0 → conson_xp-1.47.0}/PKG-INFO +1 -1
  2. {conson_xp-1.45.0 → conson_xp-1.47.0}/pyproject.toml +12 -1
  3. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/__init__.py +3 -2
  4. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus.py +1 -1
  5. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py +33 -15
  6. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_autoreport_commands.py +8 -4
  7. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_blink_commands.py +20 -10
  8. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_config_commands.py +2 -1
  9. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_custom_commands.py +4 -2
  10. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_datapoint_commands.py +10 -5
  11. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_discover_commands.py +8 -4
  12. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_event_commands.py +8 -4
  13. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_export_commands.py +8 -4
  14. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_lightlevel_commands.py +16 -8
  15. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_linknumber_commands.py +8 -4
  16. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_modulenumber_commands.py +8 -4
  17. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_msactiontable_commands.py +78 -40
  18. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_output_commands.py +16 -8
  19. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_raw_commands.py +6 -3
  20. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_receive_commands.py +6 -3
  21. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_scan_commands.py +6 -3
  22. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/file_commands.py +6 -3
  23. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/homekit/homekit.py +4 -2
  24. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/homekit/homekit_start_commands.py +2 -1
  25. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/module_commands.py +8 -4
  26. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/reverse_proxy_commands.py +8 -4
  27. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/server/server_commands.py +6 -3
  28. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_blink_commands.py +4 -2
  29. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_checksum_commands.py +4 -2
  30. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_discover_commands.py +2 -1
  31. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_linknumber_commands.py +4 -2
  32. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_parse_commands.py +4 -2
  33. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_version_commands.py +2 -1
  34. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/term/term_commands.py +4 -2
  35. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/main.py +2 -1
  36. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/click_tree.py +6 -3
  37. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/datapoint_type_choice.py +4 -2
  38. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/decorators.py +42 -21
  39. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/error_handlers.py +16 -8
  40. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/formatters.py +22 -11
  41. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/module_type_choice.py +4 -2
  42. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/serial_number_type.py +4 -2
  43. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/system_function_choice.py +4 -2
  44. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/xp_module_type.py +4 -2
  45. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/actiontable/actiontable.py +8 -8
  46. conson_xp-1.47.0/src/xp/models/actiontable/actiontable_type.py +20 -0
  47. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/actiontable/msactiontable_xp20.py +8 -4
  48. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/actiontable/msactiontable_xp24.py +12 -6
  49. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/actiontable/msactiontable_xp33.py +20 -10
  50. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus.py +8 -4
  51. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_autoreport.py +4 -2
  52. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_blink.py +4 -2
  53. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_client_config.py +6 -3
  54. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_connection_status.py +4 -2
  55. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_custom.py +4 -2
  56. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_datapoint.py +4 -2
  57. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_discover.py +6 -3
  58. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_event_list.py +4 -2
  59. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_event_raw.py +4 -2
  60. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_export.py +2 -1
  61. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_lightlevel.py +4 -2
  62. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_linknumber.py +4 -2
  63. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_logger_config.py +8 -4
  64. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_output.py +4 -2
  65. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_raw.py +4 -2
  66. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_receive.py +4 -2
  67. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_writeconfig.py +4 -2
  68. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/config/conson_module_config.py +8 -4
  69. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/homekit/homekit_accessory.py +4 -2
  70. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/homekit/homekit_config.py +12 -6
  71. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/log_entry.py +16 -8
  72. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/protocol/conbus_protocol.py +36 -18
  73. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/response.py +12 -8
  74. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/action_type.py +4 -2
  75. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/datapoint_type.py +4 -2
  76. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/event_telegram.py +14 -7
  77. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/event_type.py +2 -1
  78. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/input_action_type.py +2 -1
  79. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/input_type.py +2 -1
  80. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/module_type.py +24 -12
  81. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/module_type_code.py +2 -1
  82. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/output_telegram.py +16 -10
  83. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/reply_telegram.py +24 -13
  84. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/system_function.py +6 -3
  85. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/system_telegram.py +10 -6
  86. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/telegram.py +2 -1
  87. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/telegram_type.py +2 -1
  88. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/timeparam_type.py +2 -1
  89. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/connection_state.py +4 -2
  90. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/module_state.py +2 -1
  91. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/protocol_keys_config.py +6 -3
  92. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/status_message.py +2 -1
  93. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/telegram_display.py +2 -1
  94. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/write_config_type.py +4 -2
  95. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/actiontable_serializer.py +34 -41
  96. conson_xp-1.47.0/src/xp/services/actiontable/download_state_machine.py +281 -0
  97. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/msactiontable_xp20_serializer.py +77 -49
  98. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/msactiontable_xp24_serializer.py +78 -53
  99. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/msactiontable_xp33_serializer.py +39 -9
  100. conson_xp-1.47.0/src/xp/services/actiontable/serializer_protocol.py +76 -0
  101. conson_xp-1.47.0/src/xp/services/conbus/actiontable/actiontable_download_service.py +379 -0
  102. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/actiontable/actiontable_list_service.py +17 -4
  103. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/actiontable/actiontable_show_service.py +10 -6
  104. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/actiontable/actiontable_upload_service.py +17 -9
  105. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_blink_all_service.py +16 -8
  106. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_blink_service.py +14 -7
  107. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_custom_service.py +16 -8
  108. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_datapoint_queryall_service.py +18 -9
  109. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_datapoint_service.py +18 -9
  110. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_discover_service.py +24 -13
  111. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_event_list_service.py +11 -7
  112. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_event_raw_service.py +18 -10
  113. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_export_service.py +28 -14
  114. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_output_service.py +18 -10
  115. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_raw_service.py +16 -8
  116. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_receive_service.py +18 -10
  117. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_scan_service.py +18 -10
  118. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/msactiontable/msactiontable_upload_service.py +17 -9
  119. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/write_config_service.py +18 -9
  120. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_cache_service.py +12 -6
  121. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_conbus_service.py +12 -6
  122. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_config_validator.py +34 -17
  123. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_conson_validator.py +18 -9
  124. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_dimminglight.py +14 -7
  125. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_dimminglight_service.py +14 -7
  126. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_hap_service.py +18 -9
  127. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_lightbulb.py +10 -5
  128. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_lightbulb_service.py +10 -5
  129. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_module_service.py +8 -4
  130. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_outlet.py +14 -7
  131. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_outlet_service.py +12 -6
  132. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_service.py +24 -12
  133. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/log_file_service.py +16 -8
  134. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/module_type_service.py +10 -5
  135. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/protocol/conbus_event_protocol.py +140 -21
  136. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/protocol/conbus_protocol.py +36 -19
  137. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/protocol/protocol_factory.py +12 -6
  138. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/protocol/telegram_protocol.py +12 -6
  139. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/reverse_proxy_service.py +26 -14
  140. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/base_server_service.py +42 -23
  141. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/client_buffer_manager.py +12 -7
  142. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/cp20_server_service.py +10 -7
  143. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/device_service_factory.py +12 -8
  144. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/server_service.py +18 -11
  145. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/xp130_server_service.py +11 -8
  146. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/xp20_server_service.py +16 -10
  147. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/xp230_server_service.py +10 -7
  148. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/xp24_server_service.py +22 -13
  149. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/xp33_server_service.py +44 -25
  150. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_blink_service.py +14 -8
  151. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_checksum_service.py +12 -7
  152. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_datapoint_service.py +14 -9
  153. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_discover_service.py +28 -15
  154. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_link_number_service.py +18 -10
  155. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_output_service.py +24 -12
  156. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_service.py +22 -11
  157. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_version_service.py +14 -8
  158. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/term/protocol_monitor_service.py +30 -16
  159. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/term/state_monitor_service.py +39 -21
  160. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/protocol.py +12 -6
  161. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/state.py +12 -7
  162. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/widgets/help_menu.py +6 -3
  163. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/widgets/modules_list.py +20 -10
  164. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/widgets/protocol_log.py +12 -6
  165. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/widgets/status_footer.py +10 -5
  166. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/checksum.py +6 -3
  167. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/dependencies.py +26 -31
  168. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/event_helper.py +6 -4
  169. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/logging.py +6 -3
  170. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/serialization.py +30 -16
  171. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/state_machine.py +16 -9
  172. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/time_utils.py +6 -3
  173. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/telegram_test_data.py +2 -1
  174. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_actiontable_integration.py +35 -26
  175. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_checksum_integration.py +4 -3
  176. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_conbus_blink_integration.py +6 -3
  177. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_conbus_datapoint_integration.py +18 -9
  178. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_conbus_raw_integration.py +28 -15
  179. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_conbus_receive_integration.py +4 -3
  180. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_homekit_config_integration.py +6 -3
  181. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_reverse_proxy_integration.py +4 -2
  182. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_system_reply_telegram_integration.py +2 -1
  183. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_xp20_action_table_integration.py +31 -28
  184. conson_xp-1.47.0/tests/integration/test_xp24_action_table_integration.py +215 -0
  185. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_conbus_actiontable_commands.py +33 -18
  186. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_conbus_blink_commands.py +1 -1
  187. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_conbus_msactiontable_upload_commands.py +8 -4
  188. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_formatters.py +2 -1
  189. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_encoding/test_latin1_edge_cases.py +2 -1
  190. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_reply_telegram.py +4 -3
  191. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_system_telegram.py +4 -3
  192. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_actiontable_download_service.py +39 -47
  193. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_actiontable_serializer.py +25 -20
  194. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_actiontable_service.py +30 -61
  195. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_actiontable_upload_service.py +5 -3
  196. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_base_server_service.py +2 -1
  197. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_checksum_service.py +4 -3
  198. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_client_buffer_manager.py +6 -3
  199. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_event_protocol.py +11 -2
  200. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_homekit_config_validator.py +13 -5
  201. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_homekit_services.py +15 -5
  202. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_log_file_service.py +4 -2
  203. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_msactiontable_upload_service.py +6 -6
  204. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_state_monitor_service.py +2 -1
  205. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_telegram_output_service.py +2 -1
  206. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_telegram_service.py +4 -3
  207. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp20_action_table_serializer.py +28 -22
  208. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp24_action_table_serializer.py +29 -11
  209. conson_xp-1.47.0/tests/unit/test_services/test_xp24_action_table_service.py +240 -0
  210. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp33_action_table_serializer.py +18 -16
  211. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/test_checksum.py +3 -3
  212. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/test_logging.py +2 -1
  213. conson_xp-1.45.0/src/xp/services/conbus/actiontable/actiontable_download_service.py +0 -525
  214. conson_xp-1.45.0/src/xp/services/conbus/msactiontable/msactiontable_download_service.py +0 -275
  215. conson_xp-1.45.0/src/xp/services/conbus/msactiontable/msactiontable_list_service.py +0 -100
  216. conson_xp-1.45.0/src/xp/services/conbus/msactiontable/msactiontable_show_service.py +0 -89
  217. conson_xp-1.45.0/tests/integration/test_xp24_action_table_integration.py +0 -287
  218. conson_xp-1.45.0/tests/unit/test_services/test_xp24_action_table_service.py +0 -353
  219. {conson_xp-1.45.0 → conson_xp-1.47.0}/LICENSE +0 -0
  220. {conson_xp-1.45.0 → conson_xp-1.47.0}/README.md +0 -0
  221. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/__init__.py +0 -0
  222. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/__main__.py +0 -0
  223. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/__init__.py +0 -0
  224. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/__init__.py +0 -0
  225. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/homekit/__init__.py +0 -0
  226. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/server/__init__.py +0 -0
  227. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/__init__.py +0 -0
  228. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram.py +0 -0
  229. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/term/__init__.py +0 -0
  230. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/term/term.py +0 -0
  231. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/__init__.py +0 -0
  232. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/__init__.py +0 -0
  233. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/actiontable/__init__.py +0 -0
  234. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/__init__.py +0 -0
  235. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/config/__init__.py +0 -0
  236. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/homekit/__init__.py +0 -0
  237. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/protocol/__init__.py +0 -0
  238. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/__init__.py +0 -0
  239. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/__init__.py +0 -0
  240. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/__init__.py +0 -0
  241. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/__init__.py +0 -0
  242. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/msactiontable_serializer.py +0 -0
  243. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/__init__.py +0 -0
  244. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/actiontable/__init__.py +0 -0
  245. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/msactiontable/__init__.py +0 -0
  246. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/__init__.py +0 -0
  247. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/protocol/__init__.py +0 -0
  248. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/__init__.py +0 -0
  249. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/__init__.py +0 -0
  250. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/term/__init__.py +0 -0
  251. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/__init__.py +0 -0
  252. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/protocol.tcss +0 -0
  253. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/state.tcss +0 -0
  254. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/widgets/__init__.py +0 -0
  255. {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/__init__.py +0 -0
  256. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/.coverage +0 -0
  257. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/__init__.py +0 -0
  258. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/conftest.py +0 -0
  259. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/.coverage +0 -0
  260. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/__init__.py +0 -0
  261. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_api/.coverage +0 -0
  262. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_api/__init__.py +0 -0
  263. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_blink_integration.py +0 -0
  264. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_discovery_integration.py +0 -0
  265. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_event_telegram_integration.py +0 -0
  266. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_link_number_integration.py +0 -0
  267. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_module_integration.py +0 -0
  268. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_output_integration.py +0 -0
  269. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_term_logging_integration.py +0 -0
  270. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_version_integration.py +0 -0
  271. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/__init__.py +0 -0
  272. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_api/__init__.py +0 -0
  273. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/__init__.py +0 -0
  274. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_click_tree.py +0 -0
  275. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_datapoint_type_choice.py +0 -0
  276. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_decorators.py +0 -0
  277. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_error_handlers.py +0 -0
  278. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_serial_number_type.py +0 -0
  279. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_system_function_choice.py +0 -0
  280. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_term_commands.py +0 -0
  281. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_encoding/__init__.py +0 -0
  282. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/__init__.py +0 -0
  283. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_conbus.py +0 -0
  284. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_conbus_client_send.py +0 -0
  285. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_conbus_discover.py +0 -0
  286. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_conbus_linknumber.py +0 -0
  287. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_event_telegram.py +0 -0
  288. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_log_entry.py +0 -0
  289. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_logger_config.py +0 -0
  290. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_module_type.py +0 -0
  291. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_system_telegram_enhancements.py +0 -0
  292. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_version_telegram.py +0 -0
  293. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_write_config_type.py +0 -0
  294. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_xp20_action_table.py +0 -0
  295. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_xp24_action_table.py +0 -0
  296. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_xp24_action_table_short_format.py +0 -0
  297. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_xp24_action_telegram.py +0 -0
  298. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/__init__.py +0 -0
  299. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_blink_service.py +0 -0
  300. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_blink_service.py +0 -0
  301. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_event_list_service.py +0 -0
  302. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_event_raw_service.py +0 -0
  303. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_output_service.py +0 -0
  304. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_raw_service.py +0 -0
  305. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_receive_service.py +0 -0
  306. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_reverse_proxy_service.py +0 -0
  307. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_scan_service.py +0 -0
  308. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_device_service_factory.py +0 -0
  309. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_discovery_service.py +0 -0
  310. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_homekit_cache_service.py +0 -0
  311. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_homekit_conson_service.py +0 -0
  312. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_module_type_service.py +0 -0
  313. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_protocol.py +0 -0
  314. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_protocol_monitor_service.py +0 -0
  315. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_server_service.py +0 -0
  316. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_telegram_input_service.py +0 -0
  317. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_telegram_protocol.py +0 -0
  318. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_version_service.py +0 -0
  319. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp24_action_service.py +0 -0
  320. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp33_short_format.py +0 -0
  321. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp_server_services.py +0 -0
  322. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_tui/__init__.py +0 -0
  323. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_tui/test_protocol_log.py +0 -0
  324. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/__init__.py +0 -0
  325. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/test_event_helper.py +0 -0
  326. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/test_serialization.py +0 -0
  327. {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/test_time_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: conson-xp
3
- Version: 1.45.0
3
+ Version: 1.47.0
4
4
  Summary: XP Protocol Communication Tools
5
5
  Author-Email: ldvchosal <ldvchosal@github.com>
6
6
  License: MIT License
@@ -23,7 +23,7 @@ dependencies = [
23
23
  ]
24
24
  requires-python = ">=3.11"
25
25
  readme = "README.md"
26
- version = "1.45.0"
26
+ version = "1.47.0"
27
27
 
28
28
  [project.license]
29
29
  file = "LICENSE"
@@ -59,6 +59,7 @@ dev = [
59
59
  "absolufy-imports>=0.3.1",
60
60
  "pytest-asyncio>=1.2.0",
61
61
  "types-docutils>=0.22.2.20251006",
62
+ "docformatter>=1.7.7",
62
63
  ]
63
64
 
64
65
  [tool.pytest.ini_options]
@@ -177,6 +178,7 @@ interrogate = "interrogate -vv src/"
177
178
  vulture = "vulture src/ tests/"
178
179
  refurb = "refurb src/ tests/"
179
180
  isort = "isort src/ tests/"
181
+ docformatter = "docformatter src/ tests/"
180
182
  bump-version = "pdm bump -v minor"
181
183
  env = "echo ${PATH}"
182
184
  install = "pdm install"
@@ -197,6 +199,7 @@ composite = [
197
199
  "clean",
198
200
  "lint",
199
201
  "format",
202
+ "docformatter",
200
203
  "typecheck",
201
204
  "flake8",
202
205
  "interrogate",
@@ -250,6 +253,14 @@ color = true
250
253
  generate-badge = "."
251
254
  badge-format = "svg"
252
255
 
256
+ [tool.docformatter]
257
+ recursive = true
258
+ wrap-summaries = 88
259
+ wrap-descriptions = 88
260
+ close-quotes-on-newline = true
261
+ pre-summary-newline = true
262
+ in-place = true
263
+
253
264
  [build-system]
254
265
  requires = [
255
266
  "pdm-backend",
@@ -1,9 +1,10 @@
1
- """XP CLI tool for remote console bus operations.
1
+ """
2
+ XP CLI tool for remote console bus operations.
2
3
 
3
4
  conson-xp package.
4
5
  """
5
6
 
6
- __version__ = "1.45.0"
7
+ __version__ = "1.47.0"
7
8
  __manufacturer__ = "salchichon"
8
9
  __model__ = "xp.cli"
9
10
  __serial__ = "2025.09.23.000"
@@ -19,7 +19,7 @@ def conbus() -> None:
19
19
  help_options_color="green",
20
20
  )
21
21
  def conbus_blink() -> None:
22
- """Perform Conbus client operations for sending blink telegrams to remote servers."""
22
+ """Sending blink telegrams to remote servers."""
23
23
  pass
24
24
 
25
25
 
@@ -14,6 +14,7 @@ from xp.cli.utils.decorators import (
14
14
  )
15
15
  from xp.cli.utils.serial_number_type import SERIAL
16
16
  from xp.models.actiontable.actiontable import ActionTable
17
+ from xp.models.actiontable.actiontable_type import ActionTableType
17
18
  from xp.models.config.conson_module_config import (
18
19
  ConsonModuleConfig,
19
20
  ConsonModuleListConfig,
@@ -43,7 +44,8 @@ class ActionTableError(Exception):
43
44
  @click.pass_context
44
45
  @connection_command()
45
46
  def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
46
- """Download action table from XP module.
47
+ """
48
+ Download action table from XP module.
47
49
 
48
50
  Args:
49
51
  ctx: Click context object.
@@ -54,7 +56,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
54
56
  )
55
57
 
56
58
  def on_progress(progress: str) -> None:
57
- """Handle progress updates during action table download.
59
+ """
60
+ Handle progress updates during action table download.
58
61
 
59
62
  Args:
60
63
  progress: Progress message string.
@@ -66,7 +69,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
66
69
  actiontable_dict: Dict[str, Any],
67
70
  actiontable_short: list[str],
68
71
  ) -> None:
69
- """Handle successful completion of action table download.
72
+ """
73
+ Handle successful completion of action table download.
70
74
 
71
75
  Args:
72
76
  _actiontable: a list of ActionTableEntries.
@@ -85,7 +89,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
85
89
  service.stop_reactor()
86
90
 
87
91
  def on_error(error: str) -> None:
88
- """Handle errors during action table download.
92
+ """
93
+ Handle errors during action table download.
89
94
 
90
95
  Args:
91
96
  error: Error message string.
@@ -98,7 +103,10 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
98
103
  service.on_finish.connect(on_finish)
99
104
  service.on_actiontable_received.connect(on_actiontable_received)
100
105
  service.on_error.connect(on_error)
101
- service.configure(serial_number=serial_number)
106
+ service.configure(
107
+ serial_number=serial_number,
108
+ actiontable_type=ActionTableType.ACTIONTABLE,
109
+ )
102
110
  service.start_reactor()
103
111
 
104
112
 
@@ -107,7 +115,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
107
115
  @click.pass_context
108
116
  @connection_command()
109
117
  def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
110
- """Upload action table from conson.yml to XP module.
118
+ """
119
+ Upload action table from conson.yml to XP module.
111
120
 
112
121
  Args:
113
122
  ctx: Click context object.
@@ -123,7 +132,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
123
132
  entries_count = 0
124
133
 
125
134
  def progress_callback(progress: str) -> None:
126
- """Handle progress updates during action table upload.
135
+ """
136
+ Handle progress updates during action table upload.
127
137
 
128
138
  Args:
129
139
  progress: Progress message string.
@@ -131,7 +141,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
131
141
  click.echo(progress, nl=False)
132
142
 
133
143
  def on_finish(success: bool) -> None:
134
- """Handle completion of action table upload.
144
+ """
145
+ Handle completion of action table upload.
135
146
 
136
147
  Args:
137
148
  success: True if upload succeeded.
@@ -143,7 +154,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
143
154
  service.stop_reactor()
144
155
 
145
156
  def on_error(error: str) -> None:
146
- """Handle errors during action table upload.
157
+ """
158
+ Handle errors during action table upload.
147
159
 
148
160
  Args:
149
161
  error: Error message string.
@@ -174,7 +186,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
174
186
  @conbus_actiontable.command("list", short_help="List modules with ActionTable")
175
187
  @click.pass_context
176
188
  def conbus_list_actiontable(ctx: Context) -> None:
177
- """List all modules with action table configurations from conson.yml.
189
+ """
190
+ List all modules with action table configurations from conson.yml.
178
191
 
179
192
  Args:
180
193
  ctx: Click context object.
@@ -184,7 +197,8 @@ def conbus_list_actiontable(ctx: Context) -> None:
184
197
  )
185
198
 
186
199
  def on_finish(module_list: dict) -> None:
187
- """Handle successful completion of action table list.
200
+ """
201
+ Handle successful completion of action table list.
188
202
 
189
203
  Args:
190
204
  module_list: Dictionary containing modules and total count.
@@ -192,7 +206,8 @@ def conbus_list_actiontable(ctx: Context) -> None:
192
206
  click.echo(json.dumps(module_list, indent=2, default=str))
193
207
 
194
208
  def on_error(error: str) -> None:
195
- """Handle errors during action table list.
209
+ """
210
+ Handle errors during action table list.
196
211
 
197
212
  Args:
198
213
  error: Error message string.
@@ -209,7 +224,8 @@ def conbus_list_actiontable(ctx: Context) -> None:
209
224
  @click.argument("serial_number", type=SERIAL)
210
225
  @click.pass_context
211
226
  def conbus_show_actiontable(ctx: Context, serial_number: str) -> None:
212
- """Show action table configuration for a specific module from conson.yml.
227
+ """
228
+ Show action table configuration for a specific module from conson.yml.
213
229
 
214
230
  Args:
215
231
  ctx: Click context object.
@@ -220,7 +236,8 @@ def conbus_show_actiontable(ctx: Context, serial_number: str) -> None:
220
236
  )
221
237
 
222
238
  def on_finish(module: ConsonModuleConfig) -> None:
223
- """Handle successful completion of action table show.
239
+ """
240
+ Handle successful completion of action table show.
224
241
 
225
242
  Args:
226
243
  module: Dictionary containing module configuration.
@@ -230,7 +247,8 @@ def conbus_show_actiontable(ctx: Context, serial_number: str) -> None:
230
247
  click.echo(json.dumps(module_data, indent=2, default=str))
231
248
 
232
249
  def error_callback(error: str) -> None:
233
- """Handle errors during action table show.
250
+ """
251
+ Handle errors during action table show.
234
252
 
235
253
  Args:
236
254
  error: Error message string.
@@ -23,7 +23,8 @@ from xp.services.telegram.telegram_datapoint_service import TelegramDatapointSer
23
23
  @connection_command()
24
24
  @click.pass_context
25
25
  def get_autoreport_command(ctx: Context, serial_number: str) -> None:
26
- r"""Get the current auto report status for a specific module.
26
+ r"""
27
+ Get the current auto report status for a specific module.
27
28
 
28
29
  Args:
29
30
  ctx: Click context object.
@@ -42,7 +43,8 @@ def get_autoreport_command(ctx: Context, serial_number: str) -> None:
42
43
  )
43
44
 
44
45
  def on_finish(service_response: ConbusDatapointResponse) -> None:
45
- """Handle successful completion of auto report status retrieval.
46
+ """
47
+ Handle successful completion of auto report status retrieval.
46
48
 
47
49
  Args:
48
50
  service_response: Auto report response object.
@@ -70,7 +72,8 @@ def get_autoreport_command(ctx: Context, serial_number: str) -> None:
70
72
  @connection_command()
71
73
  @click.pass_context
72
74
  def set_autoreport_command(ctx: Context, serial_number: str, status: str) -> None:
73
- r"""Set the auto report status for a specific module.
75
+ r"""
76
+ Set the auto report status for a specific module.
74
77
 
75
78
  Args:
76
79
  ctx: Click context object.
@@ -90,7 +93,8 @@ def set_autoreport_command(ctx: Context, serial_number: str, status: str) -> Non
90
93
  )
91
94
 
92
95
  def on_finish(response: "ConbusWriteConfigResponse") -> None:
93
- """Handle successful completion of light level on command.
96
+ """
97
+ Handle successful completion of light level on command.
94
98
 
95
99
  Args:
96
100
  response: Light level response object.
@@ -23,7 +23,8 @@ from xp.services.telegram.telegram_blink_service import BlinkError
23
23
  @connection_command()
24
24
  @handle_service_errors(BlinkError)
25
25
  def send_blink_on_telegram(ctx: Context, serial_number: str) -> None:
26
- r"""Send blink command to start blinking module LED.
26
+ r"""
27
+ Send blink command to start blinking module LED.
27
28
 
28
29
  Args:
29
30
  ctx: Click context object.
@@ -35,7 +36,8 @@ def send_blink_on_telegram(ctx: Context, serial_number: str) -> None:
35
36
  """
36
37
 
37
38
  def on_finish(service_response: ConbusBlinkResponse) -> None:
38
- """Handle successful completion of blink on command.
39
+ """
40
+ Handle successful completion of blink on command.
39
41
 
40
42
  Args:
41
43
  service_response: Blink response object.
@@ -58,7 +60,8 @@ def send_blink_on_telegram(ctx: Context, serial_number: str) -> None:
58
60
  @connection_command()
59
61
  @handle_service_errors(BlinkError)
60
62
  def send_blink_off_telegram(ctx: Context, serial_number: str) -> None:
61
- r"""Send blink command to stop blinking module LED.
63
+ r"""
64
+ Send blink command to stop blinking module LED.
62
65
 
63
66
  Args:
64
67
  ctx: Click context object.
@@ -70,7 +73,8 @@ def send_blink_off_telegram(ctx: Context, serial_number: str) -> None:
70
73
  """
71
74
 
72
75
  def on_finish(service_response: ConbusBlinkResponse) -> None:
73
- """Handle successful completion of blink off command.
76
+ """
77
+ Handle successful completion of blink off command.
74
78
 
75
79
  Args:
76
80
  service_response: Blink response object.
@@ -98,7 +102,8 @@ def conbus_blink_all() -> None:
98
102
  @connection_command()
99
103
  @handle_service_errors(BlinkError)
100
104
  def blink_all_off(ctx: Context) -> None:
101
- r"""Turn off blinking for all discovered devices.
105
+ r"""
106
+ Turn off blinking for all discovered devices.
102
107
 
103
108
  Args:
104
109
  ctx: Click context object.
@@ -109,7 +114,8 @@ def blink_all_off(ctx: Context) -> None:
109
114
  """
110
115
 
111
116
  def on_finish(discovered_devices: ConbusBlinkResponse) -> None:
112
- """Handle successful completion of blink all off command.
117
+ """
118
+ Handle successful completion of blink all off command.
113
119
 
114
120
  Args:
115
121
  discovered_devices: Blink response with all devices.
@@ -118,7 +124,8 @@ def blink_all_off(ctx: Context) -> None:
118
124
  service.stop_reactor()
119
125
 
120
126
  def progress(message: str) -> None:
121
- """Handle progress updates during blink all off operation.
127
+ """
128
+ Handle progress updates during blink all off operation.
122
129
 
123
130
  Args:
124
131
  message: Progress message string.
@@ -140,7 +147,8 @@ def blink_all_off(ctx: Context) -> None:
140
147
  @connection_command()
141
148
  @handle_service_errors(BlinkError)
142
149
  def blink_all_on(ctx: Context) -> None:
143
- r"""Turn on blinking for all discovered devices.
150
+ r"""
151
+ Turn on blinking for all discovered devices.
144
152
 
145
153
  Args:
146
154
  ctx: Click context object.
@@ -151,7 +159,8 @@ def blink_all_on(ctx: Context) -> None:
151
159
  """
152
160
 
153
161
  def on_finish(discovered_devices: ConbusBlinkResponse) -> None:
154
- """Handle successful completion of blink all on command.
162
+ """
163
+ Handle successful completion of blink all on command.
155
164
 
156
165
  Args:
157
166
  discovered_devices: Blink response with all devices.
@@ -160,7 +169,8 @@ def blink_all_on(ctx: Context) -> None:
160
169
  service.stop_reactor()
161
170
 
162
171
  def progress(message: str) -> None:
163
- """Handle progress updates during blink all on operation.
172
+ """
173
+ Handle progress updates during blink all on operation.
164
174
 
165
175
  Args:
166
176
  message: Progress message string.
@@ -14,7 +14,8 @@ from xp.models import ConbusClientConfig
14
14
  @click.pass_context
15
15
  @handle_service_errors(Exception)
16
16
  def show_config(ctx: Context) -> None:
17
- r"""Display current Conbus client configuration.
17
+ r"""
18
+ Display current Conbus client configuration.
18
19
 
19
20
  Args:
20
21
  ctx: Click context object.
@@ -23,7 +23,8 @@ from xp.services.conbus.conbus_custom_service import ConbusCustomService
23
23
  def send_custom_telegram(
24
24
  ctx: Context, serial_number: str, function_code: str, datapoint_code: str
25
25
  ) -> None:
26
- r"""Send custom telegram with specified function and data point codes.
26
+ r"""
27
+ Send custom telegram with specified function and data point codes.
27
28
 
28
29
  Args:
29
30
  ctx: Click context object.
@@ -41,7 +42,8 @@ def send_custom_telegram(
41
42
  )
42
43
 
43
44
  def on_finish(response: ConbusCustomResponse) -> None:
44
- """Handle successful completion of custom telegram.
45
+ """
46
+ Handle successful completion of custom telegram.
45
47
 
46
48
  Args:
47
49
  response: Custom response object.
@@ -30,7 +30,8 @@ from xp.services.conbus.conbus_datapoint_service import (
30
30
  @click.pass_context
31
31
  @connection_command()
32
32
  def query_datapoint(ctx: Context, serial_number: str, datapoint: DataPointType) -> None:
33
- r"""Query a specific datapoint from Conbus server.
33
+ r"""
34
+ Query a specific datapoint from Conbus server.
34
35
 
35
36
  Args:
36
37
  ctx: Click context object.
@@ -50,7 +51,8 @@ def query_datapoint(ctx: Context, serial_number: str, datapoint: DataPointType)
50
51
  )
51
52
 
52
53
  def on_finish(service_response: ConbusDatapointResponse) -> None:
53
- """Handle successful completion of datapoint query.
54
+ """
55
+ Handle successful completion of datapoint query.
54
56
 
55
57
  Args:
56
58
  service_response: Datapoint response object.
@@ -77,7 +79,8 @@ conbus_datapoint.add_command(query_datapoint)
77
79
  @click.pass_context
78
80
  @connection_command()
79
81
  def query_all_datapoints(ctx: Context, serial_number: str) -> None:
80
- r"""Query all datapoints from a specific module.
82
+ r"""
83
+ Query all datapoints from a specific module.
81
84
 
82
85
  Args:
83
86
  ctx: Click context object.
@@ -92,7 +95,8 @@ def query_all_datapoints(ctx: Context, serial_number: str) -> None:
92
95
  )
93
96
 
94
97
  def on_finish(service_response: ConbusDatapointResponse) -> None:
95
- """Handle successful completion of all datapoints query.
98
+ """
99
+ Handle successful completion of all datapoints query.
96
100
 
97
101
  Args:
98
102
  service_response: Datapoint response object with all datapoints.
@@ -101,7 +105,8 @@ def query_all_datapoints(ctx: Context, serial_number: str) -> None:
101
105
  service.stop_reactor()
102
106
 
103
107
  def on_progress(reply_telegram: ReplyTelegram) -> None:
104
- """Handle progress updates during all datapoints query.
108
+ """
109
+ Handle progress updates during all datapoints query.
105
110
 
106
111
  Args:
107
112
  reply_telegram: Reply telegram object with progress data.
@@ -19,7 +19,8 @@ from xp.services.conbus.conbus_discover_service import (
19
19
  @click.pass_context
20
20
  @connection_command()
21
21
  def send_discover_telegram(ctx: click.Context) -> None:
22
- r"""Send discover telegram to Conbus server.
22
+ r"""
23
+ Send discover telegram to Conbus server.
23
24
 
24
25
  Args:
25
26
  ctx: Click context object.
@@ -30,7 +31,8 @@ def send_discover_telegram(ctx: click.Context) -> None:
30
31
  """
31
32
 
32
33
  def on_finish(discovered_devices: ConbusDiscoverResponse) -> None:
33
- """Handle successful completion of device discovery.
34
+ """
35
+ Handle successful completion of device discovery.
34
36
 
35
37
  Args:
36
38
  discovered_devices: Discover response with all found devices.
@@ -39,7 +41,8 @@ def send_discover_telegram(ctx: click.Context) -> None:
39
41
  service.stop_reactor()
40
42
 
41
43
  def on_device_discovered(discovered_device: DiscoveredDevice) -> None:
42
- """Handle discovery of sa single module.
44
+ """
45
+ Handle discovery of sa single module.
43
46
 
44
47
  Args:
45
48
  discovered_device: Discover device.
@@ -47,7 +50,8 @@ def send_discover_telegram(ctx: click.Context) -> None:
47
50
  click.echo(json.dumps(discovered_device, indent=2))
48
51
 
49
52
  def progress(_serial_number: str) -> None:
50
- """Handle progress updates during device discovery.
53
+ """
54
+ Handle progress updates during device discovery.
51
55
 
52
56
  Args:
53
57
  _serial_number: Serial number of discovered device (unused).
@@ -15,7 +15,8 @@ from xp.services.conbus.conbus_event_raw_service import ConbusEventRawService
15
15
  @conbus_event.command("list")
16
16
  @click.pass_context
17
17
  def list_events(ctx: click.Context) -> None:
18
- r"""List configured event telegrams from module action tables.
18
+ r"""
19
+ List configured event telegrams from module action tables.
19
20
 
20
21
  Reads conson.yml configuration, parses action tables, and groups
21
22
  modules by their event keys to show which modules are assigned to
@@ -50,7 +51,8 @@ def send_event_raw(
50
51
  input_number: int,
51
52
  time_ms: int,
52
53
  ) -> None:
53
- r"""Send raw event telegrams to simulate button presses.
54
+ r"""
55
+ Send raw event telegrams to simulate button presses.
54
56
 
55
57
  Args:
56
58
  ctx: Click context object.
@@ -66,7 +68,8 @@ def send_event_raw(
66
68
  """
67
69
 
68
70
  def on_finish(response: ConbusEventRawResponse) -> None:
69
- """Handle successful completion of event raw operation.
71
+ """
72
+ Handle successful completion of event raw operation.
70
73
 
71
74
  Args:
72
75
  response: Event raw response with sent and received telegrams.
@@ -74,7 +77,8 @@ def send_event_raw(
74
77
  click.echo(json.dumps(response.to_dict(), indent=2))
75
78
 
76
79
  def on_progress(telegram: str) -> None:
77
- """Handle progress updates during event operation.
80
+ """
81
+ Handle progress updates during event operation.
78
82
 
79
83
  Args:
80
84
  telegram: Received telegram.
@@ -15,7 +15,8 @@ from xp.services.conbus.conbus_export_service import ConbusExportService
15
15
  @click.pass_context
16
16
  @connection_command()
17
17
  def export_conbus_config(ctx: click.Context) -> None:
18
- r"""Export Conbus device metadata to YAML file.
18
+ r"""
19
+ Export Conbus device metadata to YAML file.
19
20
 
20
21
  Discovers all devices on the Conbus network and queries their configuration
21
22
  datapoints to generate a complete export.yml file in conson.yml format.
@@ -31,7 +32,8 @@ def export_conbus_config(ctx: click.Context) -> None:
31
32
  """
32
33
 
33
34
  def on_progress(serial_number: str, current: int, total: int) -> None:
34
- """Handle progress updates during export.
35
+ """
36
+ Handle progress updates during export.
35
37
 
36
38
  Args:
37
39
  serial_number: Serial number of discovered device.
@@ -41,7 +43,8 @@ def export_conbus_config(ctx: click.Context) -> None:
41
43
  click.echo(f"Querying device {current}/{total}: {serial_number}...")
42
44
 
43
45
  def on_device_exported(module: ConsonModuleConfig) -> None:
44
- """Handle device export completion.
46
+ """
47
+ Handle device export completion.
45
48
 
46
49
  Args:
47
50
  module: Exported module configuration.
@@ -58,7 +61,8 @@ def export_conbus_config(ctx: click.Context) -> None:
58
61
  click.echo(f" ✓ Software version: {module.sw_version}")
59
62
 
60
63
  def on_finish(result: ConbusExportResponse) -> None:
61
- """Handle export completion.
64
+ """
65
+ Handle export completion.
62
66
 
63
67
  Args:
64
68
  result: Export result.
@@ -26,7 +26,8 @@ from xp.services.telegram.telegram_datapoint_service import TelegramDatapointSer
26
26
  def xp_lightlevel_set(
27
27
  ctx: click.Context, serial_number: str, output_number: int, level: int
28
28
  ) -> None:
29
- r"""Set light level for output_number on XP module serial_number.
29
+ r"""
30
+ Set light level for output_number on XP module serial_number.
30
31
 
31
32
  Args:
32
33
  ctx: Click context object.
@@ -44,7 +45,8 @@ def xp_lightlevel_set(
44
45
  )
45
46
 
46
47
  def on_finish(response: "ConbusWriteConfigResponse") -> None:
47
- """Handle successful completion of light level on command.
48
+ """
49
+ Handle successful completion of light level on command.
48
50
 
49
51
  Args:
50
52
  response: Light level response object.
@@ -73,7 +75,8 @@ def xp_lightlevel_set(
73
75
  def xp_lightlevel_off(
74
76
  ctx: click.Context, serial_number: str, output_number: int
75
77
  ) -> None:
76
- r"""Turn off light for output_number on XP module serial_number (set level to 0).
78
+ r"""
79
+ Turn off light for output_number on XP module serial_number (set level to 0).
77
80
 
78
81
  Args:
79
82
  ctx: Click context object.
@@ -90,7 +93,8 @@ def xp_lightlevel_off(
90
93
  )
91
94
 
92
95
  def on_finish(response: "ConbusWriteConfigResponse") -> None:
93
- """Handle successful completion of light level on command.
96
+ """
97
+ Handle successful completion of light level on command.
94
98
 
95
99
  Args:
96
100
  response: Light level response object.
@@ -120,7 +124,8 @@ def xp_lightlevel_off(
120
124
  def xp_lightlevel_on(
121
125
  ctx: click.Context, serial_number: str, output_number: int
122
126
  ) -> None:
123
- r"""Turn on light for output_number on XP module serial_number (set level to 80%).
127
+ r"""
128
+ Turn on light for output_number on XP module serial_number (set level to 80%).
124
129
 
125
130
  Args:
126
131
  ctx: Click context object.
@@ -137,7 +142,8 @@ def xp_lightlevel_on(
137
142
  )
138
143
 
139
144
  def on_finish(response: "ConbusWriteConfigResponse") -> None:
140
- """Handle successful completion of light level on command.
145
+ """
146
+ Handle successful completion of light level on command.
141
147
 
142
148
  Args:
143
149
  response: Light level response object.
@@ -167,7 +173,8 @@ def xp_lightlevel_on(
167
173
  def xp_lightlevel_get(
168
174
  ctx: click.Context, serial_number: str, output_number: int
169
175
  ) -> None:
170
- r"""Get current light level for output_number on XP module serial_number.
176
+ r"""
177
+ Get current light level for output_number on XP module serial_number.
171
178
 
172
179
  Args:
173
180
  ctx: Click context object.
@@ -188,7 +195,8 @@ def xp_lightlevel_get(
188
195
  )
189
196
 
190
197
  def on_finish(service_response: "ConbusDatapointResponse") -> None:
191
- """Handle successful completion of light level get command.
198
+ """
199
+ Handle successful completion of light level get command.
192
200
 
193
201
  Args:
194
202
  service_response: Light level response object.