30 ClientDefaultCapabilities = DebugClientCapabilities.HasAll |
30 ClientDefaultCapabilities = DebugClientCapabilities.HasAll |
31 |
31 |
32 |
32 |
33 class DebuggerInterfacePython3(QObject): |
33 class DebuggerInterfacePython3(QObject): |
34 """ |
34 """ |
35 Class implementing the Python debugger interface for the debug server. |
35 Class implementing the Python 3 debugger interface for the debug server. |
36 """ |
36 """ |
37 def __init__(self, debugServer, passive): |
37 def __init__(self, debugServer, passive): |
38 """ |
38 """ |
39 Constructor |
39 Constructor |
40 |
40 |
920 elif method == "RequestRaw": |
919 elif method == "RequestRaw": |
921 self.debugServer.signalClientRawInput( |
920 self.debugServer.signalClientRawInput( |
922 params["prompt"], params["echo"]) |
921 params["prompt"], params["echo"]) |
923 |
922 |
924 elif method == "ResponseBPConditionError": |
923 elif method == "ResponseBPConditionError": |
925 params["filename"] = self.translate(params["filename"], True) |
924 fn = self.translate(params["filename"], True) |
926 self.debugServer.signalClientBreakConditionError( |
925 self.debugServer.signalClientBreakConditionError( |
927 params["filename"], params["line"]) |
926 fn, params["line"]) |
928 |
927 |
929 elif method == "ResponseClearBreakpoint": |
928 elif method == "ResponseClearBreakpoint": |
930 params["filename"] = self.translate(params["filename"], True) |
929 fn = self.translate(params["filename"], True) |
931 self.debugServer.signalClientClearBreak( |
930 self.debugServer.signalClientClearBreak(fn, params["line"]) |
932 params["filename"], params["line"]) |
|
933 |
931 |
934 elif method == "ResponseWatchConditionError": |
932 elif method == "ResponseWatchConditionError": |
935 self.debugServer.signalClientWatchConditionError( |
933 self.debugServer.signalClientWatchConditionError( |
936 params["condition"]) |
934 params["condition"]) |
937 |
935 |
970 params["message"], self.translate(params["filename"], True), |
968 params["message"], self.translate(params["filename"], True), |
971 params["linenumber"], params["function"], params["arguments"]) |
969 params["linenumber"], params["function"], params["arguments"]) |
972 |
970 |
973 elif method == "ResponseExit": |
971 elif method == "ResponseExit": |
974 self.__scriptName = "" |
972 self.__scriptName = "" |
|
973 # TODO: combine these into signalClientExit |
975 self.debugServer.signalClientExit(params["status"]) |
974 self.debugServer.signalClientExit(params["status"]) |
976 if params["message"]: |
975 if params["message"]: |
977 self.debugServer.signalClientOutput(params["message"]) |
976 self.debugServer.signalClientOutput(params["message"]) |
978 |
977 |
979 elif method == "PassiveStartup": |
978 elif method == "PassiveStartup": |
1018 self.debugServer.clientUtTestSucceededUnexpected( |
1017 self.debugServer.clientUtTestSucceededUnexpected( |
1019 params["testname"], params["id"]) |
1018 params["testname"], params["id"]) |
1020 |
1019 |
1021 elif method == "RequestForkTo": |
1020 elif method == "RequestForkTo": |
1022 self.__askForkTo() |
1021 self.__askForkTo() |
1023 |
|
1024 def __sendCommand(self, cmd): |
|
1025 """ |
|
1026 Private method to send a single line command to the client. |
|
1027 |
|
1028 @param cmd command to send to the debug client (string) |
|
1029 """ |
|
1030 if self.qsock is not None: |
|
1031 self.qsock.write(cmd.encode('utf8', 'backslashreplace')) |
|
1032 else: |
|
1033 self.queue.append(cmd) |
|
1034 |
1022 |
1035 def __sendJsonCommand(self, command, params): |
1023 def __sendJsonCommand(self, command, params): |
1036 """ |
1024 """ |
1037 Private method to send a single command to the client. |
1025 Private method to send a single command to the client. |
1038 |
1026 |
1083 if ext.startswith("."): |
1071 if ext.startswith("."): |
1084 exts.append(ext) |
1072 exts.append(ext) |
1085 else: |
1073 else: |
1086 exts.append(".{0}".format(ext)) |
1074 exts.append(".{0}".format(ext)) |
1087 |
1075 |
1088 if exts: |
1076 if exts and Preferences.getDebugger("Python3Interpreter"): |
1089 return ["Python3", ClientDefaultCapabilities, exts, |
1077 return ["Python3", ClientDefaultCapabilities, exts, |
1090 createDebuggerInterfacePython3] |
1078 createDebuggerInterfacePython3] |
1091 else: |
1079 else: |
1092 return ["", 0, [], None] |
1080 return ["", 0, [], None] |