Debugger support to copyToGlobals
#
Summary#
This JEP introduces a new field to the kernel debugger_info response. This new
field will inform the UI that the debugger supports the copyToGlobals
request.
Motivation#
The copyToGlobals
request has been introduced in
ipykernel and in
xeus-python to copy a local
variable to the global scope during a breakpoint. It would be useful to inform the
UI if this is supported by the kernel before displaying the corresponding menu entry.
Proposed Enhancement#
We propose to add a new copyToGlobals
boolean field to the debugger_info
response which will inform the UI that this request is supported.
Reference-level explanation#
This boolean flag should be included in the debugger_info
response from the kernel
which supports the feature. It is optional, assuming that its absence is understood
as false
from the client perspective.
If the feature is supported, the kernel must provide a function for copying a variable from a local scope to the global scope. The communication between the UI and the kernel (request - response) will have the structures described at https://jupyter-client.readthedocs.io/en/latest/messaging.html#copytoglobals.
Request (from UI to kernel)
{ 'type': 'request', 'command': 'copyToGlobals', 'arguments': { # the variable to copy from the frame corresponding to `srcFrameId` 'srcVariableName': str, 'srcFrameId': int, # the copied variable name in the global scope 'dstVariableName': str } }
Response (from kernel to UI)
{ 'type': 'response', 'success': bool, 'command': 'setExpression', 'body': { # string representation of the copied variable 'value': str, # type of the copied variable 'type': str, 'variablesReference': int } }