File tree 2 files changed +25
-0
lines changed
python/jupyterlab_widgets/src
2 files changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -112,6 +112,9 @@ export abstract class LabWidgetManager
112
112
super . disconnect ( ) ;
113
113
this . _restoredStatus = false ;
114
114
}
115
+ get disconnected ( ) {
116
+ return ! this . _restoredStatus ;
117
+ }
115
118
116
119
protected async _loadFromKernel ( ) : Promise < void > {
117
120
if ( ! this . kernel ) {
@@ -471,6 +474,11 @@ export class KernelWidgetManager extends LabWidgetManager {
471
474
}
472
475
}
473
476
477
+ static existsWithActiveKenel ( id : string ) {
478
+ const widgetManager = Private . kernelWidgetManagers . get ( id ) ;
479
+ return ! widgetManager ?. disconnected ;
480
+ }
481
+
474
482
_handleKernelStatusChange (
475
483
sender : Kernel . IKernelConnection ,
476
484
status : Kernel . Status
Original file line number Diff line number Diff line change @@ -25,6 +25,7 @@ import { DisposableDelegate } from '@lumino/disposable';
25
25
import { WidgetRenderer } from './renderer' ;
26
26
27
27
import {
28
+ KernelWidgetManager ,
28
29
LabWidgetManager ,
29
30
WIDGET_VIEW_MIMETYPE ,
30
31
WidgetManager ,
@@ -103,6 +104,22 @@ function activateWidgetExtension(
103
104
const { commands } = app ;
104
105
const trans = ( translator ?? nullTranslator ) . load ( 'jupyterlab_widgets' ) ;
105
106
107
+ app . serviceManager . kernels . runningChanged . connect ( ( models ) => {
108
+ for ( const model of models . running ( ) ) {
109
+ if (
110
+ model &&
111
+ model . name === 'python3' &&
112
+ model . execution_state !== 'starting' &&
113
+ ! KernelWidgetManager . existsWithActiveKenel ( model . id )
114
+ ) {
115
+ const kernel = app . serviceManager . kernels . connectTo ( { model : model } ) ;
116
+ if ( kernel . handleComms ) {
117
+ new KernelWidgetManager ( kernel ) ;
118
+ }
119
+ }
120
+ }
121
+ } ) ;
122
+
106
123
if ( settingRegistry !== null ) {
107
124
settingRegistry
108
125
. load ( managerPlugin . id )
You can’t perform that action at this time.
0 commit comments