MCPcopy Create free account
hub / github.com/microsoft/debugpy / _parse

Method _parse

src/debugpy/common/messaging.py:912–952  ·  view source on GitHub ↗
(channel, message_dict, body=None)

Source from the content-addressed store, hash-verified

910
911 @staticmethod
912 def _parse(channel, message_dict, body=None):
913 seq = message_dict("seq", int) if (body is None) else None
914 request_seq = message_dict("request_seq", int)
915 command = message_dict("command", str)
916 success = message_dict("success", bool)
917 if body is None:
918 if success:
919 body = message_dict("body", _payload)
920 else:
921 error_message = message_dict("message", str)
922 exc_type = MessageHandlingError
923 if error_message.startswith(InvalidMessageError.PREFIX):
924 error_message = error_message[len(InvalidMessageError.PREFIX) :]
925 exc_type = InvalidMessageError
926 body = exc_type(error_message, silent=True)
927
928 try:
929 with channel:
930 request = channel._sent_requests.pop(request_seq)
931 known_request = True
932 except KeyError:
933 # Synthetic Request that only has seq and command as specified in response
934 # JSON, for error reporting purposes.
935 request = OutgoingRequest(channel, request_seq, command, "<unknown>")
936 known_request = False
937
938 if not success:
939 body.cause = request
940
941 response = Response(channel, seq, request, body, json=message_dict)
942
943 with channel:
944 request.response = response
945 request._enqueue_response_handlers()
946
947 if known_request:
948 return response
949 else:
950 raise response.isnt_valid(
951 "request_seq={0} does not match any known request", request_seq
952 )
953
954
955class Disconnect(Message):

Callers

nothing calls this directly

Calls 5

OutgoingRequestClass · 0.85
popMethod · 0.80
isnt_validMethod · 0.80
ResponseClass · 0.70

Tested by

no test coverage detected