MCPcopy Create free account
hub / github.com/deepnote/vscode-deepnote / getOrCreate

Method getOrCreate

src/kernels/kernelProvider.node.ts:68–136  ·  view source on GitHub ↗
(notebook: NotebookDocument, options: KernelOptions)

Source from the content-addressed store, hash-verified

66 }
67
68 public getOrCreate(notebook: NotebookDocument, options: KernelOptions): IKernel {
69 const existingKernelInfo = this.getInternal(notebook);
70 if (existingKernelInfo && existingKernelInfo.options.metadata.id === options.metadata.id) {
71 return existingKernelInfo.kernel;
72 }
73 if (existingKernelInfo) {
74 logger.trace(
75 `Kernel for ${getDisplayPath(notebook.uri)} with id ${
76 existingKernelInfo.options.metadata.id
77 } is being replaced with ${options.metadata.id}`
78 );
79 }
80 this.disposeOldKernel(notebook, 'createNewKernel');
81
82 const replKernel = this.replTracker.isForReplEditor(notebook);
83 const resourceUri = replKernel ? options.resourceUri : notebook.uri;
84 const settings = createKernelSettings(this.configService, resourceUri);
85 const startupCodeProviders = this.startupCodeProviders.getProviders(
86 replKernel ? InteractiveWindowView : JupyterNotebookView
87 );
88
89 const kernel: IKernel = new Kernel(
90 resourceUri,
91 notebook,
92 options.metadata,
93 this.sessionCreator,
94 settings,
95 options.controller,
96 startupCodeProviders,
97 this.workspaceStorage,
98 this.kernelWorkingDirectory,
99 this.rawKernelSupported
100 );
101 kernel.onRestarted(() => this._onDidRestartKernel.fire(kernel), this, this.disposables);
102 kernel.onDisposed(
103 () => {
104 this._onDidDisposeKernel.fire(kernel);
105 },
106 this,
107 this.disposables
108 );
109 kernel.onStarted(() => this._onDidStartKernel.fire(kernel), this, this.disposables);
110 kernel.onStatusChanged(
111 (status) => this._onKernelStatusChanged.fire({ kernel, status }),
112 this,
113 this.disposables
114 );
115 kernel.onPostInitialized(
116 (e) => e.waitUntil(this._onDidPostInitializeKernel.fireAsync({ kernel }, e.token)),
117 this,
118 this.disposables
119 );
120
121 this.executions.set(
122 kernel,
123 new NotebookKernelExecution(
124 kernel,
125 this.context,

Callers

nothing calls this directly

Calls 12

getDisplayPathFunction · 0.90
createKernelSettingsFunction · 0.90
onStatusChangedMethod · 0.80
waitUntilMethod · 0.80
fireAsyncMethod · 0.80
traceMethod · 0.65
isForReplEditorMethod · 0.65
getProvidersMethod · 0.65
setMethod · 0.65
pushMethod · 0.65
fireMethod · 0.45
onDisposedMethod · 0.45

Tested by

no test coverage detected