Skip to content

Commit 51ab163

Browse files
authored
Merge pull request #816 from datalayer-externals/feat/debugModulesRequest
Add support for the debug modules request
2 parents d9243ee + 28a9b0f commit 51ab163

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

ipykernel/debugger.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import sys
12
import os
23
import re
34
import threading
@@ -265,7 +266,8 @@ class Debugger:
265266

266267
# Requests that can be handled even if the debugger is not running
267268
static_debug_msg_types = [
268-
'debugInfo', 'inspectVariables', 'richInspectVariables'
269+
'debugInfo', 'inspectVariables',
270+
'richInspectVariables', 'modules'
269271
]
270272

271273
def __init__(self, log, debugpy_stream, event_callback, shell_socket, session):
@@ -591,6 +593,20 @@ async def richInspectVariables(self, message):
591593
reply["success"] = True
592594
return reply
593595

596+
async def modules(self, message):
597+
modules = list(sys.modules.values())
598+
startModule = message.get('startModule', 0)
599+
moduleCount = message.get('moduleCount', len(modules))
600+
mods = []
601+
for i in range(startModule, moduleCount):
602+
module = modules[i]
603+
filename = getattr(getattr(module, "__spec__", None), "origin", None)
604+
if filename and filename.endswith(".py"):
605+
mods.append({module.__name__: filename})
606+
607+
reply = {"body": {"modules": mods, "totalModules": len(modules)}}
608+
return reply
609+
594610
async def process_request(self, message):
595611
reply = {}
596612

0 commit comments

Comments
 (0)