@@ -140,6 +140,14 @@ def iopub_data_rate_limit(self):
140
140
def rate_limit_window (self ):
141
141
return self .settings .get ("rate_limit_window" , 1.0 )
142
142
143
+ @property
144
+ def subprotocol (self ):
145
+ try :
146
+ protocol = self .selected_subprotocol
147
+ except Exception :
148
+ protocol = None
149
+ return protocol
150
+
143
151
def __repr__ (self ):
144
152
return "%s(%s)" % (
145
153
self .__class__ .__name__ ,
@@ -484,7 +492,7 @@ def on_message(self, ws_msg):
484
492
self .log .debug ("Received message on closed websocket %r" , ws_msg )
485
493
return
486
494
487
- if self .selected_subprotocol == "v1.kernel.websocket.jupyter.org" :
495
+ if self .subprotocol == "v1.kernel.websocket.jupyter.org" :
488
496
channel , msg_list = deserialize_msg_from_ws_v1 (ws_msg )
489
497
msg = {
490
498
"header" : None ,
@@ -515,7 +523,7 @@ def on_message(self, ws_msg):
515
523
ignore_msg = True
516
524
if not ignore_msg :
517
525
stream = self .channels [channel ]
518
- if self .selected_subprotocol == "v1.kernel.websocket.jupyter.org" :
526
+ if self .subprotocol == "v1.kernel.websocket.jupyter.org" :
519
527
self .session .send_raw (stream , msg_list )
520
528
else :
521
529
self .session .send (stream , msg )
@@ -533,7 +541,7 @@ def get_part(self, field, value, msg_list):
533
541
def _on_zmq_reply (self , stream , msg_list ):
534
542
idents , fed_msg_list = self .session .feed_identities (msg_list )
535
543
536
- if self .selected_subprotocol == "v1.kernel.websocket.jupyter.org" :
544
+ if self .subprotocol == "v1.kernel.websocket.jupyter.org" :
537
545
msg = {"header" : None , "parent_header" : None , "content" : None }
538
546
else :
539
547
msg = self .session .deserialize (fed_msg_list )
@@ -546,7 +554,7 @@ def _on_zmq_reply(self, stream, msg_list):
546
554
if self ._limit_rate (channel , msg , parts ):
547
555
return
548
556
549
- if self .selected_subprotocol == "v1.kernel.websocket.jupyter.org" :
557
+ if self .subprotocol == "v1.kernel.websocket.jupyter.org" :
550
558
super (ZMQChannelsHandler , self )._on_zmq_reply (stream , parts )
551
559
else :
552
560
super (ZMQChannelsHandler , self )._on_zmq_reply (stream , msg )
@@ -558,7 +566,7 @@ def write_stderr(self, error_message, parent_header):
558
566
content = {"text" : error_message + "\n " , "name" : "stderr" },
559
567
parent = parent_header ,
560
568
)
561
- if self .selected_subprotocol == "v1.kernel.websocket.jupyter.org" :
569
+ if self .subprotocol == "v1.kernel.websocket.jupyter.org" :
562
570
bin_msg = serialize_msg_to_ws_v1 (err_msg , "iopub" , self .session .pack )
563
571
self .write_message (bin_msg , binary = True )
564
572
else :
@@ -736,7 +744,7 @@ def _send_status_message(self, status):
736
744
# that all messages from the stopped kernel have been delivered
737
745
iopub .flush ()
738
746
msg = self .session .msg ("status" , {"execution_state" : status })
739
- if self .selected_subprotocol == "v1.kernel.websocket.jupyter.org" :
747
+ if self .subprotocol == "v1.kernel.websocket.jupyter.org" :
740
748
bin_msg = serialize_msg_to_ws_v1 (msg , "iopub" , self .session .pack )
741
749
self .write_message (bin_msg , binary = True )
742
750
else :
@@ -762,7 +770,7 @@ def _on_error(self, channel, msg, msg_list):
762
770
msg ["content" ]["ename" ] = "ExecutionError"
763
771
msg ["content" ]["evalue" ] = "Execution error"
764
772
msg ["content" ]["traceback" ] = [self .kernel_manager .traceback_replacement_message ]
765
- if self .selected_subprotocol == "v1.kernel.websocket.jupyter.org" :
773
+ if self .subprotocol == "v1.kernel.websocket.jupyter.org" :
766
774
msg_list [3 ] = self .session .pack (msg ["content" ])
767
775
768
776
0 commit comments