Skip to content

Commit 274544e

Browse files
committed
chore: refactor move some utility functions to common location
1 parent f0c3b39 commit 274544e

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,9 +1,9 @@
11
import * as os from 'os';
22
import { Terminal, TerminalShellType as TerminalShellTypeVscode } from 'vscode';
3-
import { isWindows } from '../../managers/common/utils';
43
import { vscodeShell } from '../../common/vscodeEnv.apis';
54
import { getConfiguration } from '../../common/workspace.apis';
65
import { TerminalShellType } from '../../api';
6+
import { isWindows } from '../../common/utils/platformUtils';
77

88
/*
99
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
@@ -19,7 +19,7 @@ import {
1919
NativePythonFinder,
2020
} from '../common/nativePythonFinder';
2121
import { getWorkspacePersistentState } from '../../common/persistentState';
22-
import { isWindows, shortVersion, sortEnvironments } from '../common/utils';
22+
import { shortVersion, sortEnvironments } from '../common/utils';
2323
import { getConfiguration } from '../../common/workspace.apis';
2424
import { pickEnvironmentFrom } from '../../common/pickers/environments';
2525
import {
@@ -33,6 +33,7 @@ import { showErrorMessage } from '../../common/errors/utils';
3333
import { Common, VenvManagerStrings } from '../../common/localize';
3434
import { isUvInstalled, runUV, runPython } from './helpers';
3535
import { getWorkspacePackagesToInstall } from './pipUtils';
36+
import { isWindows } from '../../common/utils/platformUtils';
3637

3738
export const VENV_WORKSPACE_KEY = `${ENVS_EXTENSION_ID}:venv:WORKSPACE_SELECTED`;
3839
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
@@ -35,14 +35,16 @@ import {
3535
import { getConfiguration } from '../../common/workspace.apis';
3636
import { getGlobalPersistentState, getWorkspacePersistentState } from '../../common/persistentState';
3737
import which from 'which';
38-
import { isWindows, shortVersion, sortEnvironments, untildify } from '../common/utils';
38+
import { shortVersion, sortEnvironments } from '../common/utils';
3939
import { pickProject } from '../../common/pickers/projects';
4040
import { CondaStrings, PackageManagement, Pickers } from '../../common/localize';
4141
import { showErrorMessage } from '../../common/errors/utils';
4242
import { showInputBox, showQuickPick, showQuickPickWithButtons, withProgress } from '../../common/window.apis';
4343
import { Installable, selectFromCommonPackagesToInstall } from '../common/pickers';
4444
import { quoteArgs } from '../../features/execution/execUtils';
4545
import { traceInfo } from '../../common/logging';
46+
import { untildify } from '../../common/utils/pathUtils';
47+
import { isWindows } from '../../common/utils/platformUtils';
4648

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

0 commit comments

Comments
 (0)