Skip to content

Commit c1035cd

Browse files
author
Kartik Raj
authored
Fix dependency cycle with windows store and hash provider factory (#15023)
* Fix dependency cycle with windows store and hash provider factory * Another cycle * Fix another cycle
1 parent 8e981bc commit c1035cd

File tree

8 files changed

+18
-26
lines changed

8 files changed

+18
-26
lines changed

src/client/interpreter/contracts.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
import { SemVer } from 'semver';
2-
import { CodeLensProvider, Disposable, Event, TextDocument, Uri } from 'vscode';
2+
import { CodeLensProvider, ConfigurationTarget, Disposable, Event, TextDocument, Uri } from 'vscode';
33
import { Resource } from '../common/types';
44
import { CondaEnvironmentInfo, CondaInfo } from '../pythonEnvironments/discovery/locators/services/conda';
5-
import { GetInterpreterLocatorOptions } from '../pythonEnvironments/discovery/locators/types';
65
import { EnvironmentType, PythonEnvironment } from '../pythonEnvironments/info';
7-
import { WorkspacePythonPath } from './helpers';
8-
import { GetInterpreterOptions } from './interpreterService';
96

107
export const INTERPRETER_LOCATOR_SERVICE = 'IInterpreterLocatorService';
118
export const WINDOWS_REGISTRY_SERVICE = 'WindowsRegistryService';
@@ -146,3 +143,14 @@ export interface IInterpreterStatusbarVisibilityFilter {
146143
readonly changed?: Event<void>;
147144
readonly hidden: boolean;
148145
}
146+
147+
export type WorkspacePythonPath = {
148+
folderUri: Uri;
149+
configTarget: ConfigurationTarget.Workspace | ConfigurationTarget.WorkspaceFolder;
150+
};
151+
152+
export type GetInterpreterOptions = {
153+
onSuggestion?: boolean;
154+
};
155+
156+
export type GetInterpreterLocatorOptions = GetInterpreterOptions & { ignoreCache?: boolean };

src/client/interpreter/helpers.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,12 @@ import {
1515
PythonEnvironment,
1616
sortInterpreters
1717
} from '../pythonEnvironments/info';
18-
import { IComponentAdapter, IInterpreterHelper } from './contracts';
18+
import { IComponentAdapter, IInterpreterHelper, WorkspacePythonPath } from './contracts';
1919
import { IInterpreterHashProviderFactory } from './locators/types';
2020

2121
const EXPITY_DURATION = 24 * 60 * 60 * 1000;
2222
type CachedPythonInterpreter = Partial<PythonEnvironment> & { fileHash: string };
2323

24-
export type WorkspacePythonPath = {
25-
folderUri: Uri;
26-
configTarget: ConfigurationTarget.Workspace | ConfigurationTarget.WorkspaceFolder;
27-
};
28-
2924
export function getFirstNonEmptyLineFromMultilineString(stdout: string) {
3025
if (!stdout) {
3126
return '';

src/client/interpreter/interpreterService.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { EnvironmentType, PythonEnvironment } from '../pythonEnvironments/info';
2525
import { captureTelemetry } from '../telemetry';
2626
import { EventName } from '../telemetry/constants';
2727
import {
28+
GetInterpreterOptions,
2829
IComponentAdapter,
2930
IInterpreterDisplay,
3031
IInterpreterHelper,
@@ -37,10 +38,6 @@ import { IVirtualEnvironmentManager } from './virtualEnvs/types';
3738

3839
const EXPITY_DURATION = 24 * 60 * 60 * 1000;
3940

40-
export type GetInterpreterOptions = {
41-
onSuggestion?: boolean;
42-
};
43-
4441
// The parts of IComponentAdapter used here.
4542
interface IComponent {
4643
getInterpreterDetails(pythonPath: string): Promise<undefined | PythonEnvironment>;

src/client/pythonEnvironments/discovery/locators/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
CONDA_ENV_FILE_SERVICE,
1818
CONDA_ENV_SERVICE,
1919
CURRENT_PATH_SERVICE,
20+
GetInterpreterLocatorOptions,
2021
GLOBAL_VIRTUAL_ENV_SERVICE,
2122
IComponentAdapter,
2223
IInterpreterLocatorHelper,
@@ -41,7 +42,6 @@ import {
4142
import { LazyResourceBasedLocator } from '../../base/locators/common/resourceBasedLocator';
4243
import { PythonEnvironment } from '../../info';
4344
import { isHiddenInterpreter } from './services/interpreterFilter';
44-
import { GetInterpreterLocatorOptions } from './types';
4545

4646
/**
4747
* A wrapper around all locators used by the extension.

src/client/pythonEnvironments/discovery/locators/services/cacheableLocatorService.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,11 @@ import { traceDecorators, traceVerbose } from '../../../../common/logger';
1515
import { IDisposableRegistry, IPersistentStateFactory } from '../../../../common/types';
1616
import { createDeferred, Deferred } from '../../../../common/utils/async';
1717
import { StopWatch } from '../../../../common/utils/stopWatch';
18-
import { IInterpreterLocatorService, IInterpreterWatcher } from '../../../../interpreter/contracts';
18+
import { GetInterpreterLocatorOptions, IInterpreterLocatorService, IInterpreterWatcher } from '../../../../interpreter/contracts';
1919
import { IServiceContainer } from '../../../../ioc/types';
2020
import { sendTelemetryEvent } from '../../../../telemetry';
2121
import { EventName } from '../../../../telemetry/constants';
2222
import { PythonEnvironment } from '../../../info';
23-
import { GetInterpreterLocatorOptions } from '../types';
2423

2524
/**
2625
* This class exists so that the interpreter fetching can be cached in between tests. Normally

src/client/pythonEnvironments/discovery/locators/services/pipEnvService.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@ import { IFileSystem, IPlatformService } from '../../../../common/platform/types
1010
import { IProcessServiceFactory } from '../../../../common/process/types';
1111
import { IConfigurationService, ICurrentProcess } from '../../../../common/types';
1212
import { StopWatch } from '../../../../common/utils/stopWatch';
13-
import { IInterpreterHelper, IPipEnvService } from '../../../../interpreter/contracts';
13+
import { GetInterpreterLocatorOptions, IInterpreterHelper, IPipEnvService } from '../../../../interpreter/contracts';
1414
import { IPipEnvServiceHelper } from '../../../../interpreter/locators/types';
1515
import { IServiceContainer } from '../../../../ioc/types';
1616
import { sendTelemetryEvent } from '../../../../telemetry';
1717
import { EventName } from '../../../../telemetry/constants';
1818
import { EnvironmentType, PythonEnvironment } from '../../../info';
19-
import { GetInterpreterLocatorOptions } from '../types';
2019
import { CacheableLocatorService } from './cacheableLocatorService';
2120

2221
const pipEnvFileNameVariable = 'PIPENV_PIPFILE';

src/client/pythonEnvironments/discovery/locators/types.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/client/pythonEnvironments/legacyIOC.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
CONDA_ENV_FILE_SERVICE,
1212
CONDA_ENV_SERVICE,
1313
CURRENT_PATH_SERVICE,
14+
GetInterpreterOptions,
1415
GLOBAL_VIRTUAL_ENV_SERVICE,
1516
IComponentAdapter,
1617
ICondaService,
@@ -27,7 +28,6 @@ import {
2728
WINDOWS_REGISTRY_SERVICE,
2829
WORKSPACE_VIRTUAL_ENV_SERVICE,
2930
} from '../interpreter/contracts';
30-
import { GetInterpreterOptions } from '../interpreter/interpreterService';
3131
import { IPipEnvServiceHelper, IPythonInPathCommandProvider } from '../interpreter/locators/types';
3232
import { IServiceManager } from '../ioc/types';
3333
import { PythonEnvInfo, PythonEnvKind, PythonReleaseLevel } from './base/info';

0 commit comments

Comments
 (0)