@@ -340,7 +340,6 @@ class ReceivedRequestEntry(NamedTuple):
340
340
341
341
342
342
class JsonRPCProtocolBase (asyncio .Protocol , ABC ):
343
- _logger = LoggingDescriptor ()
344
343
registry : ClassVar = RpcRegistry ()
345
344
346
345
def __init__ (self ) -> None :
@@ -361,7 +360,6 @@ async def on_connection_made(sender, transport: asyncio.BaseTransport) -> None:
361
360
async def on_connection_lost (sender , exc : Optional [BaseException ]) -> None :
362
361
...
363
362
364
- @_logger .call
365
363
def connection_made (self , transport : asyncio .BaseTransport ) -> None :
366
364
super ().connection_made (transport )
367
365
self ._loop = asyncio .get_running_loop ()
@@ -372,12 +370,10 @@ def connection_made(self, transport: asyncio.BaseTransport) -> None:
372
370
373
371
create_sub_task (self .on_connection_made (self , transport ))
374
372
375
- @_logger .call
376
373
def connection_lost (self , exc : Optional [BaseException ]) -> None :
377
374
create_sub_task (self .on_connection_lost (self , exc ))
378
375
self ._loop = None
379
376
380
- @_logger .call
381
377
def eof_received (self ) -> Optional [bool ]:
382
378
return False
383
379
@@ -422,7 +418,7 @@ def _handle_body(self, body: bytes, charset: str) -> None:
422
418
423
419
424
420
class JsonRPCProtocol (JsonRPCProtocolBase ):
425
- _logger = LoggingDescriptor ()
421
+ __logger = LoggingDescriptor ()
426
422
_data_logger = LoggingDescriptor (postfix = "_data" )
427
423
428
424
def __init__ (self ) -> None :
@@ -471,7 +467,7 @@ def _handle_body(self, body: bytes, charset: str) -> None:
471
467
except (asyncio .CancelledError , SystemExit , KeyboardInterrupt ):
472
468
raise
473
469
except BaseException as e :
474
- self ._logger .exception (e )
470
+ self .__logger .exception (e )
475
471
self .send_error (JsonRPCErrors .PARSE_ERROR , f"{ type (e ).__name__ } : { e } " )
476
472
477
473
def _handle_messages (self , iterator : Iterator [JsonRPCMessage ]) -> None :
@@ -485,7 +481,7 @@ def done(f: asyncio.Future[Any]) -> None:
485
481
for m in iterator :
486
482
create_sub_task (self .handle_message (m )).add_done_callback (done )
487
483
488
- @_logger .call
484
+ @__logger .call
489
485
async def handle_message (self , message : JsonRPCMessage ) -> None :
490
486
if isinstance (message , JsonRPCRequest ):
491
487
await self .handle_request (message )
@@ -496,11 +492,11 @@ async def handle_message(self, message: JsonRPCMessage) -> None:
496
492
elif isinstance (message , JsonRPCResponse ):
497
493
await self .handle_response (message )
498
494
499
- @_logger .call
495
+ @__logger .call
500
496
def send_response (self , id : Optional [Union [str , int , None ]], result : Optional [Any ] = None ) -> None :
501
497
self .send_message (JsonRPCResponse (id = id , result = result ))
502
498
503
- @_logger .call
499
+ @__logger .call
504
500
def send_error (
505
501
self ,
506
502
code : int ,
@@ -519,7 +515,7 @@ def send_error(
519
515
)
520
516
)
521
517
522
- @_logger .call
518
+ @__logger .call
523
519
def send_message (self , message : JsonRPCMessage ) -> None :
524
520
message .jsonrpc = PROTOCOL_VERSION
525
521
@@ -537,7 +533,7 @@ def send_message(self, message: JsonRPCMessage) -> None:
537
533
if self ._loop :
538
534
self ._loop .call_soon_threadsafe (self .write_transport .write , msg )
539
535
540
- @_logger .call
536
+ @__logger .call
541
537
def send_request (
542
538
self ,
543
539
method : str ,
@@ -564,15 +560,15 @@ async def send_request_async(
564
560
) -> Optional [_TResult ]:
565
561
return await self .send_request (method , params , return_type )
566
562
567
- @_logger .call
563
+ @__logger .call
568
564
def send_notification (self , method : str , params : Any ) -> None :
569
565
self .send_message (JsonRPCNotification (method = method , params = params ))
570
566
571
- @_logger .call (exception = True )
567
+ @__logger .call (exception = True )
572
568
async def handle_response (self , message : JsonRPCResponse ) -> None :
573
569
if message .id is None :
574
570
error = "Invalid response. Response id is null."
575
- self ._logger .warning (error )
571
+ self .__logger .warning (error )
576
572
self .send_error (JsonRPCErrors .INTERNAL_ERROR , error )
577
573
return
578
574
@@ -581,7 +577,7 @@ async def handle_response(self, message: JsonRPCResponse) -> None:
581
577
582
578
if entry is None :
583
579
error = f"Invalid response. Could not find id '{ message .id } ' in request list."
584
- self ._logger .warning (error )
580
+ self .__logger .warning (error )
585
581
self .send_error (JsonRPCErrors .INTERNAL_ERROR , error )
586
582
return
587
583
@@ -614,7 +610,7 @@ def set_result(f: asyncio.Future[Any], r: Any, ev: threading.Event) -> None:
614
610
await asyncio .sleep (0 )
615
611
616
612
else :
617
- self ._logger .warning (lambda : f"Response { repr (entry )} loop is not running." )
613
+ self .__logger .warning (lambda : f"Response { repr (entry )} loop is not running." )
618
614
619
615
except (SystemExit , KeyboardInterrupt ):
620
616
raise
@@ -626,7 +622,7 @@ def set_result(f: asyncio.Future[Any], r: Any, ev: threading.Event) -> None:
626
622
if entry .future .get_loop ().is_running ():
627
623
entry .future .get_loop ().call_soon_threadsafe (entry .future .set_exception , e )
628
624
629
- @_logger .call
625
+ @__logger .call
630
626
async def handle_error (self , message : JsonRPCError ) -> None :
631
627
raise JsonRPCErrorException (message .error .code , message .error .message , message .error .data )
632
628
@@ -717,19 +713,19 @@ def done(t: asyncio.Future[Any]) -> None:
717
713
if not t .cancelled ():
718
714
ex = t .exception ()
719
715
if ex is not None :
720
- self ._logger .exception (ex , exc_info = ex )
716
+ self .__logger .exception (ex , exc_info = ex )
721
717
raise JsonRPCErrorException (JsonRPCErrors .INTERNAL_ERROR , f"{ type (ex ).__name__ } : { ex } " ) from ex
722
718
723
719
self .send_response (message .id , t .result ())
724
720
except asyncio .CancelledError :
725
- self ._logger .debug (lambda : f"request message { repr (message )} canceled" )
721
+ self .__logger .debug (lambda : f"request message { repr (message )} canceled" )
726
722
self .send_error (JsonRPCErrors .REQUEST_CANCELLED , "Request canceled." , id = message .id )
727
723
except (SystemExit , KeyboardInterrupt ):
728
724
raise
729
725
except JsonRPCErrorException as e :
730
726
self .send_error (e .code , e .message or f"{ type (e ).__name__ } : { e } " , id = message .id , data = e .data )
731
727
except BaseException as e :
732
- self ._logger .exception (e )
728
+ self .__logger .exception (e )
733
729
self .send_error (JsonRPCErrors .INTERNAL_ERROR , f"{ type (e ).__name__ } : { e } " , id = message .id )
734
730
finally :
735
731
with self ._received_request_lock :
@@ -739,27 +735,27 @@ def done(t: asyncio.Future[Any]) -> None:
739
735
740
736
await task
741
737
742
- @_logger .call
738
+ @__logger .call
743
739
def cancel_request (self , id : Union [int , str , None ]) -> None :
744
740
with self ._received_request_lock :
745
741
entry = self ._received_request .get (id , None )
746
742
747
743
if entry is not None and entry .future is not None and not entry .future .cancelled ():
748
- self ._logger .debug (lambda : f"try to cancel request { entry .request if entry is not None else '' } " )
744
+ self .__logger .debug (lambda : f"try to cancel request { entry .request if entry is not None else '' } " )
749
745
entry .future .cancel ()
750
746
751
- @_logger .call
747
+ @__logger .call
752
748
async def cancel_all_received_request (self ) -> None :
753
749
for entry in self ._received_request .values ():
754
750
if entry is not None and entry .cancelable and entry .future is not None and not entry .future .cancelled ():
755
751
entry .future .cancel ()
756
752
757
- @_logger .call
753
+ @__logger .call
758
754
async def handle_notification (self , message : JsonRPCNotification ) -> None :
759
755
e = self .registry .get_entry (message .method )
760
756
761
757
if e is None or not callable (e .method ):
762
- self ._logger .warning (lambda : f"Unknown method: { message .method } " )
758
+ self .__logger .warning (lambda : f"Unknown method: { message .method } " )
763
759
return
764
760
try :
765
761
params = self ._convert_params (e .method , e .param_type , message .params )
@@ -780,7 +776,7 @@ async def handle_notification(self, message: JsonRPCNotification) -> None:
780
776
except (SystemExit , KeyboardInterrupt ):
781
777
raise
782
778
except BaseException as e :
783
- self ._logger .exception (e )
779
+ self .__logger .exception (e )
784
780
785
781
786
782
TProtocol = TypeVar ("TProtocol" , bound = JsonRPCProtocol )
0 commit comments