Skip to content

Commit 5c3a84d

Browse files
Add DisableableLocator.
1 parent c551b16 commit 5c3a84d

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

src/client/pythonEnvironments/base/locators.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
import { chain } from '../../common/utils/async';
55
import { PythonEnvInfo } from './info';
6-
import { ILocator, PythonEnvsIterator, PythonLocatorQuery } from './locator';
7-
import { PythonEnvsWatchers } from './watchers';
6+
import { ILocator, NOOP_ITERATOR, PythonEnvsIterator, PythonLocatorQuery } from './locator';
7+
import { DisableableEnvsWatcher, PythonEnvsWatchers } from './watchers';
88

99
/**
1010
* A wrapper around a set of locators.
@@ -24,3 +24,22 @@ export class Locators extends PythonEnvsWatchers {
2424
return chain<PythonEnvInfo>(iterators);
2525
}
2626
}
27+
28+
/**
29+
* A locator wrapper that can be disabled.
30+
*/
31+
export class DisableableLocator extends DisableableEnvsWatcher {
32+
constructor(
33+
// To wrapp more than one use `Locators`.
34+
private readonly locator: ILocator
35+
) {
36+
super(locator);
37+
}
38+
39+
public iterEnvs(query?: PythonLocatorQuery): PythonEnvsIterator {
40+
if (!this.isEnabled) {
41+
return NOOP_ITERATOR;
42+
}
43+
return this.locator.iterEnvs(query);
44+
}
45+
}

0 commit comments

Comments
 (0)