Skip to content

Commit 89524fa

Browse files
authored
Use is Python extension installed for setup (#4467)
1 parent 1513aa0 commit 89524fa

File tree

8 files changed

+30
-5
lines changed

8 files changed

+30
-5
lines changed

extension/src/setup/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,7 @@ export class Setup
430430
hasData,
431431
isAboveLatestTestedVersion: isAboveLatestTestedVersion(this.cliVersion),
432432
isPythonEnvironmentGlobal,
433+
isPythonExtensionInstalled: this.config.isPythonExtensionInstalled(),
433434
isPythonExtensionUsed,
434435
isStudioConnected: this.studioIsConnected,
435436
needsGitCommit,

extension/src/setup/webview/contract.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export type SetupData = {
1313
dvcCliDetails: DvcCliDetails | undefined
1414
hasData: boolean | undefined
1515
isPythonEnvironmentGlobal: boolean | undefined
16+
isPythonExtensionInstalled: boolean
1617
isPythonExtensionUsed: boolean
1718
isStudioConnected: boolean
1819
needsGitCommit: boolean

extension/src/test/suite/setup/index.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ suite('Setup Test Suite', () => {
375375
hasData: false,
376376
isAboveLatestTestedVersion: undefined,
377377
isPythonEnvironmentGlobal: false,
378+
isPythonExtensionInstalled: false,
378379
isPythonExtensionUsed: false,
379380
isStudioConnected: false,
380381
needsGitCommit: true,
@@ -420,6 +421,7 @@ suite('Setup Test Suite', () => {
420421
hasData: false,
421422
isAboveLatestTestedVersion: false,
422423
isPythonEnvironmentGlobal: false,
424+
isPythonExtensionInstalled: false,
423425
isPythonExtensionUsed: false,
424426
isStudioConnected: false,
425427
needsGitCommit: true,
@@ -473,6 +475,7 @@ suite('Setup Test Suite', () => {
473475
hasData: false,
474476
isAboveLatestTestedVersion: false,
475477
isPythonEnvironmentGlobal: false,
478+
isPythonExtensionInstalled: false,
476479
isPythonExtensionUsed: false,
477480
isStudioConnected: false,
478481
needsGitCommit: false,
@@ -526,6 +529,7 @@ suite('Setup Test Suite', () => {
526529
hasData: false,
527530
isAboveLatestTestedVersion: false,
528531
isPythonEnvironmentGlobal: false,
532+
isPythonExtensionInstalled: false,
529533
isPythonExtensionUsed: false,
530534
isStudioConnected: false,
531535
needsGitCommit: true,

webview/src/setup/components/App.test.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ const DEFAULT_DATA = {
3232
hasData: false,
3333
isAboveLatestTestedVersion: false,
3434
isPythonEnvironmentGlobal: false,
35+
isPythonExtensionInstalled: false,
3536
isPythonExtensionUsed: false,
3637
isStudioConnected: false,
3738
needsGitCommit: false,

webview/src/setup/components/App.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
updateDvcCliDetails,
2121
updateIsAboveLatestTestedVersion,
2222
updateIsPythonEnvironmentGlobal,
23+
updateIsPythonExtensionInstalled,
2324
updateIsPythonExtensionUsed,
2425
updateNeedsGitInitialized,
2526
updateProjectInitialized,
@@ -84,6 +85,11 @@ export const feedStore = (
8485
updateIsPythonEnvironmentGlobal(data.data.isPythonEnvironmentGlobal)
8586
)
8687
continue
88+
case 'isPythonExtensionInstalled':
89+
dispatch(
90+
updateIsPythonExtensionInstalled(data.data.isPythonExtensionInstalled)
91+
)
92+
continue
8793
case 'isPythonExtensionUsed':
8894
dispatch(updateIsPythonExtensionUsed(data.data.isPythonExtensionUsed))
8995
continue

webview/src/setup/components/dvc/CliUnavailable.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@ import { Warning } from '../../../shared/components/icons'
1313
import { ShowExtension } from '../remotes/ShowExtension'
1414

1515
export const CliUnavailable: React.FC<PropsWithChildren> = ({ children }) => {
16-
const { pythonBinPath, isPythonExtensionUsed, isPythonEnvironmentGlobal } =
17-
useSelector((state: SetupState) => state.dvc)
16+
const {
17+
pythonBinPath,
18+
isPythonExtensionInstalled,
19+
isPythonEnvironmentGlobal
20+
} = useSelector((state: SetupState) => state.dvc)
1821
const canInstall = !!pythonBinPath
1922
const installationSentence = (
2023
<>
@@ -58,13 +61,13 @@ export const CliUnavailable: React.FC<PropsWithChildren> = ({ children }) => {
5861
text="Install (pip)"
5962
/>
6063
<Button
61-
disabled={!isPythonExtensionUsed}
64+
disabled={!isPythonExtensionInstalled}
6265
onClick={updatePythonEnvironment}
6366
text="Set Env"
6467
/>
6568
<Button onClick={setupWorkspace} text="Locate DVC" />
6669
</div>
67-
{isPythonExtensionUsed || (
70+
{isPythonExtensionInstalled || (
6871
<ShowExtension
6972
className={styles.pythonExtInfo}
7073
id="ms-python.python"

webview/src/setup/state/dvcSlice.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export const dvcInitialState: DvcState = {
1616
dvcCliDetails: undefined,
1717
isAboveLatestTestedVersion: undefined,
1818
isPythonEnvironmentGlobal: undefined,
19+
isPythonExtensionInstalled: false,
1920
isPythonExtensionUsed: false,
2021
needsGitInitialized: false,
2122
projectInitialized: false,
@@ -54,6 +55,12 @@ export const dvcSlice = createSlice({
5455
) => {
5556
state.isPythonEnvironmentGlobal = action.payload
5657
},
58+
updateIsPythonExtensionInstalled: (
59+
state,
60+
action: PayloadAction<boolean>
61+
) => {
62+
state.isPythonExtensionInstalled = action.payload
63+
},
5764
updateIsPythonExtensionUsed: (state, action: PayloadAction<boolean>) => {
5865
state.isPythonExtensionUsed = action.payload
5966
},
@@ -78,6 +85,7 @@ export const {
7885
updateDvcCliDetails,
7986
updateIsAboveLatestTestedVersion,
8087
updateIsPythonEnvironmentGlobal,
88+
updateIsPythonExtensionInstalled,
8189
updateIsPythonExtensionUsed,
8290
updateNeedsGitInitialized,
8391
updateProjectInitialized,

webview/src/stories/Setup.stories.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const DEFAULT_DATA: SetupData = {
1818
hasData: false,
1919
isAboveLatestTestedVersion: false,
2020
isPythonEnvironmentGlobal: false,
21+
isPythonExtensionInstalled: true,
2122
isPythonExtensionUsed: true,
2223
isStudioConnected: true,
2324
needsGitCommit: false,
@@ -105,7 +106,7 @@ CLIPythonNotFound.args = getUpdatedArgs({
105106
command: 'dvc',
106107
version: undefined
107108
},
108-
isPythonExtensionUsed: false,
109+
isPythonExtensionInstalled: false,
109110
pythonBinPath: undefined
110111
})
111112

0 commit comments

Comments
 (0)