@@ -191,19 +191,28 @@ def __init__(
191191 * ,
192192 timeout : int | None = None ,
193193 bug_report : BugReport | None = None ,
194+ bug_report_id : str | None = None ,
194195 ):
195196 client_cache = {}
196197 self ._clients = {}
197198 self ._default_client = JsonRpcClient (
198- default_host , default_port , timeout = timeout , bug_report = bug_report , transport = default_transport
199+ default_host ,
200+ default_port ,
201+ timeout = timeout ,
202+ bug_report = bug_report ,
203+ bug_report_id = bug_report_id ,
204+ transport = default_transport ,
199205 )
200206 client_cache [(default_host , default_port )] = self ._default_client
201207 for method , servers in dispatch .items ():
202208 for host , port , transport in servers :
203209 if (host , port ) in client_cache :
204210 self ._update_clients (method , client_cache [(host , port )])
205211 else :
206- new_client = JsonRpcClient (host , port , timeout = timeout , bug_report = bug_report , transport = transport )
212+ new_id = None if bug_report_id is None else bug_report_id + '_' + str (transport )
213+ new_client = JsonRpcClient (
214+ host , port , timeout = timeout , bug_report = bug_report , bug_report_id = new_id , transport = transport
215+ )
207216 self ._update_clients (method , new_client )
208217 client_cache [(host , port )] = new_client
209218
@@ -244,6 +253,7 @@ class JsonRpcClient(ContextManager['JsonRpcClient']):
244253 _transport : Transport
245254 _req_id : int
246255 _bug_report : BugReport | None
256+ _bug_report_id : str
247257
248258 def __init__ (
249259 self ,
@@ -252,6 +262,7 @@ def __init__(
252262 * ,
253263 timeout : int | None = None ,
254264 bug_report : BugReport | None = None ,
265+ bug_report_id : str | None = None ,
255266 transport : TransportType = TransportType .SINGLE_SOCKET ,
256267 ):
257268 if transport is TransportType .SINGLE_SOCKET :
@@ -262,6 +273,7 @@ def __init__(
262273 raise AssertionError ()
263274 self ._req_id = 1
264275 self ._bug_report = bug_report
276+ self ._bug_report_id = bug_report_id if bug_report_id is not None else str (id (self ))
265277
266278 def __enter__ (self ) -> JsonRpcClient :
267279 return self
@@ -275,7 +287,6 @@ def close(self) -> None:
275287 def request (self , method : str , ** params : Any ) -> dict [str , Any ]:
276288 old_id = self ._req_id
277289 self ._req_id += 1
278- bug_report_id = str (id (self ))
279290
280291 payload = {
281292 'jsonrpc' : self ._JSON_RPC_VERSION ,
@@ -288,9 +299,9 @@ def request(self, method: str, **params: Any) -> dict[str, Any]:
288299 _LOGGER .info (f'Sending request to { server_addr } : { old_id } - { method } ' )
289300 req = json .dumps (payload )
290301 if self ._bug_report :
291- bug_report_request = f'rpc_{ bug_report_id } /{ old_id :03} _request.json'
302+ bug_report_request = f'rpc_{ self . _bug_report_id } /{ old_id :03} _request.json'
292303 self ._bug_report .add_file_contents (req , Path (bug_report_request ))
293- self ._bug_report .add_command (self ._transport .command (bug_report_id , old_id , bug_report_request ))
304+ self ._bug_report .add_command (self ._transport .command (self . _bug_report_id , old_id , bug_report_request ))
294305
295306 _LOGGER .debug (f'Sending request to { server_addr } : { req } ' )
296307 resp = self ._transport .request (req )
@@ -299,15 +310,15 @@ def request(self, method: str, **params: Any) -> dict[str, Any]:
299310 _LOGGER .debug (f'Received response from { server_addr } : { resp } ' )
300311
301312 if self ._bug_report :
302- bug_report_response = f'rpc_{ bug_report_id } /{ old_id :03} _response.json'
313+ bug_report_response = f'rpc_{ self . _bug_report_id } /{ old_id :03} _response.json'
303314 self ._bug_report .add_file_contents (resp , Path (bug_report_response ))
304315 self ._bug_report .add_command (
305316 [
306317 'diff' ,
307318 '-b' ,
308319 '-s' ,
309- f'rpc_{ bug_report_id } /{ old_id :03} _actual.json' ,
310- f'rpc_{ bug_report_id } /{ old_id :03} _response.json' ,
320+ f'rpc_{ self . _bug_report_id } /{ old_id :03} _actual.json' ,
321+ f'rpc_{ self . _bug_report_id } /{ old_id :03} _response.json' ,
311322 ]
312323 )
313324
@@ -719,13 +730,20 @@ def __init__(
719730 * ,
720731 timeout : int | None = None ,
721732 bug_report : BugReport | None = None ,
733+ bug_report_id : str | None = None ,
722734 transport : TransportType = TransportType .SINGLE_SOCKET ,
723735 dispatch : dict [str , list [tuple [str , int , TransportType ]]] | None = None ,
724736 ):
725737 if dispatch is None :
726738 dispatch = {}
727739 self ._client = JsonRpcClientFacade (
728- host , port , transport , timeout = timeout , bug_report = bug_report , dispatch = dispatch
740+ host ,
741+ port ,
742+ transport ,
743+ timeout = timeout ,
744+ bug_report = bug_report ,
745+ bug_report_id = bug_report_id ,
746+ dispatch = dispatch ,
729747 )
730748
731749 def __enter__ (self ) -> KoreClient :
0 commit comments