From 37c68468f3a8208bc7d16934da51927819f06a1a Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Tue, 19 Oct 2021 15:16:02 +0200 Subject: [PATCH] Enabled rich rendering of variables in the debugger --- ipykernel/debugger.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/ipykernel/debugger.py b/ipykernel/debugger.py index 0f514aba7..3d895f350 100644 --- a/ipykernel/debugger.py +++ b/ipykernel/debugger.py @@ -493,7 +493,8 @@ async def debugInfo(self, message): 'tmpFilePrefix': get_tmp_directory() + '/', 'tmpFileSuffix': '.py', 'breakpoints': breakpoint_list, - 'stoppedThreads': self.stopped_threads + 'stoppedThreads': self.stopped_threads, + 'richRendering': True } } return reply @@ -509,7 +510,24 @@ async def inspectVariables(self, message): return self._build_variables_response(message, variables) async def richInspectVariables(self, message): + reply = { + 'type': 'response', + 'sequence_seq': message['seq'], + 'success': False, + 'command': message['command'] + } + var_name = message['arguments']['variableName'] + valid_name = str.isidentifier(var_name) + if not valid_name: + reply['body'] = { + 'data': {}, + 'metadata': {} + } + if var_name == 'special variables' or var_name == 'function variables': + reply['success'] = True + return reply + var_repr_data = var_name + '_repr_data' var_repr_metadata = var_name + '_repr_metadata' @@ -536,13 +554,6 @@ async def richInspectVariables(self, message): } await self._forward_message(request) - reply = { - 'type': 'response', - 'sequence_seq': message['seq'], - 'success': False, - 'command': message['command'] - } - repr_data = globals()[var_repr_data] repr_metadata = globals()[var_repr_metadata] body = {