conson-xp 1.24.0__py3-none-any.whl → 1.25.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: conson-xp
3
- Version: 1.24.0
3
+ Version: 1.25.0
4
4
  Summary: XP Protocol Communication Tools
5
5
  Author-Email: ldvchosal <ldvchosal@github.com>
6
6
  License: MIT License
@@ -1,8 +1,8 @@
1
- conson_xp-1.24.0.dist-info/METADATA,sha256=OIqtn9P69KMHIOn2EV8vgrHgUSQRQnFd1VGMFOU5sdE,10298
2
- conson_xp-1.24.0.dist-info/WHEEL,sha256=tsUv_t7BDeJeRHaSrczbGeuK-TtDpGsWi_JfpzD255I,90
3
- conson_xp-1.24.0.dist-info/entry_points.txt,sha256=1OcdIcDM1hz3ljCXgybaPUh1IOFEwkaTgLIW9u9zGeg,50
4
- conson_xp-1.24.0.dist-info/licenses/LICENSE,sha256=rxj6woMM-r3YCyGq_UHFtbh7kHTAJgrccH6O-33IDE4,1419
5
- xp/__init__.py,sha256=WnwD09XucegEUWyg8Au3w-_Cz33wTXvYu4cW_mzxpmE,181
1
+ conson_xp-1.25.0.dist-info/METADATA,sha256=SHMAjJSulwuqw_08c2vljlv4EeJ-Yk3O8l6rs5a_8Kk,10298
2
+ conson_xp-1.25.0.dist-info/WHEEL,sha256=tsUv_t7BDeJeRHaSrczbGeuK-TtDpGsWi_JfpzD255I,90
3
+ conson_xp-1.25.0.dist-info/entry_points.txt,sha256=1OcdIcDM1hz3ljCXgybaPUh1IOFEwkaTgLIW9u9zGeg,50
4
+ conson_xp-1.25.0.dist-info/licenses/LICENSE,sha256=rxj6woMM-r3YCyGq_UHFtbh7kHTAJgrccH6O-33IDE4,1419
5
+ xp/__init__.py,sha256=8oS2mib7fQyhvVyBRnvOzVSyN-c8IUOz8SSUi5u_gIM,181
6
6
  xp/cli/__init__.py,sha256=QjnKB1KaI2aIyKlzrnvCwfbBuUj8HNgwNMvNJVQofbI,81
7
7
  xp/cli/__main__.py,sha256=l2iKwMdat5rTGd3JWs-uGksnYYDDffp_Npz05QdKEeU,117
8
8
  xp/cli/commands/__init__.py,sha256=noh8fdZAWq-ihJEboP8WugbIgq4LJ3jUWMRA7720xWE,4909
@@ -153,7 +153,7 @@ xp/services/homekit/homekit_service.py,sha256=0lW-hg40ETco3gDBEYkR_sX-UIYsLSKCD4
153
153
  xp/services/log_file_service.py,sha256=fvPcZQj8XOKUA-4ep5R8n0PelvwvRlTLlVxvIWM5KR4,10506
154
154
  xp/services/module_type_service.py,sha256=xWhr1EAZMykL5uNWHWdpa5T8yNruGKH43XRTOS8GwZg,7477
155
155
  xp/services/protocol/__init__.py,sha256=qRufBmqRKGzpuzZ5bxBbmwf510TT00Ke8s5HcWGnqRY,818
156
- xp/services/protocol/conbus_event_protocol.py,sha256=h9ZdnN9CWSBXQqE-M9qmPPbMT3r25cxzXuJsvURp1WQ,14390
156
+ xp/services/protocol/conbus_event_protocol.py,sha256=7u_Gv7vM53Ikzo56D5Vua4y8_0vsl6nUjfRJmrzgUhk,14936
157
157
  xp/services/protocol/conbus_protocol.py,sha256=JO7yLkD_ohPT0ETjnAIx4CGpZyobf4LdbuozM_43btE,10276
158
158
  xp/services/protocol/protocol_factory.py,sha256=PmjN9AtW9sxNo3voqUiNgQA-pTvX1RW4XXFlHKfFr5Q,2470
159
159
  xp/services/protocol/telegram_protocol.py,sha256=Ki5DrXsKxiaqLcdP9WWUuhUI7cPu2DfwyZkh-Gv9Lb8,9496
@@ -183,7 +183,7 @@ xp/term/protocol.tcss,sha256=r_KfxrbpycGHLVXqZc6INBBcUJME0hLrAZkF1oqnab4,2126
183
183
  xp/term/protocol.yml,sha256=BI1dyWfYsINsJnbSR-z4fzFOsYcY27dS6it8eo7AVnU,2124
