Skip to content

Commit 75fa98d

Browse files
committed
chore: refactor move some utility functions to common location
1 parent 9facd7c commit 75fa98d

8 files changed

Lines changed: 22 additions & 18 deletions

File tree

src/common/pickers/environments.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import { IconPath, PythonEnvironment, PythonProject } from '../../api';
33
import { InternalEnvironmentManager } from '../../internal.api';
44
import { Common, Interpreter, Pickers } from '../localize';
55
import { showQuickPickWithButtons, showQuickPick, showOpenDialog, withProgress } from '../window.apis';
6-
import { isWindows } from '../../managers/common/utils';
76
import { traceError } from '../logging';
87
import { pickEnvironmentManager } from './managers';
98
import { handlePythonPath } from '../utils/pythonPath';
9+
import { isWindows } from '../utils/platformUtils';
1010

1111
type QuickPickIcon =
1212
| Uri

src/common/utils/pathUtils.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as path from 'path';
2+
import * as os from 'os';
23

34
export function areSamePaths(a: string, b: string): boolean {
45
return path.resolve(a) === path.resolve(b);
@@ -8,3 +9,11 @@ export function isParentPath(parent: string, child: string): boolean {
89
const relative = path.relative(path.resolve(parent), path.resolve(child));
910
return !!relative && !relative.startsWith('..') && !path.isAbsolute(relative);
1011
}
12+
13+
export function untildify(path: string): string {
14+
return path.replace(/^~($|\/|\\)/, `${os.homedir()}$1`);
15+
}
16+
17+
export function getUserHomeDir(): string {
18+
return os.homedir();
19+
}

src/common/utils/platformUtils.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function isWindows(): boolean {
2+
return process.platform === 'win32';
3+
}

src/features/common/shellDetector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as os from 'os';
22
import { Terminal } from 'vscode';
3-
import { isWindows } from '../../managers/common/utils';
43
import { vscodeShell } from '../../common/vscodeEnv.apis';
54
import { getConfiguration } from '../../common/workspace.apis';
5+
import { isWindows } from '../../common/utils/platformUtils';
66

77
/*
88
When identifying the shell use the following algorithm:

src/managers/builtin/venvUtils.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
NativePythonFinder,
1919
} from '../common/nativePythonFinder';
2020
import { getWorkspacePersistentState } from '../../common/persistentState';
21-
import { isWindows, shortVersion, sortEnvironments } from '../common/utils';
21+
import { shortVersion, sortEnvironments } from '../common/utils';
2222
import { getConfiguration } from '../../common/workspace.apis';
2323
import { pickEnvironmentFrom } from '../../common/pickers/environments';
2424
import {
@@ -32,6 +32,7 @@ import { showErrorMessage } from '../../common/errors/utils';
3232
import { Common, VenvManagerStrings } from '../../common/localize';
3333
import { isUvInstalled, runUV, runPython } from './helpers';
3434
import { getWorkspacePackagesToInstall } from './pipUtils';
35+
import { isWindows } from '../../common/utils/platformUtils';
3536

3637
export const VENV_WORKSPACE_KEY = `${ENVS_EXTENSION_ID}:venv:WORKSPACE_SELECTED`;
3738
export const VENV_GLOBAL_KEY = `${ENVS_EXTENSION_ID}:venv:GLOBAL_SELECTED`;

src/managers/common/nativePythonFinder.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import * as rpc from 'vscode-jsonrpc/node';
44
import * as ch from 'child_process';
55
import { ENVS_EXTENSION_ID, PYTHON_EXTENSION_ID } from '../../common/constants';
66
import { getExtension } from '../../common/extension.apis';
7-
import { getUserHomeDir, isWindows, noop, untildify } from './utils';
7+
import { noop } from './utils';
88
import { Disposable, ExtensionContext, LogOutputChannel, Uri } from 'vscode';
99
import { PassThrough } from 'stream';
1010
import { PythonProjectApi } from '../../api';
1111
import { getConfiguration } from '../../common/workspace.apis';
1212
import { createRunningWorkerPool, WorkerPool } from '../../common/utils/workerPool';
1313
import { traceVerbose } from '../../common/logging';
14+
import { isWindows } from '../../common/utils/platformUtils';
15+
import { getUserHomeDir, untildify } from '../../common/utils/pathUtils';
1416

1517
async function getNativePythonToolsPath(): Promise<string> {
1618
const envsExt = getExtension(ENVS_EXTENSION_ID);

src/managers/common/utils.ts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,7 @@
1-
import * as os from 'os';
21
import { Package, PythonEnvironment } from '../../api';
32
import { showQuickPick } from '../../common/window.apis';
43
import { PackageManagement } from '../../common/localize';
54

6-
export function isWindows(): boolean {
7-
return process.platform === 'win32';
8-
}
9-
10-
export function untildify(path: string): string {
11-
return path.replace(/^~($|\/|\\)/, `${os.homedir()}$1`);
12-
}
13-
14-
export function getUserHomeDir(): string {
15-
return os.homedir();
16-
}
17-
185
export function noop() {
196
// do nothing
207
}

src/managers/conda/condaUtils.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,16 @@ import {
3434
import { getConfiguration } from '../../common/workspace.apis';
3535
import { getGlobalPersistentState, getWorkspacePersistentState } from '../../common/persistentState';
3636
import which from 'which';
37-
import { isWindows, shortVersion, sortEnvironments, untildify } from '../common/utils';
37+
import { shortVersion, sortEnvironments } from '../common/utils';
3838
import { pickProject } from '../../common/pickers/projects';
3939
import { CondaStrings, PackageManagement, Pickers } from '../../common/localize';
4040
import { showErrorMessage } from '../../common/errors/utils';
4141
import { showInputBox, showQuickPick, showQuickPickWithButtons, withProgress } from '../../common/window.apis';
4242
import { Installable, selectFromCommonPackagesToInstall } from '../common/pickers';
4343
import { quoteArgs } from '../../features/execution/execUtils';
4444
import { traceInfo } from '../../common/logging';
45+
import { untildify } from '../../common/utils/pathUtils';
46+
import { isWindows } from '../../common/utils/platformUtils';
4547

4648
export const CONDA_PATH_KEY = `${ENVS_EXTENSION_ID}:conda:CONDA_PATH`;
4749
export const CONDA_PREFIXES_KEY = `${ENVS_EXTENSION_ID}:conda:CONDA_PREFIXES`;

0 commit comments

Comments
 (0)