robotcode-debugger 2.8.0.dev677__tar.gz → 2.9.0.dev51__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 (24) hide show
  1. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/PKG-INFO +3 -3
  2. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/pyproject.toml +2 -2
  3. robotcode_debugger-2.9.0.dev51/src/robotcode/debugger/__version__.py +1 -0
  4. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/cli.py +6 -0
  5. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/run.py +26 -1
  6. robotcode_debugger-2.8.0.dev677/src/robotcode/debugger/__version__.py +0 -1
  7. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/.gitignore +0 -0
  8. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/README.md +0 -0
  9. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/__init__.py +0 -0
  10. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/dap_types.py +0 -0
  11. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/debugger.py +0 -0
  12. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/default_capabilities.py +0 -0
  13. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/hooks.py +0 -0
  14. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/id_manager.py +0 -0
  15. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/launcher/__init__.py +0 -0
  16. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/launcher/cli.py +0 -0
  17. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/launcher/client.py +0 -0
  18. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/launcher/run.py +0 -0
  19. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/launcher/server.py +0 -0
  20. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/listeners.py +0 -0
  21. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/mixins.py +0 -0
  22. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/protocol.py +0 -0
  23. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/py.typed +0 -0
  24. {robotcode_debugger-2.8.0.dev677 → robotcode_debugger-2.9.0.dev51}/src/robotcode/debugger/server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: robotcode-debugger
3
- Version: 2.8.0-dev.677
3
+ Version: 2.9.0-dev.51
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
@@ -26,8 +26,8 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
26
26
  Classifier: Topic :: Utilities
27
27
  Classifier: Typing :: Typed
28
28
  Requires-Python: >=3.10
29
- Requires-Dist: robotcode-jsonrpc2==2.8.0-dev.677
30
- Requires-Dist: robotcode-runner==2.8.0-dev.677
29
+ Requires-Dist: robotcode-jsonrpc2==2.9.0-dev.51
30
+ Requires-Dist: robotcode-runner==2.9.0-dev.51
31
31
  Requires-Dist: robotframework>=5.0.0
32
32
  Provides-Extra: debugpy
33
33
  Requires-Dist: debugpy; extra == 'debugpy'
@@ -30,8 +30,8 @@ classifiers = [
30
30
  dynamic = ["version"]
31
31
  dependencies = [
32
32
  "robotframework>=5.0.0",
33
- "robotcode-jsonrpc2==2.8.0-dev.677",
34
- "robotcode-runner==2.8.0-dev.677",
33
+ "robotcode-jsonrpc2==2.9.0-dev.51",
34
+ "robotcode-runner==2.9.0-dev.51",
35
35
  ]
36
36
 
37
37
  [project.optional-dependencies]
@@ -0,0 +1 @@
1
+ __version__ = "2.9.0-dev.51"
@@ -145,8 +145,14 @@ def debug(
145
145
  robot_options_and_args: Tuple[str, ...],
146
146
  ) -> None:
147
147
  """Starts a Robot Framework debug session and waits for incomming connections."""
148
+ from robotcode.runner.cli.robot import load_robot_profile
149
+
148
150
  from .run import run_debugger
149
151
 
152
+ # Before the debug server starts, so that it runs under the `wrapper` too; an error
153
+ # of the configuration shows when `robot` runs in the debug session.
154
+ load_robot_profile(app, robot_options_and_args)
155
+
150
156
  mode, port, bind, pipe_name = resolve_server_options(
151
157
  ctx,
152
158
  app,
@@ -5,7 +5,9 @@ import threading
5
5
  import time
6
6
  from concurrent.futures import CancelledError
7
7
  from typing import (
8
+ IO,
8
9
  TYPE_CHECKING,
10
+ Any,
9
11
  Callable,
10
12
  List,
11
13
  Optional,
@@ -25,7 +27,7 @@ from robotcode.core.utils.debugpy import (
25
27
  )
26
28
  from robotcode.core.utils.logging import LoggingDescriptor
27
29
  from robotcode.core.utils.net import find_free_port
28
- from robotcode.plugin import Application
30
+ from robotcode.plugin import Application, UnknownError, show_error
29
31
 
30
32
  from .dap_types import Event
31
33
  from .debugger import Debugger
@@ -166,6 +168,19 @@ def _run_robot(ctx: click.Context, app: Application, args: List[str]) -> int:
166
168
  return 0
167
169
 
168
170
 
171
+ class _ShownError(click.ClickException):
172
+ """An error that `run_debugger` showed before the debug session ended. It keeps the
173
+ error's exit code and shows nothing, so the command shows the error only once."""
174
+
175
+ def __init__(self, error: click.ClickException) -> None:
176
+ super().__init__(error.message)
177
+ # click declares the exit code on the class; this one is the code of the error shown
178
+ self.exit_code = error.exit_code # type: ignore[misc]
179
+
180
+ def show(self, file: Optional[IO[Any]] = None) -> None:
181
+ pass
182
+
183
+
169
184
  @_logger.call
170
185
  def run_debugger(
171
186
  ctx: click.Context,
@@ -256,6 +271,16 @@ def run_debugger(
256
271
  exit_code = 0
257
272
  try:
258
273
  exit_code = _run_robot(ctx, app, args)
274
+ except CancelledError:
275
+ raise
276
+ except Exception as e:
277
+ # An error that stops the run, such as one of the configuration: shown
278
+ # while the session lasts, since the debug launcher forwards the output of
279
+ # the run to VS Code's Debug Console only until then. An error that is not
280
+ # robotcode's own is shown as `debug` shows it.
281
+ error = e if isinstance(e, click.ClickException) else UnknownError(str(e))
282
+ show_error(app, error)
283
+ raise _ShownError(error) from e
259
284
  finally:
260
285
  if server.protocol.connected:
261
286
  server.protocol.send_event(
@@ -1 +0,0 @@
1
- __version__ = "2.8.0-dev.677"