31 import DebugClientCapabilities |
32 import DebugClientCapabilities |
32 import DebugVariables |
33 import DebugVariables |
33 |
34 |
34 from AsyncFile import AsyncFile, AsyncPendingWrite |
35 from AsyncFile import AsyncFile, AsyncPendingWrite |
35 from BreakpointWatch import Breakpoint, Watch |
36 from BreakpointWatch import Breakpoint, Watch |
36 from DebugBase import printerr, setRecursionLimit # __IGNORE_WARNING__ |
37 from DebugBase import printerr, setRecursionLimit |
37 from DebugConfig import NonExpandableTypes, SpecialAttributes |
38 from DebugConfig import NonExpandableTypes, SpecialAttributes |
38 from DebugUtilities import formatargvalues, getargvalues, prepareJsonCommand |
39 from DebugUtilities import formatargvalues, getargvalues, prepareJsonCommand |
39 from FlexCompleter import Completer |
40 from FlexCompleter import Completer |
40 from MultiProcessDebugExtension import patchNewProcessFunctions |
41 from MultiProcessDebugExtension import patchNewProcessFunctions |
41 |
42 |
1028 """ |
1029 """ |
1029 Private method to determine the clients capabilities. |
1030 Private method to determine the clients capabilities. |
1030 |
1031 |
1031 @return client capabilities (integer) |
1032 @return client capabilities (integer) |
1032 """ |
1033 """ |
1033 try: |
1034 if importlib.util.find_spec("PyProfile") is None: |
1034 import PyProfile # __IGNORE_WARNING__ |
1035 return self.clientCapabilities & ~DebugClientCapabilities.HasProfiler |
1035 |
1036 else: |
1036 with contextlib.suppress(KeyError): |
|
1037 del sys.modules["PyProfile"] |
|
1038 return self.clientCapabilities |
1037 return self.clientCapabilities |
1039 except ImportError: |
|
1040 return self.clientCapabilities & ~DebugClientCapabilities.HasProfiler |
|
1041 |
1038 |
1042 def readReady(self, stream): |
1039 def readReady(self, stream): |
1043 """ |
1040 """ |
1044 Public method called when there is data ready to be read. |
1041 Public method called when there is data ready to be read. |
1045 |
1042 |