184
184
  xp/term/widgets/__init__.py,sha256=ftWmN_fmjxy2E8Qfm-YSRmzKfgL0KTBCTpgvYWCPbUY,274
185
185
  xp/term/widgets/help_menu.py,sha256=bdT5AYRdtKt_tvZTVbG7-DPMb1mj78kggtjjsa-95BA,1780
186
- xp/term/widgets/protocol_log.py,sha256=4wh6tpaaKiEUOQTqqpUml6b5WpV3YVmXlG-W8_UYuLA,11693
186
+ xp/term/widgets/protocol_log.py,sha256=X-2CBcfZ4LpWrUVLxxyYqd54lP10mg0t7oclKh3sLkI,11243
187
187
  xp/term/widgets/status_footer.py,sha256=eRZHkrG5aZCMulibX56KfFyGHS8IgL-7psvr9f9S6FI,1992
188
188
  xp/utils/__init__.py,sha256=_avMF_UOkfR3tNeDIPqQ5odmbq5raKkaq1rZ9Cn1CJs,332
189
189
  xp/utils/checksum.py,sha256=HDpiQxmdIedbCbZ4o_Box0i_Zig417BtCV_46ZyhiTk,1711
@@ -193,4 +193,4 @@ xp/utils/logging.py,sha256=rZDXwlBrYK8A6MPq5StsMNpgsRowzJXM6fvROPwJdGM,3750
193
193
  xp/utils/serialization.py,sha256=RWHHk86feaB4ZP7rjE4qOWK0900yg2joUBDkP76gfOY,4618
194
194
  xp/utils/state_machine.py,sha256=Oe2sLwCh9z_vr1tF6X0ZRGTeuckRQAGzmef7xc9CNdc,2413
195
195
  xp/utils/time_utils.py,sha256=dEyViDlAG9GWU-J3D_YVa-sGma6yiyyMTgN4h2x3PY4,3781
196
- conson_xp-1.24.0.dist-info/RECORD,,
196
+ conson_xp-1.25.0.dist-info/RECORD,,
xp/__init__.py CHANGED
@@ -3,7 +3,7 @@
3
3
  conson-xp package.
4
4
  """
5
5
 
6
- __version__ = "1.24.0"
6
+ __version__ = "1.25.0"
7
7
  __manufacturer__ = "salchichon"
8
8
  __model__ = "xp.cli"
9
9
  __serial__ = "2025.09.23.000"
@@ -325,10 +325,23 @@ class ConbusEventProtocol(protocol.Protocol, protocol.ClientFactory):
325
325
  self._reactor.stop()
326
326
 
327
327
  def connect(self) -> None:
328
- """Connect to TCP server."""
328
+ """Connect to TCP server.
329
+
330
+ Automatically detects and integrates with running asyncio event loop if present.
331
+ """
329
332
  self.logger.info(
330
333
  f"Connecting to TCP server {self.cli_config.ip}:{self.cli_config.port}"
331
334
  )
335
+
336
+ # Auto-detect and integrate with asyncio event loop if available
337
+ try:
338
+ event_loop = asyncio.get_running_loop()
339
+ self.logger.debug(f"Detected running event loop: {event_loop}")
340
+ self.set_event_loop(event_loop)
341
+ except RuntimeError:
342
+ # No running event loop - that's fine for non-async contexts
343
+ self.logger.debug("No running event loop detected - using reactor only")
344
+
332
345
  self._reactor.connectTCP(self.cli_config.ip, self.cli_config.port, self)
333
346
 
334
347
  def disconnect(self) -> None:
@@ -101,16 +101,7 @@ class ProtocolLogWidget(Widget):
101
101
  f"Connecting to {self.protocol.cli_config.ip}:{self.protocol.cli_config.port}..."
102
102
  )
103
103
 
104
- # Store protocol reference
105
- self.logger.info(f"Protocol object: {self.protocol}")
106
- self.logger.info(f"Reactor object: {self.protocol._reactor}")
107
- self.logger.info(f"Reactor running: {self.protocol._reactor.running}")
108
-
109
- # Get the currently running asyncio event loop (Textual's loop)
110
- event_loop = asyncio.get_running_loop()
111
- self.logger.info(f"Current running loop: {event_loop}")
112
- self.logger.info(f"Loop is running: {event_loop.is_running()}")
113
-
104
+ # Connect to server (auto-detects and integrates with asyncio event loop)
114
105
  self.protocol.connect()
115
106
 
116
107
  # Wait for connection to establish