Skip to content

Commit

Permalink
Remove old code for folder support in interpreter path setting (#22413)
Browse files Browse the repository at this point in the history
Closes #12452
  • Loading branch information
Kartik Raj authored Nov 2, 2023
1 parent 32ea534 commit f6cfa6e
Showing 1 changed file with 1 addition and 64 deletions.
65 changes: 1 addition & 64 deletions src/client/common/configSettings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

// eslint-disable-next-line camelcase
import * as path from 'path';
import * as fs from 'fs';
import {
ConfigurationChangeEvent,
ConfigurationTarget,
Expand Down Expand Up @@ -35,8 +34,6 @@ import {
} from './types';
import { debounceSync } from './utils/decorators';
import { SystemVariables } from './variables/systemVariables';
import { getOSType, OSType } from './utils/platform';
import { isWindows } from './platform/platformService';

const untildify = require('untildify');

Expand Down Expand Up @@ -390,7 +387,7 @@ export class PythonSettings implements IPythonSettings {

// eslint-disable-next-line class-methods-use-this
protected getPythonExecutable(pythonPath: string): string {
return getPythonExecutable(pythonPath);
return untildify(pythonPath);
}

protected onWorkspaceFoldersChanged(): void {
Expand Down Expand Up @@ -489,63 +486,3 @@ function getAbsolutePath(pathToCheck: string, rootDir: string | undefined): stri
}
return path.isAbsolute(pathToCheck) ? pathToCheck : path.resolve(rootDir, pathToCheck);
}

function getPythonExecutable(pythonPath: string): string {
pythonPath = untildify(pythonPath) as string;

// If only 'python'.
if (
pythonPath === 'python' ||
pythonPath.indexOf(path.sep) === -1 ||
path.basename(pythonPath) === path.dirname(pythonPath)
) {
return pythonPath;
}

if (isValidPythonPath(pythonPath)) {
return pythonPath;
}
// Keep python right on top, for backwards compatibility.

const KnownPythonExecutables = [
'python',
'python4',
'python3.6',
'python3.5',
'python3',
'python2.7',
'python2',
'python3.7',
'python3.8',
'python3.9',
];

for (let executableName of KnownPythonExecutables) {
// Suffix with 'python' for linux and 'osx', and 'python.exe' for 'windows'.
if (isWindows()) {
executableName = `${executableName}.exe`;
if (isValidPythonPath(path.join(pythonPath, executableName))) {
return path.join(pythonPath, executableName);
}
if (isValidPythonPath(path.join(pythonPath, 'Scripts', executableName))) {
return path.join(pythonPath, 'Scripts', executableName);
}
} else {
if (isValidPythonPath(path.join(pythonPath, executableName))) {
return path.join(pythonPath, executableName);
}
if (isValidPythonPath(path.join(pythonPath, 'bin', executableName))) {
return path.join(pythonPath, 'bin', executableName);
}
}
}

return pythonPath;
}

function isValidPythonPath(pythonPath: string): boolean {
return (
fs.existsSync(pythonPath) &&
path.basename(getOSType() === OSType.Windows ? pythonPath.toLowerCase() : pythonPath).startsWith('python')
);
}

0 comments on commit f6cfa6e

Please sign in to comment.