55import type { nbformat } from '@jupyterlab/coreutils' ;
66import { inject , injectable , named } from 'inversify' ;
77import * as path from 'path' ;
8- import { CancellationToken , CancellationTokenSource } from 'vscode' ;
8+ import { CancellationToken } from 'vscode' ;
99import { IWorkspaceService } from '../../common/application/types' ;
10- import { wrapCancellationTokens } from '../../common/cancellation' ;
1110import { traceError , traceInfo } from '../../common/logger' ;
1211import { IPlatformService } from '../../common/platform/types' ;
1312import { IPythonExecutionFactory } from '../../common/process/types' ;
14- import { IExtensionContext , IInstaller , InstallerResponse , IPathUtils , Product , Resource } from '../../common/types' ;
13+ import { IExtensionContext , IPathUtils , Resource } from '../../common/types' ;
1514import { IEnvironmentVariablesProvider } from '../../common/variables/types' ;
1615import { IInterpreterLocatorService , IInterpreterService , KNOWN_PATH_SERVICE } from '../../interpreter/contracts' ;
1716import { captureTelemetry } from '../../telemetry' ;
@@ -20,7 +19,6 @@ import { Telemetry } from '../constants';
2019import { defaultKernelSpecName } from '../jupyter/kernels/helpers' ;
2120import { JupyterKernelSpec } from '../jupyter/kernels/jupyterKernelSpec' ;
2221import { IDataScienceFileSystem , IJupyterKernelSpec } from '../types' ;
23- import { getKernelInterpreter } from './helpers' ;
2422import { IKernelFinder } from './types' ;
2523// tslint:disable-next-line:no-require-imports no-var-requires
2624const flatten = require ( 'lodash/flatten' ) as typeof import ( 'lodash/flatten' ) ;
@@ -56,7 +54,6 @@ export class KernelFinder implements IKernelFinder {
5654 @inject ( IPlatformService ) private platformService : IPlatformService ,
5755 @inject ( IDataScienceFileSystem ) private fs : IDataScienceFileSystem ,
5856 @inject ( IPathUtils ) private readonly pathUtils : IPathUtils ,
59- @inject ( IInstaller ) private installer : IInstaller ,
6057 @inject ( IExtensionContext ) private readonly context : IExtensionContext ,
6158 @inject ( IWorkspaceService ) private readonly workspaceService : IWorkspaceService ,
6259 @inject ( IPythonExecutionFactory ) private readonly exeFactory : IPythonExecutionFactory ,
@@ -65,9 +62,7 @@ export class KernelFinder implements IKernelFinder {
6562 @captureTelemetry ( Telemetry . KernelFinderPerf )
6663 public async findKernelSpec (
6764 resource : Resource ,
68- kernelSpecMetadata ?: nbformat . IKernelspecMetadata ,
69- cancelToken ?: CancellationToken ,
70- ignoreDependencyCheck ?: boolean
65+ kernelSpecMetadata ?: nbformat . IKernelspecMetadata
7166 ) : Promise < IJupyterKernelSpec | undefined > {
7267 await this . readCache ( ) ;
7368 let foundKernel : IJupyterKernelSpec | undefined ;
@@ -108,8 +103,7 @@ export class KernelFinder implements IKernelFinder {
108103
109104 this . writeCache ( ) . ignoreErrors ( ) ;
110105
111- // Verify that ipykernel is installed into the given kernelspec interpreter
112- return ignoreDependencyCheck || ! foundKernel ? foundKernel : this . verifyIpyKernel ( foundKernel , cancelToken ) ;
106+ return foundKernel ;
113107 }
114108
115109 // Search all our local file system locations for installed kernel specs and return them
@@ -318,30 +312,6 @@ export class KernelFinder implements IKernelFinder {
318312 return flatten ( fullPathResults ) ;
319313 }
320314
321- // For the given kernelspec return back the kernelspec with ipykernel installed into it or error
322- private async verifyIpyKernel (
323- kernelSpec : IJupyterKernelSpec ,
324- cancelToken ?: CancellationToken
325- ) : Promise < IJupyterKernelSpec > {
326- const interpreter = await getKernelInterpreter ( kernelSpec , this . interpreterService ) ;
327-
328- if ( await this . installer . isInstalled ( Product . ipykernel , interpreter ) ) {
329- return kernelSpec ;
330- } else {
331- const token = new CancellationTokenSource ( ) ;
332- const response = await this . installer . promptToInstall (
333- Product . ipykernel ,
334- interpreter ,
335- wrapCancellationTokens ( cancelToken , token . token )
336- ) ;
337- if ( response === InstallerResponse . Installed ) {
338- return kernelSpec ;
339- }
340- }
341-
342- throw new Error ( `IPyKernel not installed into interpreter ${ interpreter . displayName } ` ) ;
343- }
344-
345315 private async getKernelSpecFromActiveInterpreter (
346316 kernelName : string ,
347317 resource : Resource
0 commit comments