robotcode-debugger 0.82.0__tar.gz → 0.82.2__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.
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/PKG-INFO +3 -3
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/pyproject.toml +2 -2
- robotcode_debugger-0.82.2/src/robotcode/debugger/__version__.py +1 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/debugger.py +10 -16
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/protocol.py +4 -6
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/run.py +1 -2
- robotcode_debugger-0.82.0/src/robotcode/debugger/__version__.py +0 -1
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/.gitignore +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/LICENSE.txt +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/README.md +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/__init__.py +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/cli.py +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/dap_types.py +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/hooks.py +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/launcher/__init__.py +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/launcher/cli.py +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/launcher/client.py +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/launcher/run.py +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/launcher/server.py +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/listeners.py +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/py.typed +0 -0
- {robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/server.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: robotcode-debugger
|
|
3
|
-
Version: 0.82.
|
|
3
|
+
Version: 0.82.2
|
|
4
4
|
Summary: RobotCode Debugger for Robot Framework
|
|
5
5
|
Project-URL: Homepage, https://robotcode.io
|
|
6
6
|
Project-URL: Donate, https://opencollective.com/robotcode
|
|
@@ -25,8 +25,8 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
|
25
25
|
Classifier: Topic :: Utilities
|
|
26
26
|
Classifier: Typing :: Typed
|
|
27
27
|
Requires-Python: >=3.8
|
|
28
|
-
Requires-Dist: robotcode-jsonrpc2==0.82.
|
|
29
|
-
Requires-Dist: robotcode-runner==0.82.
|
|
28
|
+
Requires-Dist: robotcode-jsonrpc2==0.82.2
|
|
29
|
+
Requires-Dist: robotcode-runner==0.82.2
|
|
30
30
|
Requires-Dist: robotframework>=4.1.0
|
|
31
31
|
Provides-Extra: debugpy
|
|
32
32
|
Requires-Dist: debugpy; extra == 'debugpy'
|
|
@@ -28,8 +28,8 @@ classifiers = [
|
|
|
28
28
|
dynamic = ["version"]
|
|
29
29
|
dependencies = [
|
|
30
30
|
"robotframework>=4.1.0",
|
|
31
|
-
"robotcode-jsonrpc2==0.82.
|
|
32
|
-
"robotcode-runner==0.82.
|
|
31
|
+
"robotcode-jsonrpc2==0.82.2",
|
|
32
|
+
"robotcode-runner==0.82.2",
|
|
33
33
|
]
|
|
34
34
|
|
|
35
35
|
[project.optional-dependencies]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.82.2"
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import asyncio
|
|
4
1
|
import itertools
|
|
5
2
|
import os
|
|
6
3
|
import pathlib
|
|
@@ -157,7 +154,7 @@ class InvalidThreadIdError(Exception):
|
|
|
157
154
|
class StackFrameEntry:
|
|
158
155
|
def __init__(
|
|
159
156
|
self,
|
|
160
|
-
parent: Optional[StackFrameEntry],
|
|
157
|
+
parent: Optional["StackFrameEntry"],
|
|
161
158
|
context: Any,
|
|
162
159
|
name: str,
|
|
163
160
|
type: str,
|
|
@@ -193,7 +190,7 @@ class StackFrameEntry:
|
|
|
193
190
|
def __repr__(self) -> str:
|
|
194
191
|
return f"StackFrameEntry({self.name!r}, {self.type!r}, {self.source!r}, {self.line!r}, {self.column!r})"
|
|
195
192
|
|
|
196
|
-
def get_first_or_self(self) -> StackFrameEntry:
|
|
193
|
+
def get_first_or_self(self) -> "StackFrameEntry":
|
|
197
194
|
if self.stack_frames:
|
|
198
195
|
return self.stack_frames[0]
|
|
199
196
|
return self
|
|
@@ -260,14 +257,14 @@ else:
|
|
|
260
257
|
|
|
261
258
|
|
|
262
259
|
class Debugger:
|
|
263
|
-
__instance: ClassVar[Optional[Debugger]] = None
|
|
260
|
+
__instance: ClassVar[Optional["Debugger"]] = None
|
|
264
261
|
__lock: ClassVar = threading.RLock()
|
|
265
262
|
__inside_instance: ClassVar = False
|
|
266
263
|
|
|
267
264
|
_logger = LoggingDescriptor()
|
|
268
265
|
|
|
269
266
|
@classmethod
|
|
270
|
-
def instance(cls) -> Debugger:
|
|
267
|
+
def instance(cls) -> "Debugger":
|
|
271
268
|
if cls.__instance is not None:
|
|
272
269
|
return cls.__instance
|
|
273
270
|
with cls.__lock:
|
|
@@ -318,7 +315,6 @@ class Debugger:
|
|
|
318
315
|
self.terminated = False
|
|
319
316
|
self.attached = False
|
|
320
317
|
self.path_mappings: List[PathMapping] = []
|
|
321
|
-
self.server_loop: Optional[asyncio.AbstractEventLoop] = None
|
|
322
318
|
|
|
323
319
|
self._keyword_to_evaluate: Optional[Callable[..., Any]] = None
|
|
324
320
|
self._evaluated_keyword_result: Any = None
|
|
@@ -917,14 +913,12 @@ class Debugger:
|
|
|
917
913
|
status = attributes.get("status", "")
|
|
918
914
|
|
|
919
915
|
if status == "FAIL":
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
)
|
|
927
|
-
|
|
916
|
+
self.process_end_state(
|
|
917
|
+
status,
|
|
918
|
+
{"failed_suite"},
|
|
919
|
+
"Suite failed.",
|
|
920
|
+
f"Suite failed{f': {v}' if (v := attributes.get('message')) else ''}",
|
|
921
|
+
)
|
|
928
922
|
self.wait_for_running()
|
|
929
923
|
|
|
930
924
|
source = attributes.get("source")
|
|
@@ -12,6 +12,7 @@ from typing import (
|
|
|
12
12
|
List,
|
|
13
13
|
Mapping,
|
|
14
14
|
Optional,
|
|
15
|
+
Set,
|
|
15
16
|
Tuple,
|
|
16
17
|
Type,
|
|
17
18
|
TypeVar,
|
|
@@ -81,6 +82,7 @@ class DebugAdapterProtocol(JsonRPCProtocolBase):
|
|
|
81
82
|
self._received_request_lock = threading.RLock()
|
|
82
83
|
self._received_request: OrderedDict[int, asyncio.Future[Any]] = OrderedDict()
|
|
83
84
|
self._initialized = False
|
|
85
|
+
self._running_handle_message_tasks: Set[asyncio.Future[Any]] = set()
|
|
84
86
|
|
|
85
87
|
@_logger.call
|
|
86
88
|
def send_message(self, message: ProtocolMessage) -> None:
|
|
@@ -140,14 +142,10 @@ class DebugAdapterProtocol(JsonRPCProtocolBase):
|
|
|
140
142
|
)
|
|
141
143
|
|
|
142
144
|
def _handle_messages(self, iterator: Iterator[ProtocolMessage]) -> None:
|
|
143
|
-
def done(f: "asyncio.Future[Any]") -> None:
|
|
144
|
-
ex = f.exception()
|
|
145
|
-
if ex is not None and not isinstance(ex, asyncio.CancelledError):
|
|
146
|
-
self._logger.exception(ex, exc_info=ex)
|
|
147
|
-
|
|
148
145
|
for m in iterator:
|
|
149
146
|
task = asyncio.create_task(self.handle_message(m), name="handle_message")
|
|
150
|
-
|
|
147
|
+
self._running_handle_message_tasks.add(task)
|
|
148
|
+
task.add_done_callback(self._running_handle_message_tasks.discard)
|
|
151
149
|
|
|
152
150
|
@_logger.call
|
|
153
151
|
async def handle_message(self, message: ProtocolMessage) -> None:
|
|
@@ -230,7 +230,6 @@ def run_debugger(
|
|
|
230
230
|
Debugger.instance().colored_output = app.colored
|
|
231
231
|
Debugger.instance().debug = debug
|
|
232
232
|
Debugger.instance().set_main_thread(threading.current_thread())
|
|
233
|
-
Debugger.instance().server_loop = server.loop
|
|
234
233
|
|
|
235
234
|
app.verbose("Start the debugger instance")
|
|
236
235
|
Debugger.instance().start()
|
|
@@ -267,7 +266,7 @@ def run_debugger(
|
|
|
267
266
|
server.protocol.terminate()
|
|
268
267
|
|
|
269
268
|
if not server.protocol.wait_for_disconnected():
|
|
270
|
-
app.
|
|
269
|
+
app.verbose("Timeout to get disconnected from client")
|
|
271
270
|
|
|
272
271
|
server.loop.stop()
|
|
273
272
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.82.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/launcher/__init__.py
RENAMED
|
File without changes
|
{robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/launcher/cli.py
RENAMED
|
File without changes
|
{robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/launcher/client.py
RENAMED
|
File without changes
|
{robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/launcher/run.py
RENAMED
|
File without changes
|
{robotcode_debugger-0.82.0 → robotcode_debugger-0.82.2}/src/robotcode/debugger/launcher/server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|