From 3689a45984f679ec99cc89374acded03193f93c2 Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Mon, 23 Sep 2024 19:09:49 +0200 Subject: [PATCH] Python NPW and Add SDK refactoring: In SDK: * `v1`: legacy API that should be dropped (but still used by Python Plugin and DS) * `v2`: slightly better API used both for new project and interpreter settings. Supports DSL UI validation. Must be adopted by DS and Python Plugin somehow. In NPW: * `newProject`, `newProject/steps` (aka `v1`) deprecated, used only by DS and Python Plugin. * `newProjectWizard` (aka PyV3): the right new API to use. Sooner or later will be adopted by DS and Python Plugin GitOrigin-RevId: c3d49ce95079dc5ba589955381ddfe42326295fd --- .../ide/impl/promotion/djangoProject.kt | 2 +- .../ide/impl/promotion/javaScriptProject.kt | 2 +- .../intellij.pycharm.community.ide.impl.xml | 10 +-- .../PyEnvironmentYmlSdkConfiguration.kt | 6 +- ...equirementsTxtOrSetupPySdkConfiguration.kt | 2 +- .../impl/newProject/steps/package-info.java | 6 ++ .../PyCharmNewProjectAction.java | 7 +- .../PyCharmNewProjectDialog.java | 6 +- .../impl/PyV3NewProjectStepAction.kt | 13 ++-- .../impl/PyV3ProjectSpecificStep.kt | 2 +- .../emptyProject/PyV3EmptyProjectGenerator.kt | 4 +- .../emptyProject/PyV3EmptyProjectSettings.kt | 4 +- .../impl/emptyProject/PyV3EmptyProjectUI.kt | 4 +- .../impl/emptyProject/package-info.java | 2 +- .../impl/package-info.java | 2 +- .../welcome/PyWelcome.kt | 16 ++--- .../welcome/PyWelcomeBundle.java | 4 +- .../welcome/PyWelcomeCollector.kt | 2 +- .../welcome/PyWelcomeSettings.kt | 4 +- .../welcome/package-info.java | 5 ++ .../pluginCore/resources/META-INF/plugin.xml | 4 +- .../ift/PythonBasedLangSupport.kt | 1 - .../newProject/NewProjectWizardPythonData.kt | 4 +- .../newProject/PythonProjectGenerator.java | 4 +- .../python/newProject/package-info.java | 7 ++ .../steps/ProjectSpecificSettingsStep.java | 4 +- .../newProject/steps/PyAddExistingSdkPanel.kt | 7 +- .../steps/PyAddNewEnvironmentPanel.kt | 8 +-- .../PythonProjectSpecificSettingsStep.kt | 4 +- .../python/newProject/steps/package-info.java | 7 ++ .../PyV3BaseProjectSettings.kt | 6 +- .../PythonNewProjectWizardCollector.kt | 2 +- .../python/newProjectWizard/impl/Py3VUI.kt | 2 +- .../promotion/PromoProjectGenerator.kt | 2 +- .../promotion/PromoStep.kt | 2 +- .../promotion/package-info.java | 2 +- .../packaging/conda/CondaPackageCache.kt | 2 +- ...thonInterpreterTargetEnvironmentFactory.kt | 2 +- .../src/com/jetbrains/python/sdk/PySdkExt.kt | 2 +- .../jetbrains/python/sdk/PythonSdkType.java | 2 +- .../sdk/add/ExistingPySdkComboBoxItem.kt | 6 ++ .../python/sdk/add/NewPySdkComboBoxItem.kt | 4 ++ .../python/sdk/add/PyAddNewEnvPanel.kt | 2 +- .../python/sdk/add/PyAddSdkDialog.kt | 70 ++++++++++++------- .../sdk/add/PyAddSdkDialogFlowAction.kt | 2 +- .../python/sdk/add/PyAddSdkGroupPanel.kt | 25 +++---- .../jetbrains/python/sdk/add/PyAddSdkPanel.kt | 15 ++-- .../python/sdk/add/PyAddSdkProvider.kt | 2 +- .../python/sdk/add/PyAddSdkStateListener.kt | 2 +- .../jetbrains/python/sdk/add/PyAddSdkView.kt | 3 +- .../python/sdk/add/PySdkComboBoxItem.kt | 12 +--- .../sdk/add/PySdkPathChoosingComboBox.kt | 4 +- .../python/sdk/add/package-info.java | 8 +++ .../sdk/add/target/PyInterpreterTargets.kt | 8 --- .../sdk/add/{target => v1}/BrowsePaths.kt | 2 +- .../conda => v1}/PyAddCondaPanelModel.kt | 10 ++- .../conda => v1}/PyAddCondaPanelView.kt | 6 +- .../{ => v1}/PyAddExistingCondaEnvPanel.kt | 16 +++-- .../{ => v1}/PyAddExistingVirtualEnvPanel.kt | 21 ++---- .../{ => v1}/PyAddNewCondaEnvFromFilePanel.kt | 5 +- .../sdk/add/{ => v1}/PyAddNewCondaEnvPanel.kt | 7 +- .../sdk/add/{ => v1}/PyAddNewEnvCollector.kt | 4 +- .../PyAddNewVirtualEnvFromFilePanel.kt | 29 ++++---- .../add/{ => v1}/PyAddNewVirtualEnvPanel.kt | 7 +- .../python/sdk/add/v1/PyAddSdkDialog.kt | 4 ++ .../add/{target => v1}/PyAddSdkPanelBase.kt | 8 +-- .../PyAddSystemWideInterpreterPanel.kt | 35 ++++------ .../PyAddTargetBasedSdkDialog.kt | 7 +- .../PyAddTargetBasedSdkPanel.kt | 19 ++--- .../{target => v1}/PyAddVirtualEnvPanel.kt | 33 ++++++--- .../conda => v1}/PyCondaLocalPathStorage.kt | 2 +- .../{target => v1}/PyDetectedSdkOnTarget.kt | 6 +- .../python/sdk/add/v1/PyInterpreterTargets.kt | 8 +++ .../python/sdk/add/v1/PySdkComboBoxItem.kt | 7 ++ .../add/{ => v1}/PySdkListCellRendererExt.kt | 9 ++- .../{target => v1}/TargetPanelExtension.kt | 6 +- .../python/sdk/add/v1/package-info.java | 11 +++ .../python/sdk/add/{ => v1}/wizardUIUtil.kt | 2 +- .../v2/CondaExistingEnvironmentSelector.kt | 2 +- .../sdk/add/v2/CondaNewEnvironmentCreator.kt | 4 +- .../sdk/add/v2/CustomNewEnvironmentCreator.kt | 2 +- .../add/{ => v2}/ProjectLocationContext.kt | 10 +-- .../python/sdk/add/{ => v2}/PySdkCreator.kt | 4 +- .../sdk/add/v2/PythonAddCustomInterpreter.kt | 2 +- .../add/v2/PythonAddInterpreterPresenter.kt | 4 +- .../add/v2/PythonAddNewEnvironmentPanel.kt | 3 +- .../v2/PythonExistingEnvironmentSelector.kt | 2 +- .../sdk/add/v2/PythonNewVirtualenvCreator.kt | 4 +- .../com/jetbrains/python/sdk/add/v2/common.kt | 2 +- .../jetbrains/python/sdk/add/v2/condaUtils.kt | 6 +- .../com/jetbrains/python/sdk/add/v2/models.kt | 2 +- .../python/sdk/add/v2/presentersExt.kt | 2 +- .../{add/target => }/conda/PyAddCondaTools.kt | 9 ++- .../PyProjectVirtualEnvConfiguration.kt | 6 +- .../python/sdk/flavors/conda/PyCondaEnv.kt | 5 +- .../python/sdk/pipenv/PyAddPipEnvPanel.kt | 2 +- .../poetry/ui/PyAddExistingPoetryEnvPanel.kt | 2 +- .../sdk/poetry/ui/PyAddNewPoetryPanel.kt | 17 +++-- .../python/target/PythonLanguageRuntimeUI.kt | 2 +- .../jetbrains/env/python/api/PythonType.kt | 2 +- .../env/python/conda/LocalCondaRule.kt | 4 +- .../python/conda/PyAddCondaPanelModelTest.kt | 2 +- .../env/python/conda/PyCondaSdkTest.kt | 4 +- .../jetbrains/env/python/conda/PyCondaTest.kt | 4 +- 104 files changed, 396 insertions(+), 316 deletions(-) create mode 100644 python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/steps/package-info.java rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/PyCharmNewProjectAction.java (72%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/PyCharmNewProjectDialog.java (68%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/impl/PyV3NewProjectStepAction.kt (86%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/impl/PyV3ProjectSpecificStep.kt (90%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/impl/emptyProject/PyV3EmptyProjectGenerator.kt (77%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/impl/emptyProject/PyV3EmptyProjectSettings.kt (87%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/impl/emptyProject/PyV3EmptyProjectUI.kt (77%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/impl/emptyProject/package-info.java (72%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/impl/package-info.java (72%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/welcome/PyWelcome.kt (93%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/welcome/PyWelcomeBundle.java (87%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/welcome/PyWelcomeCollector.kt (96%) rename python/ide/impl/src/com/intellij/pycharm/community/ide/impl/{newProject => newProjectWizard}/welcome/PyWelcomeSettings.kt (87%) create mode 100644 python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/package-info.java create mode 100644 python/src/com/jetbrains/python/newProject/package-info.java create mode 100644 python/src/com/jetbrains/python/newProject/steps/package-info.java rename python/src/com/jetbrains/python/{newProject => newProjectWizard}/collector/PythonNewProjectWizardCollector.kt (98%) rename python/src/com/jetbrains/python/{newProject => newProjectWizard}/promotion/PromoProjectGenerator.kt (94%) rename python/src/com/jetbrains/python/{newProject => newProjectWizard}/promotion/PromoStep.kt (91%) rename python/src/com/jetbrains/python/{newProject => newProjectWizard}/promotion/package-info.java (81%) create mode 100644 python/src/com/jetbrains/python/sdk/add/ExistingPySdkComboBoxItem.kt create mode 100644 python/src/com/jetbrains/python/sdk/add/NewPySdkComboBoxItem.kt create mode 100644 python/src/com/jetbrains/python/sdk/add/package-info.java delete mode 100644 python/src/com/jetbrains/python/sdk/add/target/PyInterpreterTargets.kt rename python/src/com/jetbrains/python/sdk/add/{target => v1}/BrowsePaths.kt (96%) rename python/src/com/jetbrains/python/sdk/add/{target/conda => v1}/PyAddCondaPanelModel.kt (95%) rename python/src/com/jetbrains/python/sdk/add/{target/conda => v1}/PyAddCondaPanelView.kt (95%) rename python/src/com/jetbrains/python/sdk/add/{ => v1}/PyAddExistingCondaEnvPanel.kt (83%) rename python/src/com/jetbrains/python/sdk/add/{ => v1}/PyAddExistingVirtualEnvPanel.kt (76%) rename python/src/com/jetbrains/python/sdk/add/{ => v1}/PyAddNewCondaEnvFromFilePanel.kt (94%) rename python/src/com/jetbrains/python/sdk/add/{ => v1}/PyAddNewCondaEnvPanel.kt (96%) rename python/src/com/jetbrains/python/sdk/add/{ => v1}/PyAddNewEnvCollector.kt (91%) rename python/src/com/jetbrains/python/sdk/add/{ => v1}/PyAddNewVirtualEnvFromFilePanel.kt (86%) rename python/src/com/jetbrains/python/sdk/add/{ => v1}/PyAddNewVirtualEnvPanel.kt (93%) create mode 100644 python/src/com/jetbrains/python/sdk/add/v1/PyAddSdkDialog.kt rename python/src/com/jetbrains/python/sdk/add/{target => v1}/PyAddSdkPanelBase.kt (83%) rename python/src/com/jetbrains/python/sdk/add/{ => v1}/PyAddSystemWideInterpreterPanel.kt (86%) rename python/src/com/jetbrains/python/sdk/add/{target => v1}/PyAddTargetBasedSdkDialog.kt (93%) rename python/src/com/jetbrains/python/sdk/add/{target => v1}/PyAddTargetBasedSdkPanel.kt (91%) rename python/src/com/jetbrains/python/sdk/add/{target => v1}/PyAddVirtualEnvPanel.kt (88%) rename python/src/com/jetbrains/python/sdk/add/{target/conda => v1}/PyCondaLocalPathStorage.kt (92%) rename python/src/com/jetbrains/python/sdk/add/{target => v1}/PyDetectedSdkOnTarget.kt (87%) create mode 100644 python/src/com/jetbrains/python/sdk/add/v1/PyInterpreterTargets.kt create mode 100644 python/src/com/jetbrains/python/sdk/add/v1/PySdkComboBoxItem.kt rename python/src/com/jetbrains/python/sdk/add/{ => v1}/PySdkListCellRendererExt.kt (68%) rename python/src/com/jetbrains/python/sdk/add/{target => v1}/TargetPanelExtension.kt (81%) create mode 100644 python/src/com/jetbrains/python/sdk/add/v1/package-info.java rename python/src/com/jetbrains/python/sdk/add/{ => v1}/wizardUIUtil.kt (98%) rename python/src/com/jetbrains/python/sdk/add/{ => v2}/ProjectLocationContext.kt (83%) rename python/src/com/jetbrains/python/sdk/add/{ => v2}/PySdkCreator.kt (82%) rename python/src/com/jetbrains/python/sdk/{add/target => }/conda/PyAddCondaTools.kt (96%) diff --git a/python/ide/impl/intellij.pycharm.community.ide.impl.promotion/src/com/intellij/pycharm/community/ide/impl/promotion/djangoProject.kt b/python/ide/impl/intellij.pycharm.community.ide.impl.promotion/src/com/intellij/pycharm/community/ide/impl/promotion/djangoProject.kt index 5a8a7d1e8919..ccc8e6dcc8d5 100644 --- a/python/ide/impl/intellij.pycharm.community.ide.impl.promotion/src/com/intellij/pycharm/community/ide/impl/promotion/djangoProject.kt +++ b/python/ide/impl/intellij.pycharm.community.ide.impl.promotion/src/com/intellij/pycharm/community/ide/impl/promotion/djangoProject.kt @@ -10,7 +10,7 @@ import com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.PromoPages import com.intellij.openapi.util.NlsSafe import com.intellij.pycharm.community.ide.impl.PyCharmCommunityCustomizationBundle import com.jetbrains.python.icons.PythonIcons -import com.jetbrains.python.newProject.promotion.PromoProjectGenerator +import com.jetbrains.python.newProjectWizard.promotion.PromoProjectGenerator import javax.swing.Icon import javax.swing.JPanel diff --git a/python/ide/impl/intellij.pycharm.community.ide.impl.promotion/src/com/intellij/pycharm/community/ide/impl/promotion/javaScriptProject.kt b/python/ide/impl/intellij.pycharm.community.ide.impl.promotion/src/com/intellij/pycharm/community/ide/impl/promotion/javaScriptProject.kt index aac0b40491c1..dd463f7a4bc6 100644 --- a/python/ide/impl/intellij.pycharm.community.ide.impl.promotion/src/com/intellij/pycharm/community/ide/impl/promotion/javaScriptProject.kt +++ b/python/ide/impl/intellij.pycharm.community.ide.impl.promotion/src/com/intellij/pycharm/community/ide/impl/promotion/javaScriptProject.kt @@ -9,7 +9,7 @@ import com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.PromoFeatur import com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.PromoPages import com.intellij.openapi.util.NlsSafe import com.jetbrains.python.icons.PythonIcons -import com.jetbrains.python.newProject.promotion.PromoProjectGenerator +import com.jetbrains.python.newProjectWizard.promotion.PromoProjectGenerator import javax.swing.Icon import javax.swing.JPanel diff --git a/python/ide/impl/resources/intellij.pycharm.community.ide.impl.xml b/python/ide/impl/resources/intellij.pycharm.community.ide.impl.xml index 1b354cd9dec0..8fd4232d0eb0 100644 --- a/python/ide/impl/resources/intellij.pycharm.community.ide.impl.xml +++ b/python/ide/impl/resources/intellij.pycharm.community.ide.impl.xml @@ -43,7 +43,7 @@ - - - + + @@ -98,13 +98,13 @@ - + + class="com.intellij.pycharm.community.ide.impl.newProjectWizard.impl.PyV3NewProjectStepAction"/> diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyEnvironmentYmlSdkConfiguration.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyEnvironmentYmlSdkConfiguration.kt index b0db66bffadd..36c73c9ff12b 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyEnvironmentYmlSdkConfiguration.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyEnvironmentYmlSdkConfiguration.kt @@ -26,9 +26,9 @@ import com.jetbrains.python.configuration.PyConfigurableInterpreterList import com.jetbrains.python.pathValidation.PlatformAndRoot import com.jetbrains.python.psi.PyUtil import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory -import com.jetbrains.python.sdk.add.PyAddNewCondaEnvFromFilePanel -import com.jetbrains.python.sdk.add.target.conda.createCondaSdkAlongWithNewEnv -import com.jetbrains.python.sdk.add.target.conda.suggestCondaPath +import com.jetbrains.python.sdk.add.v1.PyAddNewCondaEnvFromFilePanel +import com.jetbrains.python.sdk.conda.createCondaSdkAlongWithNewEnv +import com.jetbrains.python.sdk.conda.suggestCondaPath import com.jetbrains.python.sdk.conda.PyCondaSdkCustomizer import com.intellij.pycharm.community.ide.impl.configuration.PySdkConfigurationCollector.CondaEnvResult import com.intellij.pycharm.community.ide.impl.configuration.PySdkConfigurationCollector.InputData diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyRequirementsTxtOrSetupPySdkConfiguration.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyRequirementsTxtOrSetupPySdkConfiguration.kt index d6ac5ae30343..2ddeec4819bb 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyRequirementsTxtOrSetupPySdkConfiguration.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/configuration/PyRequirementsTxtOrSetupPySdkConfiguration.kt @@ -37,7 +37,7 @@ import com.jetbrains.python.packaging.PyPackageUtil import com.jetbrains.python.packaging.PyTargetEnvironmentPackageManager import com.jetbrains.python.requirements.RequirementsFileType import com.jetbrains.python.sdk.* -import com.jetbrains.python.sdk.add.PyAddNewVirtualEnvFromFilePanel +import com.jetbrains.python.sdk.add.v1.PyAddNewVirtualEnvFromFilePanel import com.jetbrains.python.sdk.configuration.PyProjectSdkConfigurationExtension import com.jetbrains.python.sdk.configuration.createVirtualEnvSynchronously import java.awt.BorderLayout diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/steps/package-info.java b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/steps/package-info.java new file mode 100644 index 000000000000..66bbe215bbdb --- /dev/null +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/steps/package-info.java @@ -0,0 +1,6 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +/** + * @deprecated use {@link com.intellij.pycharm.community.ide.impl.newProjectWizard} + */ +@Deprecated +package com.intellij.pycharm.community.ide.impl.newProject.steps; \ No newline at end of file diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/PyCharmNewProjectAction.java b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/PyCharmNewProjectAction.java similarity index 72% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/PyCharmNewProjectAction.java rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/PyCharmNewProjectAction.java index 7d13802fd76f..27d654f495f7 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/PyCharmNewProjectAction.java +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/PyCharmNewProjectAction.java @@ -1,11 +1,14 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject; +package com.intellij.pycharm.community.ide.impl.newProjectWizard; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.project.DumbAwareAction; import org.jetbrains.annotations.NotNull; -public final class PyCharmNewProjectAction extends DumbAwareAction { +/** + * New project wizard entry point + */ +final class PyCharmNewProjectAction extends DumbAwareAction { @Override public void actionPerformed(@NotNull final AnActionEvent e) { diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/PyCharmNewProjectDialog.java b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/PyCharmNewProjectDialog.java similarity index 68% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/PyCharmNewProjectDialog.java rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/PyCharmNewProjectDialog.java index d1f712d000ad..66f0160a6696 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/PyCharmNewProjectDialog.java +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/PyCharmNewProjectDialog.java @@ -1,12 +1,12 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject; +package com.intellij.pycharm.community.ide.impl.newProjectWizard; import com.intellij.ide.util.projectWizard.AbstractNewProjectDialog; import com.intellij.ide.util.projectWizard.AbstractNewProjectStep; -import com.intellij.pycharm.community.ide.impl.newProject.impl.PyV3NewProjectStepAction; +import com.intellij.pycharm.community.ide.impl.newProjectWizard.impl.PyV3NewProjectStepAction; import org.jetbrains.annotations.NotNull; -public final class PyCharmNewProjectDialog extends AbstractNewProjectDialog { +final class PyCharmNewProjectDialog extends AbstractNewProjectDialog { @Override protected @NotNull AbstractNewProjectStep createNewProjectStep() { return new PyV3NewProjectStepAction(); diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/PyV3NewProjectStepAction.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/PyV3NewProjectStepAction.kt similarity index 86% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/PyV3NewProjectStepAction.kt rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/PyV3NewProjectStepAction.kt index 6762b6f141e0..47d0d73cb2f6 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/PyV3NewProjectStepAction.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/PyV3NewProjectStepAction.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject.impl +package com.intellij.pycharm.community.ide.impl.newProjectWizard.impl import com.intellij.ide.util.projectWizard.AbstractNewProjectStep import com.intellij.ide.util.projectWizard.ProjectSettingsStepBase @@ -8,15 +8,15 @@ import com.intellij.openapi.actionSystem.DefaultActionGroup import com.intellij.openapi.wm.impl.welcomeScreen.collapsedActionGroup.CollapsedActionGroup import com.intellij.platform.DirectoryProjectGenerator import com.intellij.pycharm.community.ide.impl.PyCharmCommunityCustomizationBundle -import com.intellij.pycharm.community.ide.impl.newProject.impl.emptyProject.PyV3EmptyProjectGenerator +import com.intellij.pycharm.community.ide.impl.newProjectWizard.impl.emptyProject.PyV3EmptyProjectGenerator import com.intellij.pycharm.community.ide.impl.newProject.steps.PythonGenerateProjectCallback import com.jetbrains.python.newProject.PyNewProjectSettings import com.jetbrains.python.newProject.PythonProjectGenerator -import com.jetbrains.python.newProject.promotion.PromoProjectGenerator -import com.jetbrains.python.newProject.promotion.PromoStep import com.jetbrains.python.newProject.steps.PythonProjectSpecificSettingsStep import com.jetbrains.python.newProjectWizard.PyV3BaseProjectSettings import com.jetbrains.python.newProjectWizard.PyV3ProjectBaseGenerator +import com.jetbrains.python.newProjectWizard.promotion.PromoProjectGenerator +import com.jetbrains.python.newProjectWizard.promotion.PromoStep internal class PyV3NewProjectStepAction : AbstractNewProjectStep(PyV3Customization) { @@ -60,7 +60,8 @@ internal class PyV3NewProjectStepAction : AbstractNewProjectStep): ProjectSettingsStepBase { - return PythonProjectSpecificSettingsStep(projectGenerator as PythonProjectGenerator, PythonGenerateProjectCallback()) as ProjectSettingsStepBase + return PythonProjectSpecificSettingsStep(projectGenerator as PythonProjectGenerator, + PythonGenerateProjectCallback()) as ProjectSettingsStepBase } } -} +} \ No newline at end of file diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/PyV3ProjectSpecificStep.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/PyV3ProjectSpecificStep.kt similarity index 90% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/PyV3ProjectSpecificStep.kt rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/PyV3ProjectSpecificStep.kt index d203a346b957..d0225a974c70 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/PyV3ProjectSpecificStep.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/PyV3ProjectSpecificStep.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject.impl +package com.intellij.pycharm.community.ide.impl.newProjectWizard.impl import com.intellij.ide.util.projectWizard.AbstractNewProjectStep import com.intellij.ide.util.projectWizard.ProjectSettingsStepBase diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/PyV3EmptyProjectGenerator.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/PyV3EmptyProjectGenerator.kt similarity index 77% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/PyV3EmptyProjectGenerator.kt rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/PyV3EmptyProjectGenerator.kt index baac07c0a4a1..3522890fbd33 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/PyV3EmptyProjectGenerator.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/PyV3EmptyProjectGenerator.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject.impl.emptyProject +package com.intellij.pycharm.community.ide.impl.newProjectWizard.impl.emptyProject import com.jetbrains.python.newProjectWizard.PyV3ProjectBaseGenerator import com.jetbrains.python.PyBundle @@ -7,7 +7,7 @@ import com.jetbrains.python.psi.icons.PythonPsiApiIcons import org.jetbrains.annotations.Nls import javax.swing.Icon -class PyV3EmptyProjectGenerator : PyV3ProjectBaseGenerator( +internal class PyV3EmptyProjectGenerator : PyV3ProjectBaseGenerator( PyV3EmptyProjectSettings(generateWelcomeScript = false), PyV3EmptyProjectUI, _newProjectName = "PythonProject") { override fun getName(): @Nls String = PyBundle.message("pure.python.project") diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/PyV3EmptyProjectSettings.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/PyV3EmptyProjectSettings.kt similarity index 87% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/PyV3EmptyProjectSettings.kt rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/PyV3EmptyProjectSettings.kt index 656b43ee7997..fb9a8a58f164 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/PyV3EmptyProjectSettings.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/PyV3EmptyProjectSettings.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject.impl.emptyProject +package com.intellij.pycharm.community.ide.impl.newProjectWizard.impl.emptyProject import com.intellij.openapi.application.EDT import com.intellij.openapi.application.writeAction @@ -8,7 +8,7 @@ import com.intellij.openapi.module.Module import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.vfs.VirtualFile import com.jetbrains.python.newProjectWizard.PyV3ProjectTypeSpecificSettings -import com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcome +import com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome.PyWelcome import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/PyV3EmptyProjectUI.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/PyV3EmptyProjectUI.kt similarity index 77% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/PyV3EmptyProjectUI.kt rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/PyV3EmptyProjectUI.kt index 44c8998a2703..1acb766c1fa7 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/PyV3EmptyProjectUI.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/PyV3EmptyProjectUI.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject.impl.emptyProject +package com.intellij.pycharm.community.ide.impl.newProjectWizard.impl.emptyProject import com.intellij.ui.dsl.builder.Panel import com.jetbrains.python.newProjectWizard.PyV3ProjectTypeSpecificUI @@ -7,7 +7,7 @@ import com.intellij.ui.dsl.builder.Row import com.intellij.ui.dsl.builder.bindSelected import com.jetbrains.python.PyBundle -object PyV3EmptyProjectUI : PyV3ProjectTypeSpecificUI { +internal object PyV3EmptyProjectUI : PyV3ProjectTypeSpecificUI { override fun configureUpperPanel(settings: PyV3EmptyProjectSettings, checkBoxRow: Row, belowCheckBoxes: Panel) { checkBoxRow.checkBox(PyBundle.message("new.project.welcome")).bindSelected(settings::generateWelcomeScript) } diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/package-info.java b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/package-info.java similarity index 72% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/package-info.java rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/package-info.java index f2ba461cedb9..32e509981ba2 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/emptyProject/package-info.java +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/emptyProject/package-info.java @@ -3,6 +3,6 @@ * Project without any framework */ @ApiStatus.Internal -package com.intellij.pycharm.community.ide.impl.newProject.impl.emptyProject; +package com.intellij.pycharm.community.ide.impl.newProjectWizard.impl.emptyProject; import org.jetbrains.annotations.ApiStatus; \ No newline at end of file diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/package-info.java b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/package-info.java similarity index 72% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/package-info.java rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/package-info.java index 93b33832ec28..a646355cb6b3 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/impl/package-info.java +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/impl/package-info.java @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. @ApiStatus.Internal -package com.intellij.pycharm.community.ide.impl.newProject.impl; +package com.intellij.pycharm.community.ide.impl.newProjectWizard.impl; import org.jetbrains.annotations.ApiStatus; \ No newline at end of file diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcome.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcome.kt similarity index 93% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcome.kt rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcome.kt index 8156596112a1..5e3c4da13310 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcome.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcome.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject.welcome +package com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome import com.intellij.execution.RunManager import com.intellij.execution.actions.ConfigurationContext @@ -35,12 +35,12 @@ import com.intellij.platform.DirectoryProjectConfigurator import com.intellij.psi.PsiDocumentManager import com.intellij.psi.PsiFile import com.intellij.psi.PsiManager -import com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeCollector.ProjectType -import com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeCollector.ProjectViewPoint -import com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeCollector.ProjectViewResult -import com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeCollector.RunConfigurationResult -import com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeCollector.ScriptResult -import com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeCollector.logWelcomeRunConfiguration +import com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome.PyWelcomeCollector.ProjectType +import com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome.PyWelcomeCollector.ProjectViewPoint +import com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome.PyWelcomeCollector.ProjectViewResult +import com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome.PyWelcomeCollector.RunConfigurationResult +import com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome.PyWelcomeCollector.ScriptResult +import com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome.PyWelcomeCollector.logWelcomeRunConfiguration import com.intellij.util.concurrency.annotations.RequiresWriteLock import com.intellij.xdebugger.XDebuggerUtil import com.jetbrains.python.PythonPluginDisposable @@ -74,7 +74,7 @@ internal class PyWelcomeConfigurator : DirectoryProjectConfigurator { } } -object PyWelcome { +internal object PyWelcome { private val LOG = Logger.getInstance(PyWelcome::class.java) @CalledInAny diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcomeBundle.java b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcomeBundle.java similarity index 87% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcomeBundle.java rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcomeBundle.java index 1ba80a1e1830..147f97e7528c 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcomeBundle.java +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcomeBundle.java @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject.welcome; +package com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome; import com.intellij.DynamicBundle; import org.jetbrains.annotations.Nls; @@ -7,7 +7,7 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.PropertyKey; -public final class PyWelcomeBundle { +final class PyWelcomeBundle { private static final @NonNls String BUNDLE = "messages.PyWelcomeBundle"; private static final DynamicBundle INSTANCE = new DynamicBundle(PyWelcomeBundle.class, BUNDLE); diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcomeCollector.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcomeCollector.kt similarity index 96% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcomeCollector.kt rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcomeCollector.kt index 94d9374c9411..1610578047b4 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcomeCollector.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcomeCollector.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject.welcome +package com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome import com.intellij.internal.statistic.eventLog.EventLogGroup import com.intellij.internal.statistic.eventLog.events.EventFields diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcomeSettings.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcomeSettings.kt similarity index 87% rename from python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcomeSettings.kt rename to python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcomeSettings.kt index bc53b7a93607..1b71cd5f0136 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProject/welcome/PyWelcomeSettings.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/PyWelcomeSettings.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.pycharm.community.ide.impl.newProject.welcome +package com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.components.PersistentStateComponent @@ -8,7 +8,7 @@ import com.intellij.openapi.components.Storage import com.intellij.util.xmlb.XmlSerializerUtil @State(name = "PyWelcomeSettings", storages = [Storage("pyWelcome.xml")], reportStatistic = true) -class PyWelcomeSettings : PersistentStateComponent { +internal class PyWelcomeSettings : PersistentStateComponent { companion object { @JvmStatic val instance: PyWelcomeSettings diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/package-info.java b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/package-info.java new file mode 100644 index 000000000000..7a0057b0a2d7 --- /dev/null +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/newProjectWizard/welcome/package-info.java @@ -0,0 +1,5 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +/** + * Various tools to create a welcome script + */ +package com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome; \ No newline at end of file diff --git a/python/pluginCore/resources/META-INF/plugin.xml b/python/pluginCore/resources/META-INF/plugin.xml index 0fc970ceee8d..b5da72640279 100644 --- a/python/pluginCore/resources/META-INF/plugin.xml +++ b/python/pluginCore/resources/META-INF/plugin.xml @@ -506,7 +506,7 @@ The Python plug-in provides smart editing for Python scripts. The feature set of - + @@ -580,7 +580,7 @@ The Python plug-in provides smart editing for Python scripts. The feature set of icon="com.jetbrains.python.icons.PythonIcons.Python.PythonPackages" factoryClass="com.jetbrains.python.packaging.toolwindow.PyPackagesToolWindowFactory"/> - + diff --git a/python/python-features-trainer/src/com/intellij/python/featuresTrainer/ift/PythonBasedLangSupport.kt b/python/python-features-trainer/src/com/intellij/python/featuresTrainer/ift/PythonBasedLangSupport.kt index abd664eb475f..86fb85d28ec1 100644 --- a/python/python-features-trainer/src/com/intellij/python/featuresTrainer/ift/PythonBasedLangSupport.kt +++ b/python/python-features-trainer/src/com/intellij/python/featuresTrainer/ift/PythonBasedLangSupport.kt @@ -4,7 +4,6 @@ package com.intellij.python.featuresTrainer.ift import com.intellij.ide.impl.OpenProjectTask import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.invokeLater -import com.intellij.openapi.diagnostic.getOrLogException import com.intellij.openapi.module.Module import com.intellij.openapi.project.Project import com.intellij.openapi.project.ProjectManager diff --git a/python/src/com/jetbrains/python/newProject/NewProjectWizardPythonData.kt b/python/src/com/jetbrains/python/newProject/NewProjectWizardPythonData.kt index 08e2dd00b0f4..61e6297ea5f2 100644 --- a/python/src/com/jetbrains/python/newProject/NewProjectWizardPythonData.kt +++ b/python/src/com/jetbrains/python/newProject/NewProjectWizardPythonData.kt @@ -23,8 +23,8 @@ import com.jetbrains.python.newProject.steps.ProjectSpecificSettingsStep import com.jetbrains.python.newProject.steps.PyAddExistingSdkPanel import com.jetbrains.python.sdk.PySdkProvider import com.jetbrains.python.sdk.PySdkSettings -import com.jetbrains.python.sdk.add.PyAddNewCondaEnvPanel -import com.jetbrains.python.sdk.add.PyAddNewVirtualEnvPanel +import com.jetbrains.python.sdk.add.v1.PyAddNewCondaEnvPanel +import com.jetbrains.python.sdk.add.v1.PyAddNewVirtualEnvPanel import com.jetbrains.python.sdk.add.PyAddSdkPanel import com.jetbrains.python.sdk.configurePythonSdk import java.nio.file.Path diff --git a/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java b/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java index 95553c407f93..4710915a2c24 100644 --- a/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java +++ b/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java @@ -21,8 +21,8 @@ import com.intellij.platform.DirectoryProjectGeneratorBase; import com.intellij.util.containers.ContainerUtil; import com.jetbrains.python.PyBundle; import com.jetbrains.python.PyPsiPackageUtil; -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo; -import com.jetbrains.python.newProject.collector.PythonNewProjectWizardCollector; +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo; +import com.jetbrains.python.newProjectWizard.collector.PythonNewProjectWizardCollector; import com.jetbrains.python.packaging.PyPackage; import com.jetbrains.python.packaging.PyPackageManager; import com.jetbrains.python.packaging.PyPackageUtil; diff --git a/python/src/com/jetbrains/python/newProject/package-info.java b/python/src/com/jetbrains/python/newProject/package-info.java new file mode 100644 index 000000000000..4f89a77cca49 --- /dev/null +++ b/python/src/com/jetbrains/python/newProject/package-info.java @@ -0,0 +1,7 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +/** + * Legacy (V1) new project API. Only used by DS (will be migrated soon), external plugins and python plugin. + * @deprecated Use {@link com.jetbrains.python.newProjectWizard} + */ +@Deprecated +package com.jetbrains.python.newProject; \ No newline at end of file diff --git a/python/src/com/jetbrains/python/newProject/steps/ProjectSpecificSettingsStep.java b/python/src/com/jetbrains/python/newProject/steps/ProjectSpecificSettingsStep.java index 44fcd1ad8259..492eae719c8a 100644 --- a/python/src/com/jetbrains/python/newProject/steps/ProjectSpecificSettingsStep.java +++ b/python/src/com/jetbrains/python/newProject/steps/ProjectSpecificSettingsStep.java @@ -14,7 +14,6 @@ import com.intellij.openapi.ui.LabeledComponent; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.ui.VerticalFlowLayout; import com.intellij.openapi.util.Pair; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.HtmlChunk; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.util.text.TextWithMnemonic; @@ -29,10 +28,9 @@ import com.jetbrains.python.configuration.PyConfigurableInterpreterList; import com.jetbrains.python.newProject.PyFrameworkProjectGenerator; import com.jetbrains.python.newProject.PyNewProjectSettings; import com.jetbrains.python.newProject.PythonProjectGenerator; -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo; +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo; import com.jetbrains.python.packaging.PyPackage; import com.jetbrains.python.packaging.PyPackageUtil; -import com.jetbrains.python.psi.PyUtil; import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory; import com.jetbrains.python.sdk.*; import com.jetbrains.python.sdk.add.PyAddSdkGroupPanel; diff --git a/python/src/com/jetbrains/python/newProject/steps/PyAddExistingSdkPanel.kt b/python/src/com/jetbrains/python/newProject/steps/PyAddExistingSdkPanel.kt index b7cf18113650..a2160818ecb1 100644 --- a/python/src/com/jetbrains/python/newProject/steps/PyAddExistingSdkPanel.kt +++ b/python/src/com/jetbrains/python/newProject/steps/PyAddExistingSdkPanel.kt @@ -11,18 +11,15 @@ import com.intellij.openapi.ui.ComboBox import com.intellij.openapi.ui.DialogWrapper import com.intellij.openapi.ui.ValidationInfo import com.intellij.openapi.ui.popup.JBPopupFactory -import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.util.component1 import com.intellij.openapi.util.component2 -import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.util.text.StringUtil import com.intellij.util.PathMappingSettings import com.intellij.util.ui.FormBuilder -import com.intellij.util.ui.UIUtil import com.jetbrains.python.PyBundle import com.jetbrains.python.PySdkBundle import com.jetbrains.python.Result -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.remote.PyProjectSynchronizer import com.jetbrains.python.remote.PyProjectSynchronizerProvider import com.jetbrains.python.remote.PythonSshInterpreterManager @@ -39,7 +36,7 @@ import java.awt.Component import javax.swing.JComboBox import javax.swing.JComponent -class PyAddExistingSdkPanel(project: Project?, +internal class PyAddExistingSdkPanel(project: Project?, module: Module?, existingSdks: List, newProjectPath: String?, diff --git a/python/src/com/jetbrains/python/newProject/steps/PyAddNewEnvironmentPanel.kt b/python/src/com/jetbrains/python/newProject/steps/PyAddNewEnvironmentPanel.kt index b9f831b3a9b6..ac6174da76ec 100644 --- a/python/src/com/jetbrains/python/newProject/steps/PyAddNewEnvironmentPanel.kt +++ b/python/src/com/jetbrains/python/newProject/steps/PyAddNewEnvironmentPanel.kt @@ -8,12 +8,12 @@ import com.intellij.openapi.util.UserDataHolder import com.intellij.openapi.util.UserDataHolderBase import com.intellij.ui.SimpleListCellRenderer import com.intellij.util.ui.FormBuilder -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.sdk.PySdkProvider import com.jetbrains.python.sdk.PySdkSettings -import com.jetbrains.python.sdk.add.PyAddNewCondaEnvPanel +import com.jetbrains.python.sdk.add.v1.PyAddNewCondaEnvPanel import com.jetbrains.python.sdk.add.PyAddNewEnvPanel -import com.jetbrains.python.sdk.add.PyAddNewVirtualEnvPanel +import com.jetbrains.python.sdk.add.v1.PyAddNewVirtualEnvPanel import com.jetbrains.python.sdk.add.PyAddSdkPanel import com.jetbrains.python.sdk.add.v2.PythonInterpreterSelectionMode import com.jetbrains.python.sdk.conda.PyCondaSdkCustomizer @@ -21,7 +21,7 @@ import java.awt.BorderLayout import java.awt.event.ItemEvent import javax.swing.JComboBox -class PyAddNewEnvironmentPanel internal constructor(existingSdks: List, newProjectPath: String?, preferredInterpreterType: PythonInterpreterSelectionMode? = null) : PyAddSdkPanel() { +internal class PyAddNewEnvironmentPanel internal constructor(existingSdks: List, newProjectPath: String?, preferredInterpreterType: PythonInterpreterSelectionMode? = null) : PyAddSdkPanel() { @Deprecated(message = "Use constructor without ignored") constructor(existingSdks: List, newProjectPath: String?, @Suppress("UNUSED_PARAMETER") ignored: String?) : this(existingSdks, newProjectPath, preferredInterpreterType = null) diff --git a/python/src/com/jetbrains/python/newProject/steps/PythonProjectSpecificSettingsStep.kt b/python/src/com/jetbrains/python/newProject/steps/PythonProjectSpecificSettingsStep.kt index 99567ff5197b..271ba374d237 100644 --- a/python/src/com/jetbrains/python/newProject/steps/PythonProjectSpecificSettingsStep.kt +++ b/python/src/com/jetbrains/python/newProject/steps/PythonProjectSpecificSettingsStep.kt @@ -29,8 +29,8 @@ import com.intellij.util.concurrency.annotations.RequiresEdt import com.jetbrains.python.PyBundle.message import com.jetbrains.python.newProject.PyNewProjectSettings import com.jetbrains.python.newProject.PythonProjectGenerator -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo -import com.jetbrains.python.newProject.promotion.PromoProjectGenerator +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.promotion.PromoProjectGenerator import com.jetbrains.python.sdk.PyLazySdk import com.jetbrains.python.sdk.add.v2.PythonAddNewEnvironmentPanel import com.jetbrains.python.util.ShowingMessageErrorSync diff --git a/python/src/com/jetbrains/python/newProject/steps/package-info.java b/python/src/com/jetbrains/python/newProject/steps/package-info.java new file mode 100644 index 000000000000..11c129a26b2f --- /dev/null +++ b/python/src/com/jetbrains/python/newProject/steps/package-info.java @@ -0,0 +1,7 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +/** + * Legacy (V1) new project API. Only used by DS (will be migrated soon), external plugins and python plugin. + * @deprecated Use {@link com.jetbrains.python.newProjectWizard} + */ +@Deprecated +package com.jetbrains.python.newProject.steps; \ No newline at end of file diff --git a/python/src/com/jetbrains/python/newProjectWizard/PyV3BaseProjectSettings.kt b/python/src/com/jetbrains/python/newProjectWizard/PyV3BaseProjectSettings.kt index ab26fbf886b4..f3f3e63cd1ef 100644 --- a/python/src/com/jetbrains/python/newProjectWizard/PyV3BaseProjectSettings.kt +++ b/python/src/com/jetbrains/python/newProjectWizard/PyV3BaseProjectSettings.kt @@ -8,10 +8,10 @@ import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.vfs.VirtualFile import com.intellij.platform.ide.progress.withBackgroundProgress import com.jetbrains.python.PyBundle -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo -import com.jetbrains.python.newProject.collector.PythonNewProjectWizardCollector.logPythonNewProjectGenerated +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.PythonNewProjectWizardCollector.logPythonNewProjectGenerated import com.jetbrains.python.sdk.ModuleOrProject -import com.jetbrains.python.sdk.add.PySdkCreator +import com.jetbrains.python.sdk.add.v2.PySdkCreator import com.jetbrains.python.sdk.pythonSdk import com.jetbrains.python.sdk.setAssociationToModule import com.jetbrains.python.statistics.version diff --git a/python/src/com/jetbrains/python/newProject/collector/PythonNewProjectWizardCollector.kt b/python/src/com/jetbrains/python/newProjectWizard/collector/PythonNewProjectWizardCollector.kt similarity index 98% rename from python/src/com/jetbrains/python/newProject/collector/PythonNewProjectWizardCollector.kt rename to python/src/com/jetbrains/python/newProjectWizard/collector/PythonNewProjectWizardCollector.kt index f73057073609..e4d48f1a11ac 100644 --- a/python/src/com/jetbrains/python/newProject/collector/PythonNewProjectWizardCollector.kt +++ b/python/src/com/jetbrains/python/newProjectWizard/collector/PythonNewProjectWizardCollector.kt @@ -1,5 +1,5 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.newProject.collector +package com.jetbrains.python.newProjectWizard.collector import com.intellij.internal.statistic.eventLog.EventLogGroup import com.intellij.internal.statistic.eventLog.events.EventFields diff --git a/python/src/com/jetbrains/python/newProjectWizard/impl/Py3VUI.kt b/python/src/com/jetbrains/python/newProjectWizard/impl/Py3VUI.kt index 2ad5967142ba..34961ddd7d07 100644 --- a/python/src/com/jetbrains/python/newProjectWizard/impl/Py3VUI.kt +++ b/python/src/com/jetbrains/python/newProjectWizard/impl/Py3VUI.kt @@ -9,7 +9,7 @@ import com.jetbrains.python.newProjectWizard.ProjectPathFlow import com.jetbrains.python.newProjectWizard.PyV3BaseProjectSettings import com.jetbrains.python.newProjectWizard.PyV3ProjectTypeSpecificSettings import com.jetbrains.python.newProjectWizard.PyV3ProjectTypeSpecificUI -import com.jetbrains.python.sdk.add.PySdkCreator +import com.jetbrains.python.sdk.add.v2.PySdkCreator import com.jetbrains.python.sdk.add.v2.PythonAddNewEnvironmentPanel import com.jetbrains.python.sdk.add.v2.PythonInterpreterSelectionMode import com.jetbrains.python.util.ShowingMessageErrorSync diff --git a/python/src/com/jetbrains/python/newProject/promotion/PromoProjectGenerator.kt b/python/src/com/jetbrains/python/newProjectWizard/promotion/PromoProjectGenerator.kt similarity index 94% rename from python/src/com/jetbrains/python/newProject/promotion/PromoProjectGenerator.kt rename to python/src/com/jetbrains/python/newProjectWizard/promotion/PromoProjectGenerator.kt index efd2b27a65d6..4b819f44a562 100644 --- a/python/src/com/jetbrains/python/newProject/promotion/PromoProjectGenerator.kt +++ b/python/src/com/jetbrains/python/newProjectWizard/promotion/PromoProjectGenerator.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.newProject.promotion +package com.jetbrains.python.newProjectWizard.promotion import com.intellij.facet.ui.ValidationResult import com.intellij.openapi.module.Module diff --git a/python/src/com/jetbrains/python/newProject/promotion/PromoStep.kt b/python/src/com/jetbrains/python/newProjectWizard/promotion/PromoStep.kt similarity index 91% rename from python/src/com/jetbrains/python/newProject/promotion/PromoStep.kt rename to python/src/com/jetbrains/python/newProjectWizard/promotion/PromoStep.kt index 1a8d7c6ce338..9e0fdc5db1b3 100644 --- a/python/src/com/jetbrains/python/newProject/promotion/PromoStep.kt +++ b/python/src/com/jetbrains/python/newProjectWizard/promotion/PromoStep.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.newProject.promotion +package com.jetbrains.python.newProjectWizard.promotion import com.intellij.ide.util.projectWizard.AbstractNewProjectStep import com.intellij.ide.util.projectWizard.ProjectSettingsStepBase diff --git a/python/src/com/jetbrains/python/newProject/promotion/package-info.java b/python/src/com/jetbrains/python/newProjectWizard/promotion/package-info.java similarity index 81% rename from python/src/com/jetbrains/python/newProject/promotion/package-info.java rename to python/src/com/jetbrains/python/newProjectWizard/promotion/package-info.java index 8e26fa5c6e25..c9e573877e0d 100644 --- a/python/src/com/jetbrains/python/newProject/promotion/package-info.java +++ b/python/src/com/jetbrains/python/newProjectWizard/promotion/package-info.java @@ -3,6 +3,6 @@ * For promotions: things that aren't available in community. */ @ApiStatus.Internal -package com.jetbrains.python.newProject.promotion; +package com.jetbrains.python.newProjectWizard.promotion; import org.jetbrains.annotations.ApiStatus; \ No newline at end of file diff --git a/python/src/com/jetbrains/python/packaging/conda/CondaPackageCache.kt b/python/src/com/jetbrains/python/packaging/conda/CondaPackageCache.kt index ca05a26ec140..080febadf033 100644 --- a/python/src/com/jetbrains/python/packaging/conda/CondaPackageCache.kt +++ b/python/src/com/jetbrains/python/packaging/conda/CondaPackageCache.kt @@ -16,7 +16,7 @@ import com.jetbrains.python.packaging.PyPackageVersionComparator import com.jetbrains.python.packaging.cache.PythonPackageCache import com.jetbrains.python.packaging.common.PythonRankingAwarePackageNameComparator import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory -import com.jetbrains.python.sdk.add.target.conda.TargetEnvironmentRequestCommandExecutor +import com.jetbrains.python.sdk.conda.TargetEnvironmentRequestCommandExecutor import com.jetbrains.python.sdk.flavors.conda.PyCondaEnv import com.jetbrains.python.sdk.flavors.conda.PyCondaEnvIdentity import com.jetbrains.python.sdk.flavors.conda.PyCondaFlavorData diff --git a/python/src/com/jetbrains/python/run/PythonInterpreterTargetEnvironmentFactory.kt b/python/src/com/jetbrains/python/run/PythonInterpreterTargetEnvironmentFactory.kt index 30d085e7bc6c..6b4cb8ab1b36 100644 --- a/python/src/com/jetbrains/python/run/PythonInterpreterTargetEnvironmentFactory.kt +++ b/python/src/com/jetbrains/python/run/PythonInterpreterTargetEnvironmentFactory.kt @@ -17,7 +17,7 @@ import com.intellij.ui.dsl.builder.Panel import com.jetbrains.python.remote.PyRemoteSdkAdditionalDataBase import com.jetbrains.python.run.target.HelpersAwareLocalTargetEnvironmentRequest import com.jetbrains.python.run.target.HelpersAwareTargetEnvironmentRequest -import com.jetbrains.python.sdk.add.target.TargetPanelExtension +import com.jetbrains.python.sdk.add.v1.TargetPanelExtension import com.jetbrains.python.target.PyTargetAwareAdditionalData import com.jetbrains.python.target.targetWithVfs.TargetWithMappedLocalVfs import org.jetbrains.annotations.ApiStatus diff --git a/python/src/com/jetbrains/python/sdk/PySdkExt.kt b/python/src/com/jetbrains/python/sdk/PySdkExt.kt index 01c7dbe9adb8..ceda89cdc05d 100644 --- a/python/src/com/jetbrains/python/sdk/PySdkExt.kt +++ b/python/src/com/jetbrains/python/sdk/PySdkExt.kt @@ -52,7 +52,7 @@ import com.jetbrains.python.psi.LanguageLevel import com.jetbrains.python.remote.PyRemoteSdkAdditionalData import com.jetbrains.python.remote.PyRemoteSdkAdditionalDataBase import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory -import com.jetbrains.python.sdk.add.target.createDetectedSdk +import com.jetbrains.python.sdk.add.v1.createDetectedSdk import com.jetbrains.python.sdk.flavors.PyFlavorAndData import com.jetbrains.python.sdk.flavors.PythonSdkFlavor import com.jetbrains.python.sdk.flavors.VirtualEnvSdkFlavor diff --git a/python/src/com/jetbrains/python/sdk/PythonSdkType.java b/python/src/com/jetbrains/python/sdk/PythonSdkType.java index 554e0263c33a..8b317c75f467 100644 --- a/python/src/com/jetbrains/python/sdk/PythonSdkType.java +++ b/python/src/com/jetbrains/python/sdk/PythonSdkType.java @@ -44,7 +44,7 @@ import com.jetbrains.python.remote.PyRemoteInterpreterUtil; import com.jetbrains.python.remote.PyRemoteSdkAdditionalDataBase; import com.jetbrains.python.remote.PythonRemoteInterpreterManager; import com.jetbrains.python.sdk.add.PyAddSdkDialog; -import com.jetbrains.python.sdk.add.target.PyDetectedSdkAdditionalData; +import com.jetbrains.python.sdk.add.v1.PyDetectedSdkAdditionalData; import com.jetbrains.python.sdk.flavors.CPythonSdkFlavor; import com.jetbrains.python.sdk.flavors.PythonSdkFlavor; import com.jetbrains.python.target.PyInterpreterVersionUtil; diff --git a/python/src/com/jetbrains/python/sdk/add/ExistingPySdkComboBoxItem.kt b/python/src/com/jetbrains/python/sdk/add/ExistingPySdkComboBoxItem.kt new file mode 100644 index 000000000000..e01d4f00cabd --- /dev/null +++ b/python/src/com/jetbrains/python/sdk/add/ExistingPySdkComboBoxItem.kt @@ -0,0 +1,6 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add + +import com.intellij.openapi.projectRoots.Sdk + +class ExistingPySdkComboBoxItem(val sdk: Sdk) : PySdkComboBoxItem() \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/NewPySdkComboBoxItem.kt b/python/src/com/jetbrains/python/sdk/add/NewPySdkComboBoxItem.kt new file mode 100644 index 000000000000..7203349a2d8d --- /dev/null +++ b/python/src/com/jetbrains/python/sdk/add/NewPySdkComboBoxItem.kt @@ -0,0 +1,4 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add + +class NewPySdkComboBoxItem(val title: String) : PySdkComboBoxItem() \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddNewEnvPanel.kt b/python/src/com/jetbrains/python/sdk/add/PyAddNewEnvPanel.kt index 2f1f5ac1a7d1..1a8e490a8fac 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddNewEnvPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddNewEnvPanel.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.jetbrains.python.sdk.add import com.jetbrains.python.sdk.add.v2.PythonInterpreterSelectionMode diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt index 1309d0c8c97b..bf009b5a24d5 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.jetbrains.python.sdk.add import com.intellij.CommonBundle @@ -25,9 +25,23 @@ import com.intellij.util.ui.JBUI import com.jetbrains.python.PyBundle import com.jetbrains.python.icons.PythonIcons import com.jetbrains.python.packaging.PyExecutionException -import com.jetbrains.python.sdk.* -import com.jetbrains.python.sdk.add.PyAddSdkDialogFlowAction.* +import com.jetbrains.python.sdk.PreferredSdkComparator +import com.jetbrains.python.sdk.PythonSdkType +import com.jetbrains.python.sdk.add.v1.CreateSdkInterrupted +import com.jetbrains.python.sdk.add.v1.PyAddExistingCondaEnvPanel +import com.jetbrains.python.sdk.add.v1.PyAddExistingVirtualEnvPanel +import com.jetbrains.python.sdk.add.v1.PyAddNewCondaEnvPanel +import com.jetbrains.python.sdk.add.v1.PyAddNewVirtualEnvPanel +import com.jetbrains.python.sdk.add.PyAddSdkDialogFlowAction +import com.jetbrains.python.sdk.add.PyAddSdkPanel +import com.jetbrains.python.sdk.add.v1.PyAddSystemWideInterpreterPanel +import com.jetbrains.python.sdk.add.v1.doCreateSouthPanel +import com.jetbrains.python.sdk.add.v1.showProcessExecutionErrorDialog +import com.jetbrains.python.sdk.add.v1.swipe import com.jetbrains.python.sdk.conda.PyCondaSdkCustomizer +import com.jetbrains.python.sdk.detectVirtualEnvs +import com.jetbrains.python.sdk.isAssociatedWithModule +import com.jetbrains.python.sdk.sdkSeemsValid import java.awt.CardLayout import java.awt.event.ActionEvent import java.io.IOException @@ -43,9 +57,11 @@ import javax.swing.JPanel * Use [show] to instantiate and show the dialog. * */ -class PyAddSdkDialog private constructor(private val project: Project?, - private val module: Module?, - private val existingSdks: List) : DialogWrapper(project) { +class PyAddSdkDialog private constructor( + private val project: Project?, + private val module: Module?, + private val existingSdks: List, +) : DialogWrapper(project) { /** * This is the main panel that supplies sliding effect for the wizard states. */ @@ -78,7 +94,7 @@ class PyAddSdkDialog private constructor(private val project: Project?, val venvPanel = createVirtualEnvPanel(project, module, sdks) val condaPanel = createAnacondaPanel(project, module) val systemWidePanel = PyAddSystemWideInterpreterPanel(project, module, existingSdks, context) - return if (PyCondaSdkCustomizer.instance.preferCondaEnvironments) { + return if (PyCondaSdkCustomizer.Companion.instance.preferCondaEnvironments) { listOf(condaPanel, venvPanel, systemWidePanel) } else { @@ -120,8 +136,8 @@ class PyAddSdkDialog private constructor(private val project: Project?, private val nextAction: Action = object : DialogWrapperAction(PyBundle.message("python.sdk.next")) { override fun doAction(e: ActionEvent) { selectedPanel?.let { - if (it.actions.containsKey(NEXT)) onNext() - else if (it.actions.containsKey(FINISH)) { + if (it.actions.containsKey(PyAddSdkDialogFlowAction.NEXT)) onNext() + else if (it.actions.containsKey(PyAddSdkDialogFlowAction.FINISH)) { onFinish() } } @@ -155,7 +171,7 @@ class PyAddSdkDialog private constructor(private val project: Project?, panel.addStateListener(object : PyAddSdkStateListener { override fun onComponentChanged() { - show(mainPanel, panel.component) + com.jetbrains.python.sdk.add.v1.show(mainPanel, panel.component) selectedPanel?.let { updateWizardActionButtons(it) } } @@ -183,7 +199,7 @@ class PyAddSdkDialog private constructor(private val project: Project?, cardLayout.show(cardPanel, selectedValue.panelName) southPanel?.let { - if (selectedValue.actions.containsKey(NEXT)) { + if (selectedValue.actions.containsKey(PyAddSdkDialogFlowAction.NEXT)) { navigationPanelCardLayout?.show(it, WIZARD_CARD_PANE) rootPane.defaultButton = nextButton.value @@ -206,9 +222,11 @@ class PyAddSdkDialog private constructor(private val project: Project?, } } - private fun createVirtualEnvPanel(project: Project?, - module: Module?, - existingSdks: List): PyAddSdkPanel { + private fun createVirtualEnvPanel( + project: Project?, + module: Module?, + existingSdks: List, + ): PyAddSdkPanel { val newVirtualEnvPanel = when { allowCreatingNewEnvironments(project) -> PyAddNewVirtualEnvPanel(project, module, existingSdks, null, context) else -> null @@ -234,7 +252,7 @@ class PyAddSdkDialog private constructor(private val project: Project?, val panels = listOf(newCondaEnvPanel, PyAddExistingCondaEnvPanel(project, existingSdks, null)) .filterNotNull() - val defaultPanel = if (PyCondaSdkCustomizer.instance.preferExistingEnvironments) panels[1] else panels[0] + val defaultPanel = if (PyCondaSdkCustomizer.Companion.instance.preferExistingEnvironments) panels[1] else panels[0] return PyAddSdkGroupPanel(PyBundle.messagePointer("python.add.sdk.panel.name.conda.environment"), PythonIcons.Python.Anaconda, panels, defaultPanel) } @@ -261,7 +279,7 @@ class PyAddSdkDialog private constructor(private val project: Project?, it.previous() // sliding effect - if (it.actions.containsKey(PREVIOUS)) { + if (it.actions.containsKey(PyAddSdkDialogFlowAction.PREVIOUS)) { val stepContent = it.component val stepContentName = stepContent.hashCode().toString() @@ -312,9 +330,9 @@ class PyAddSdkDialog private constructor(private val project: Project?, it.actions.forEach { (action, isEnabled) -> val actionButton = when (action) { - PREVIOUS -> previousButton.value - NEXT -> nextButton.value.apply { text = PyBundle.message("python.sdk.next") } - FINISH -> nextButton.value.apply { text = PyBundle.message("python.sdk.finish") } + PyAddSdkDialogFlowAction.PREVIOUS -> previousButton.value + PyAddSdkDialogFlowAction.NEXT -> nextButton.value.apply { text = PyBundle.message("python.sdk.next") } + PyAddSdkDialogFlowAction.FINISH -> nextButton.value.apply { text = PyBundle.message("python.sdk.finish") } else -> null } actionButton?.isEnabled = isEnabled @@ -347,10 +365,12 @@ class PyAddSdkDialog private constructor(private val project: Project?, * and Docker Compose types throws [NoClassDefFoundError] exception when * `org.jetbrains.plugins.remote-run` plugin is disabled. */ - private fun PyAddSdkProvider.safeCreateView(project: Project?, - module: Module?, - existingSdks: List, - context: UserDataHolder): PyAddSdkView? { + private fun PyAddSdkProvider.safeCreateView( + project: Project?, + module: Module?, + existingSdks: List, + context: UserDataHolder, + ): PyAddSdkView? { try { return createView(project, module, null, existingSdks, context) } @@ -360,6 +380,4 @@ class PyAddSdkDialog private constructor(private val project: Project?, } } } -} - -class CreateSdkInterrupted : Exception() +} \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialogFlowAction.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialogFlowAction.kt index 5fb505001346..a579c114cc2c 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialogFlowAction.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialogFlowAction.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.jetbrains.python.sdk.add enum class PyAddSdkDialogFlowAction { diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSdkGroupPanel.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSdkGroupPanel.kt index ef14df5f0f49..47ee9abdfae1 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSdkGroupPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSdkGroupPanel.kt @@ -1,18 +1,4 @@ -/* - * Copyright 2000-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.jetbrains.python.sdk.add import com.intellij.openapi.projectRoots.Sdk @@ -21,16 +7,21 @@ import com.intellij.ui.components.JBRadioButton import com.intellij.util.ui.FormBuilder import com.intellij.util.ui.JBUI import com.intellij.util.ui.UIUtil +import com.jetbrains.python.sdk.add.PyAddSdkPanel import org.jetbrains.annotations.Nls import java.awt.BorderLayout +import java.awt.Container +import java.util.function.Supplier import javax.swing.ButtonGroup import javax.swing.Icon import javax.swing.JPanel +import kotlin.collections.iterator -class PyAddSdkGroupPanel(private val nameGetter: java.util.function.Supplier<@Nls String>, +class PyAddSdkGroupPanel(private val nameGetter: Supplier<@Nls String>, panelIcon: Icon, val panels: List, - defaultPanel: PyAddSdkPanel) : PyAddSdkPanel() { + defaultPanel: PyAddSdkPanel +) : PyAddSdkPanel() { override val panelName: String get() = nameGetter.get() // NON-NLS override val icon: Icon = panelIcon var selectedPanel: PyAddSdkPanel = defaultPanel diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSdkPanel.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSdkPanel.kt index 12e3e9904375..2c155deeefed 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSdkPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSdkPanel.kt @@ -15,16 +15,19 @@ import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.util.UserDataHolder import com.intellij.util.concurrency.annotations.RequiresEdt import com.jetbrains.python.PySdkBundle -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo import com.jetbrains.python.newProject.steps.PyAddNewEnvironmentPanel +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.pathValidation.PlatformAndRoot import com.jetbrains.python.pathValidation.ValidationRequest import com.jetbrains.python.pathValidation.validateEmptyDir import com.jetbrains.python.psi.icons.PythonPsiApiIcons -import com.jetbrains.python.sdk.* -import com.jetbrains.python.sdk.add.PyAddSdkDialogFlowAction.OK +import com.jetbrains.python.sdk.PyDetectedSdk +import com.jetbrains.python.sdk.PySdkToInstall +import com.jetbrains.python.sdk.add.PyAddSdkDialogFlowAction import com.jetbrains.python.sdk.configuration.findPreferredVirtualEnvBaseSdk +import com.jetbrains.python.sdk.findBaseSdks import com.jetbrains.python.sdk.flavors.MacPythonSdkFlavor +import com.jetbrains.python.sdk.getSdksToInstall import com.jetbrains.python.ui.pyModalBlocking import java.awt.Component import javax.swing.Icon @@ -33,7 +36,7 @@ import javax.swing.JPanel abstract class PyAddSdkPanel : JPanel(), PyAddSdkView { override val actions: Map - get() = mapOf(OK.enabled()) + get() = mapOf(PyAddSdkDialogFlowAction.OK.enabled()) override val component: Component get() = this @@ -165,7 +168,7 @@ private fun PySdkPathChoosingComboBox.removeAllItems() { /** * Obtains a list of sdk to be used as a base for a virtual environment on a pool, - * then fills the [sdkComboBox] on the EDT and chooses [PySdkSettings.preferredVirtualEnvBaseSdk] or prepends it. + * then fills the [sdkComboBox] on the EDT and chooses [com.jetbrains.python.sdk.PySdkSettings.preferredVirtualEnvBaseSdk] or prepends it. */ fun addBaseInterpretersAsync(sdkComboBox: PySdkPathChoosingComboBox, existingSdks: List, @@ -188,4 +191,4 @@ fun addBaseInterpretersAsync(sdkComboBox: PySdkPathChoosingComboBox, callback() } ) -} +} \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSdkProvider.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSdkProvider.kt index ede458c7a657..2323e8bbf89a 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSdkProvider.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSdkProvider.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.jetbrains.python.sdk.add import com.intellij.openapi.extensions.ExtensionPointName diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSdkStateListener.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSdkStateListener.kt index 5bde91c72fd8..1c3d09786867 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSdkStateListener.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSdkStateListener.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.jetbrains.python.sdk.add interface PyAddSdkStateListener { diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSdkView.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSdkView.kt index b28e439c5439..2c030f0da8c8 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSdkView.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSdkView.kt @@ -1,9 +1,10 @@ -// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.jetbrains.python.sdk.add import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.ui.ValidationInfo import com.intellij.util.concurrency.annotations.RequiresEdt +import com.jetbrains.python.sdk.add.PyAddSdkDialogFlowAction import org.jetbrains.annotations.Nls import java.awt.Component import javax.swing.Icon diff --git a/python/src/com/jetbrains/python/sdk/add/PySdkComboBoxItem.kt b/python/src/com/jetbrains/python/sdk/add/PySdkComboBoxItem.kt index 6388818aacb5..d5f431be50c2 100644 --- a/python/src/com/jetbrains/python/sdk/add/PySdkComboBoxItem.kt +++ b/python/src/com/jetbrains/python/sdk/add/PySdkComboBoxItem.kt @@ -1,12 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.jetbrains.python.sdk.add -import com.intellij.openapi.projectRoots.Sdk - -sealed class PySdkComboBoxItem - -class NewPySdkComboBoxItem(val title: String) : PySdkComboBoxItem() - -class ExistingPySdkComboBoxItem(val sdk: Sdk) : PySdkComboBoxItem() - -fun Sdk.asComboBoxItem() = ExistingPySdkComboBoxItem(this) \ No newline at end of file +sealed class PySdkComboBoxItem \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/PySdkPathChoosingComboBox.kt b/python/src/com/jetbrains/python/sdk/add/PySdkPathChoosingComboBox.kt index b8588b2436b2..9d795f105c4d 100644 --- a/python/src/com/jetbrains/python/sdk/add/PySdkPathChoosingComboBox.kt +++ b/python/src/com/jetbrains/python/sdk/add/PySdkPathChoosingComboBox.kt @@ -30,7 +30,9 @@ import com.intellij.ui.components.fields.ExtendableTextField import com.intellij.util.PathUtil import com.jetbrains.python.PyBundle import com.jetbrains.python.sdk.PythonSdkType -import com.jetbrains.python.sdk.add.target.createDetectedSdk +import com.jetbrains.python.sdk.add.v1.PySdkListCellRendererExt +import com.jetbrains.python.sdk.add.v1.asComboBoxItem +import com.jetbrains.python.sdk.add.v1.createDetectedSdk import com.jetbrains.python.ui.targetPathEditor.ManualPathEntryDialog import java.awt.event.ActionListener import java.util.function.Supplier diff --git a/python/src/com/jetbrains/python/sdk/add/package-info.java b/python/src/com/jetbrains/python/sdk/add/package-info.java new file mode 100644 index 000000000000..4d6fbb83e9c5 --- /dev/null +++ b/python/src/com/jetbrains/python/sdk/add/package-info.java @@ -0,0 +1,8 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +/** + * Tools to add python sdk. + * {@link com.jetbrains.python.sdk.add.v2} is recommended. + *

+ * Various classes directly in the package are only here because of third party plugins + */ +package com.jetbrains.python.sdk.add; \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/target/PyInterpreterTargets.kt b/python/src/com/jetbrains/python/sdk/add/target/PyInterpreterTargets.kt deleted file mode 100644 index 5a4296ddf296..000000000000 --- a/python/src/com/jetbrains/python/sdk/add/target/PyInterpreterTargets.kt +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package com.jetbrains.python.sdk.add.target - -import com.intellij.execution.target.TargetEnvironmentConfiguration -import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory - -val TargetEnvironmentConfiguration?.isMutableTarget: Boolean - get() = this?.let { PythonInterpreterTargetEnvironmentFactory.isMutable(it) } ?: true \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/target/BrowsePaths.kt b/python/src/com/jetbrains/python/sdk/add/v1/BrowsePaths.kt similarity index 96% rename from python/src/com/jetbrains/python/sdk/add/target/BrowsePaths.kt rename to python/src/com/jetbrains/python/sdk/add/v1/BrowsePaths.kt index bc758045df8e..ee82dbc16f39 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/BrowsePaths.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/BrowsePaths.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add.target +package com.jetbrains.python.sdk.add.v1 import com.intellij.execution.target.BrowsableTargetEnvironmentType import com.intellij.execution.target.TargetBrowserHints diff --git a/python/src/com/jetbrains/python/sdk/add/target/conda/PyAddCondaPanelModel.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddCondaPanelModel.kt similarity index 95% rename from python/src/com/jetbrains/python/sdk/add/target/conda/PyAddCondaPanelModel.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddCondaPanelModel.kt index 275f75e785c1..0d19594043ad 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/conda/PyAddCondaPanelModel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddCondaPanelModel.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add.target.conda +package com.jetbrains.python.sdk.add.v1 import com.intellij.execution.target.FullPathOnTarget import com.intellij.execution.target.LanguageRuntimeType @@ -17,7 +17,13 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.platform.util.progress.RawProgressReporter import com.jetbrains.python.PyBundle import com.jetbrains.python.psi.LanguageLevel -import com.jetbrains.python.sdk.add.target.isMutableTarget +import com.jetbrains.python.sdk.conda.IntrospectableCommandExecutor +import com.jetbrains.python.sdk.conda.TargetCommandExecutor +import com.jetbrains.python.sdk.conda.TargetEnvironmentRequestCommandExecutor +import com.jetbrains.python.sdk.conda.condaSupportedLanguages +import com.jetbrains.python.sdk.conda.createCondaSdkAlongWithNewEnv +import com.jetbrains.python.sdk.conda.createCondaSdkFromExistingEnv +import com.jetbrains.python.sdk.conda.suggestCondaPath import com.jetbrains.python.sdk.flavors.conda.NewCondaEnvRequest import com.jetbrains.python.sdk.flavors.conda.PyCondaCommand import com.jetbrains.python.sdk.flavors.conda.PyCondaEnv diff --git a/python/src/com/jetbrains/python/sdk/add/target/conda/PyAddCondaPanelView.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddCondaPanelView.kt similarity index 95% rename from python/src/com/jetbrains/python/sdk/add/target/conda/PyAddCondaPanelView.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddCondaPanelView.kt index c721326ae2d0..9becd8f0e889 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/conda/PyAddCondaPanelView.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddCondaPanelView.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add.target.conda +package com.jetbrains.python.sdk.add.v1 import com.intellij.execution.target.TargetBrowserHints import com.intellij.openapi.Disposable @@ -21,8 +21,6 @@ import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory.Compan import com.jetbrains.python.sdk.add.PyAddSdkDialogFlowAction import com.jetbrains.python.sdk.add.PyAddSdkStateListener import com.jetbrains.python.sdk.add.PyAddSdkView -import com.jetbrains.python.sdk.add.target.TargetPanelExtension -import com.jetbrains.python.sdk.add.target.addBrowseFolderListener import kotlinx.coroutines.Dispatchers import org.jetbrains.annotations.Nls import java.awt.Component @@ -33,7 +31,7 @@ import javax.swing.JOptionPane.ERROR_MESSAGE /** * View for adding conda interpreter backed by [model] */ -class PyAddCondaPanelView(private val model: PyAddCondaPanelModel) : PyAddSdkView, Disposable { +internal class PyAddCondaPanelView(private val model: PyAddCondaPanelModel) : PyAddSdkView, Disposable { override val panelName: String get() = PyBundle.message("python.add.sdk.panel.name.conda.environment") override val icon: Icon = PythonIcons.Python.Anaconda diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddExistingCondaEnvPanel.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddExistingCondaEnvPanel.kt similarity index 83% rename from python/src/com/jetbrains/python/sdk/add/PyAddExistingCondaEnvPanel.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddExistingCondaEnvPanel.kt index 9dfe5f3a2ebc..5d59be49a65e 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddExistingCondaEnvPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddExistingCondaEnvPanel.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add +package com.jetbrains.python.sdk.add.v1 import com.intellij.openapi.diagnostic.getOrLogException import com.intellij.openapi.diagnostic.thisLogger @@ -15,13 +15,15 @@ import com.jetbrains.python.PySdkBundle import com.jetbrains.python.icons.PythonIcons import com.jetbrains.python.packaging.PyCondaPackageService import com.jetbrains.python.sdk.PyDetectedSdk +import com.jetbrains.python.sdk.add.PyAddSdkPanel +import com.jetbrains.python.sdk.add.PySdkPathChoosingComboBox import com.jetbrains.python.sdk.conda.PyCondaSdkCustomizer import com.jetbrains.python.sdk.setupAssociated import java.awt.BorderLayout import java.awt.event.ItemEvent import javax.swing.Icon -open class PyAddExistingCondaEnvPanel( +internal open class PyAddExistingCondaEnvPanel( private val project: Project?, private val existingSdks: List, override var newProjectPath: String?, @@ -30,7 +32,7 @@ open class PyAddExistingCondaEnvPanel( override val icon: Icon = PythonIcons.Python.Anaconda protected val sdkComboBox = PySdkPathChoosingComboBox() private val condaPathField = TextFieldWithBrowseButton().apply { - val path = PyCondaPackageService.getCondaExecutable(null) + val path = PyCondaPackageService.Companion.getCondaExecutable(null) if (path != null) { text = path } @@ -43,12 +45,12 @@ open class PyAddExistingCondaEnvPanel( init { sdkComboBox.childComponent.addItemListener { if (it.stateChange == ItemEvent.SELECTED) { - val respectiveCondaExecutable = PyCondaPackageService.getCondaExecutable(sdkComboBox.selectedSdk.homePath) + val respectiveCondaExecutable = PyCondaPackageService.Companion.getCondaExecutable(sdkComboBox.selectedSdk.homePath) condaPathField.text = respectiveCondaExecutable.orEmpty() } } - if (PyCondaSdkCustomizer.instance.sharedEnvironmentsByDefault) { + if (PyCondaSdkCustomizer.Companion.instance.sharedEnvironmentsByDefault) { makeSharedField.isSelected = true } @@ -74,11 +76,11 @@ open class PyAddExistingCondaEnvPanel( override fun getOrCreateSdk(): Sdk? { val sdk = sdkComboBox.selectedSdk - PyCondaPackageService.onCondaEnvCreated(condaPathField.text) + PyCondaPackageService.Companion.onCondaEnvCreated(condaPathField.text) return when (sdk) { is PyDetectedSdk -> sdk.setupAssociated(existingSdks, newProjectPath ?: project?.basePath, !makeSharedField.isSelected) .getOrLogException(thisLogger()) else -> sdk } } -} +} \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddExistingVirtualEnvPanel.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddExistingVirtualEnvPanel.kt similarity index 76% rename from python/src/com/jetbrains/python/sdk/add/PyAddExistingVirtualEnvPanel.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddExistingVirtualEnvPanel.kt index 6b0b88800048..02768687d886 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddExistingVirtualEnvPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddExistingVirtualEnvPanel.kt @@ -1,19 +1,5 @@ -/* - * Copyright 2000-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.jetbrains.python.sdk.add +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 import com.intellij.openapi.diagnostic.getOrLogException import com.intellij.openapi.module.Module @@ -27,6 +13,9 @@ import com.jetbrains.python.PyBundle import com.jetbrains.python.PySdkBundle import com.jetbrains.python.sdk.* import com.jetbrains.python.icons.PythonIcons +import com.jetbrains.python.sdk.add.PyAddSdkPanel +import com.jetbrains.python.sdk.add.PySdkPathChoosingComboBox +import com.jetbrains.python.sdk.add.addInterpretersAsync import java.awt.BorderLayout import javax.swing.Icon diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddNewCondaEnvFromFilePanel.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddNewCondaEnvFromFilePanel.kt similarity index 94% rename from python/src/com/jetbrains/python/sdk/add/PyAddNewCondaEnvFromFilePanel.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddNewCondaEnvFromFilePanel.kt index f6a8f3f8dc01..4ca85181b54a 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddNewCondaEnvFromFilePanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddNewCondaEnvFromFilePanel.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add +package com.jetbrains.python.sdk.add.v1 import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory import com.intellij.openapi.module.Module @@ -10,7 +10,8 @@ import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.vfs.VirtualFile import com.intellij.util.ui.FormBuilder import com.jetbrains.python.PyBundle -import com.jetbrains.python.sdk.add.PyAddNewEnvCollector.InputData +import com.jetbrains.python.sdk.add.v1.PyAddNewEnvCollector +import com.jetbrains.python.sdk.add.v1.PyAddNewEnvCollector.InputData import org.jetbrains.annotations.SystemDependent import java.awt.BorderLayout import java.nio.file.Path diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddNewCondaEnvPanel.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddNewCondaEnvPanel.kt similarity index 96% rename from python/src/com/jetbrains/python/sdk/add/PyAddNewCondaEnvPanel.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddNewCondaEnvPanel.kt index 2af15fe55814..1b3d268195c8 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddNewCondaEnvPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddNewCondaEnvPanel.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add +package com.jetbrains.python.sdk.add.v1 import com.intellij.execution.ExecutionException import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory @@ -20,11 +20,12 @@ import com.intellij.util.SystemProperties import com.intellij.util.ui.FormBuilder import com.jetbrains.python.PyBundle import com.jetbrains.python.icons.PythonIcons -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.packaging.PyCondaPackageManagerImpl import com.jetbrains.python.packaging.PyCondaPackageService import com.jetbrains.python.sdk.* -import com.jetbrains.python.sdk.add.target.conda.condaSupportedLanguages +import com.jetbrains.python.sdk.add.PyAddNewEnvPanel +import com.jetbrains.python.sdk.conda.condaSupportedLanguages import com.jetbrains.python.sdk.add.v2.PythonInterpreterSelectionMode import com.jetbrains.python.sdk.conda.PyCondaSdkCustomizer import com.jetbrains.python.statistics.InterpreterTarget diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddNewEnvCollector.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddNewEnvCollector.kt similarity index 91% rename from python/src/com/jetbrains/python/sdk/add/PyAddNewEnvCollector.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddNewEnvCollector.kt index bbb95f949ebf..605e6b04b320 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddNewEnvCollector.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddNewEnvCollector.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package com.jetbrains.python.sdk.add +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 import com.intellij.internal.statistic.eventLog.EventLogGroup import com.intellij.internal.statistic.eventLog.events.EventFields diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddNewVirtualEnvFromFilePanel.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddNewVirtualEnvFromFilePanel.kt similarity index 86% rename from python/src/com/jetbrains/python/sdk/add/PyAddNewVirtualEnvFromFilePanel.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddNewVirtualEnvFromFilePanel.kt index cf742f0fa31b..b6ab9ac97fc4 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddNewVirtualEnvFromFilePanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddNewVirtualEnvFromFilePanel.kt @@ -1,5 +1,4 @@ -// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add +package com.jetbrains.python.sdk.add.v1 import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory import com.intellij.openapi.fileTypes.PlainTextFileType @@ -18,17 +17,23 @@ import com.jetbrains.python.PySdkBundle import com.jetbrains.python.PythonFileType import com.jetbrains.python.pathValidation.PlatformAndRoot import com.jetbrains.python.sdk.PySdkSettings -import com.jetbrains.python.sdk.add.PyAddNewEnvCollector.InputData -import com.jetbrains.python.sdk.add.PyAddNewEnvCollector.RequirementsTxtOrSetupPyData +import com.jetbrains.python.sdk.add.PyAddSdkPanel +import com.jetbrains.python.sdk.add.PySdkPathChoosingComboBox +import com.jetbrains.python.sdk.add.v1.PyAddNewEnvCollector.InputData +import com.jetbrains.python.sdk.add.v1.PyAddNewEnvCollector.RequirementsTxtOrSetupPyData +import com.jetbrains.python.sdk.add.PyAddSdkPanel.Companion.validateSdkComboBox +import com.jetbrains.python.sdk.add.addBaseInterpretersAsync import com.jetbrains.python.sdk.basePath import org.jetbrains.annotations.SystemDependent import org.jetbrains.annotations.SystemIndependent import java.awt.BorderLayout import javax.swing.JPanel -class PyAddNewVirtualEnvFromFilePanel(private val module: Module, - existingSdks: List, - suggestedRequirementsTxtOrSetupPy: VirtualFile? = null) : JPanel() { +class PyAddNewVirtualEnvFromFilePanel( + private val module: Module, + existingSdks: List, + suggestedRequirementsTxtOrSetupPy: VirtualFile? = null, +) : JPanel() { val envData: Data get() = Data(pathField.text, baseSdkField.selectedSdk, requirementsTxtOrSetupPyField.text) @@ -45,7 +50,7 @@ class PyAddNewVirtualEnvFromFilePanel(private val module: Module, init { pathField.apply { - text = FileUtil.toSystemDependentName(PySdkSettings.instance.getPreferredVirtualEnvBasePath(projectBasePath)) + text = FileUtil.toSystemDependentName(PySdkSettings.Companion.instance.getPreferredVirtualEnvBasePath(projectBasePath)) addBrowseFolderListener(module.project, FileChooserDescriptorFactory.createSingleFolderDescriptor() .withTitle(PySdkBundle.message("python.venv.location.chooser"))) @@ -76,8 +81,8 @@ class PyAddNewVirtualEnvFromFilePanel(private val module: Module, } fun validateAll(@NlsContexts.Button defaultButtonName: String): List = - listOfNotNull(PyAddSdkPanel.validateEnvironmentDirectoryLocation(pathField, PlatformAndRoot.local), - PyAddSdkPanel.validateSdkComboBox(baseSdkField, defaultButtonName)) + listOfNotNull(PyAddSdkPanel.Companion.validateEnvironmentDirectoryLocation(pathField, PlatformAndRoot.Companion.local), + validateSdkComboBox(baseSdkField, defaultButtonName)) /** * Must be called if the input is confirmed and the current instance will not be used anymore @@ -156,6 +161,6 @@ class PyAddNewVirtualEnvFromFilePanel(private val module: Module, data class Data( val path: @NlsSafe @SystemDependent String, val baseSdk: Sdk?, - val requirementsTxtOrSetupPyPath: @NlsSafe @SystemDependent String + val requirementsTxtOrSetupPyPath: @NlsSafe @SystemDependent String, ) -} +} \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddNewVirtualEnvPanel.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddNewVirtualEnvPanel.kt similarity index 93% rename from python/src/com/jetbrains/python/sdk/add/PyAddNewVirtualEnvPanel.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddNewVirtualEnvPanel.kt index 4681dfad6c0d..e90cbbbdf20d 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddNewVirtualEnvPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddNewVirtualEnvPanel.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add +package com.jetbrains.python.sdk.add.v1 import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory import com.intellij.openapi.module.Module @@ -15,9 +15,12 @@ import com.intellij.util.ui.FormBuilder import com.jetbrains.python.PyBundle import com.jetbrains.python.PySdkBundle import com.jetbrains.python.icons.PythonIcons -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.pathValidation.PlatformAndRoot import com.jetbrains.python.sdk.PySdkSettings +import com.jetbrains.python.sdk.add.PyAddNewEnvPanel +import com.jetbrains.python.sdk.add.PySdkPathChoosingComboBox +import com.jetbrains.python.sdk.add.addBaseInterpretersAsync import com.jetbrains.python.sdk.basePath import com.jetbrains.python.sdk.configuration.createVirtualEnvSynchronously import com.jetbrains.python.statistics.InterpreterTarget diff --git a/python/src/com/jetbrains/python/sdk/add/v1/PyAddSdkDialog.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddSdkDialog.kt new file mode 100644 index 000000000000..78b8c081100b --- /dev/null +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddSdkDialog.kt @@ -0,0 +1,4 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 + +class CreateSdkInterrupted : Exception() diff --git a/python/src/com/jetbrains/python/sdk/add/target/PyAddSdkPanelBase.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddSdkPanelBase.kt similarity index 83% rename from python/src/com/jetbrains/python/sdk/add/target/PyAddSdkPanelBase.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddSdkPanelBase.kt index 48cf4d1c4c60..289d0dc4899e 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/PyAddSdkPanelBase.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddSdkPanelBase.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package com.jetbrains.python.sdk.add.target +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 import com.intellij.execution.target.TargetEnvironmentConfiguration import com.intellij.openapi.module.Module @@ -15,7 +15,7 @@ import java.util.function.Supplier /** * Contains common logic for creating target-based Python SDKs. */ -abstract class PyAddSdkPanelBase(protected val project: Project?, +internal abstract class PyAddSdkPanelBase(protected val project: Project?, protected val module: Module?, private val targetSupplier: Supplier?) : PyAddSdkPanel() { @@ -35,7 +35,7 @@ abstract class PyAddSdkPanelBase(protected val project: Project?, * Note: local target is mutable. */ protected val isMutableTarget: Boolean - get() = targetEnvironmentConfiguration?.let { PythonInterpreterTargetEnvironmentFactory.isMutable(it) } ?: true + get() = targetEnvironmentConfiguration?.let { PythonInterpreterTargetEnvironmentFactory.Companion.isMutable(it) } ?: true companion object { internal val virtualEnvSdkFlavor: VirtualEnvSdkFlavor diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSystemWideInterpreterPanel.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddSystemWideInterpreterPanel.kt similarity index 86% rename from python/src/com/jetbrains/python/sdk/add/PyAddSystemWideInterpreterPanel.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddSystemWideInterpreterPanel.kt index 18ec613b2799..d11ec65eb893 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSystemWideInterpreterPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddSystemWideInterpreterPanel.kt @@ -1,19 +1,5 @@ -/* - * Copyright 2000-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.jetbrains.python.sdk.add +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 import com.intellij.execution.target.TargetEnvironmentConfiguration import com.intellij.openapi.diagnostic.getOrLogException @@ -30,12 +16,21 @@ import com.intellij.ui.dsl.builder.panel import com.jetbrains.python.PyBundle import com.jetbrains.python.PySdkBundle import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory.Companion.extendWithTargetSpecificFields -import com.jetbrains.python.sdk.* -import com.jetbrains.python.sdk.add.target.TargetPanelExtension -import com.jetbrains.python.sdk.add.target.createDetectedSdk +import com.jetbrains.python.sdk.LOGGER +import com.jetbrains.python.sdk.PyDetectedSdk +import com.jetbrains.python.sdk.add.PyAddSdkPanel +import com.jetbrains.python.sdk.add.PySdkPathChoosingComboBox +import com.jetbrains.python.sdk.add.addInterpretersAsync +import com.jetbrains.python.sdk.adminPermissionsNeeded import com.jetbrains.python.sdk.configuration.createSdkForTarget +import com.jetbrains.python.sdk.detectSystemWideSdks +import com.jetbrains.python.sdk.filterSystemWideSdks +import com.jetbrains.python.sdk.getSdksToInstall +import com.jetbrains.python.sdk.installSdkIfNeeded +import com.jetbrains.python.sdk.setup import com.jetbrains.python.target.PythonLanguageRuntimeConfiguration import java.awt.BorderLayout +import java.awt.Container import java.util.function.Supplier open class PyAddSystemWideInterpreterPanel(private val _project: Project?, @@ -131,4 +126,4 @@ open class PyAddSystemWideInterpreterPanel(private val _project: Project?, override fun addChangeListener(listener: Runnable) { sdkComboBox.childComponent.addItemListener { listener.run() } } -} +} \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/target/PyAddTargetBasedSdkDialog.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddTargetBasedSdkDialog.kt similarity index 93% rename from python/src/com/jetbrains/python/sdk/add/target/PyAddTargetBasedSdkDialog.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddTargetBasedSdkDialog.kt index 697f34a4df14..3b09e9af90f7 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/PyAddTargetBasedSdkDialog.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddTargetBasedSdkDialog.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package com.jetbrains.python.sdk.add.target +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 import com.intellij.execution.target.TargetEnvironmentConfiguration import com.intellij.openapi.module.Module @@ -73,5 +73,4 @@ class PyAddTargetBasedSdkDialog private constructor(private val project: Project sdkAddedCallback.accept(sdk) } } -} - +} \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/target/PyAddTargetBasedSdkPanel.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddTargetBasedSdkPanel.kt similarity index 91% rename from python/src/com/jetbrains/python/sdk/add/target/PyAddTargetBasedSdkPanel.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddTargetBasedSdkPanel.kt index d3c5376a6701..1175eb9bef5a 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/PyAddTargetBasedSdkPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddTargetBasedSdkPanel.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package com.jetbrains.python.sdk.add.target +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 import com.intellij.CommonBundle import com.intellij.execution.target.IncompleteTargetEnvironmentConfiguration @@ -28,12 +28,7 @@ import com.intellij.util.ui.UIUtil import com.jetbrains.python.packaging.PyExecutionException import com.jetbrains.python.sdk.PreferredSdkComparator import com.jetbrains.python.sdk.PythonSdkType -import com.jetbrains.python.sdk.add.CreateSdkInterrupted import com.jetbrains.python.sdk.add.PyAddSdkView -import com.jetbrains.python.sdk.add.PyAddSystemWideInterpreterPanel -import com.jetbrains.python.sdk.add.showProcessExecutionErrorDialog -import com.jetbrains.python.sdk.add.target.conda.PyAddCondaPanelModel -import com.jetbrains.python.sdk.add.target.conda.PyAddCondaPanelView import com.jetbrains.python.sdk.conda.PyCondaSdkCustomizer import com.jetbrains.python.sdk.pipenv.PyAddPipEnvPanel import com.jetbrains.python.sdk.poetry.ui.createPoetryPanel @@ -48,7 +43,7 @@ import javax.swing.JPanel /** * The panel that is supposed to be used both for local and non-local target-based versions of "New Interpreter" dialog. */ -class PyAddTargetBasedSdkPanel(private val project: Project?, +internal class PyAddTargetBasedSdkPanel(private val project: Project?, private val module: Module?, private val existingSdks: List, private val targetSupplier: Supplier?, @@ -96,7 +91,7 @@ class PyAddTargetBasedSdkPanel(private val project: Project?, val newProjectPath = null val pipEnvPanel = createPipEnvPanel(newProjectPath) val poetryPanel = createPoetryPanel(project, module, existingSdks, newProjectPath, context) - if (PyCondaSdkCustomizer.instance.preferCondaEnvironments) { + if (PyCondaSdkCustomizer.Companion.instance.preferCondaEnvironments) { listOf(condaPanel, venvPanel, systemWidePanel, pipEnvPanel, poetryPanel) to condaPanel } else { @@ -109,7 +104,7 @@ class PyAddTargetBasedSdkPanel(private val project: Project?, // Enable Conda for SSH in DataSpell while keeping it disabled in PyCharm and other IDEs. // SSH target configuration at this wizard stage is characterized by implementing `IncompleteTargetEnvironmentConfiguration` marker // interface. - if (Registry.`is`("enable.conda.on.targets") || targetEnvironmentConfiguration !is IncompleteTargetEnvironmentConfiguration) { + if (Registry.Companion.`is`("enable.conda.on.targets") || targetEnvironmentConfiguration !is IncompleteTargetEnvironmentConfiguration) { add(condaPanel) } } to venvPanel @@ -196,11 +191,11 @@ class PyAddTargetBasedSdkPanel(private val project: Project?, private const val SPLITTER_COMPONENT_CARD_PANE = "Splitter" /** - * Applies the empty border (i.e. adds insets) to the nearest [DialogPanel]. + * Applies the empty border (i.e. adds insets) to the nearest [com.intellij.openapi.ui.DialogPanel]. * * [com.intellij.ui.dsl.gridLayout.impl.GridImpl] adds extra gaps "to guarantee no visual clippings (like focus rings)" are present. * This results in an additional offset if checkboxes or radio buttons are added to the panel. We compensate this by adding the proper - * border directly to the [DialogPanel]. + * border directly to the [com.intellij.openapi.ui.DialogPanel]. * * @see com.intellij.ui.dsl.gridLayout.impl.LayoutData.outsideGaps * @see com.intellij.ui.dsl.gridLayout.impl.GridImpl.getPreferredSizeData diff --git a/python/src/com/jetbrains/python/sdk/add/target/PyAddVirtualEnvPanel.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyAddVirtualEnvPanel.kt similarity index 88% rename from python/src/com/jetbrains/python/sdk/add/target/PyAddVirtualEnvPanel.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyAddVirtualEnvPanel.kt index 3d375b8091f9..affe155de0ee 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/PyAddVirtualEnvPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyAddVirtualEnvPanel.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add.target +package com.jetbrains.python.sdk.add.v1 import com.intellij.execution.target.TargetBrowserHints import com.intellij.execution.target.TargetEnvironmentConfiguration @@ -14,7 +14,11 @@ import com.intellij.openapi.ui.TextFieldWithBrowseButton import com.intellij.openapi.ui.ValidationInfo import com.intellij.openapi.util.UserDataHolder import com.intellij.openapi.util.io.FileUtil -import com.intellij.ui.dsl.builder.* +import com.intellij.ui.dsl.builder.AlignX +import com.intellij.ui.dsl.builder.bind +import com.intellij.ui.dsl.builder.bindSelected +import com.intellij.ui.dsl.builder.panel +import com.intellij.ui.dsl.builder.selected import com.intellij.ui.layout.ComponentPredicate import com.intellij.ui.layout.not import com.intellij.util.PathUtil @@ -24,16 +28,22 @@ import com.jetbrains.python.icons.PythonIcons import com.jetbrains.python.pathValidation.PlatformAndRoot.Companion.getPlatformAndRoot import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory.Companion.extendWithTargetSpecificFields -import com.jetbrains.python.sdk.* -import com.jetbrains.python.sdk.VirtualEnvReader.Companion.DEFAULT_VIRTUALENVS_DIR +import com.jetbrains.python.sdk.PyDetectedSdk +import com.jetbrains.python.sdk.PySdkSettings +import com.jetbrains.python.sdk.PythonSdkType +import com.jetbrains.python.sdk.VirtualEnvReader import com.jetbrains.python.sdk.add.ExistingPySdkComboBoxItem import com.jetbrains.python.sdk.add.PySdkPathChoosingComboBox import com.jetbrains.python.sdk.add.addBaseInterpretersAsync import com.jetbrains.python.sdk.add.addInterpretersAsync import com.jetbrains.python.sdk.configuration.createSdkForTarget import com.jetbrains.python.sdk.configuration.createVirtualEnvSynchronously +import com.jetbrains.python.sdk.detectVirtualEnvs import com.jetbrains.python.sdk.flavors.PyFlavorAndData import com.jetbrains.python.sdk.flavors.PyFlavorData +import com.jetbrains.python.sdk.isAssociatedWithAnotherModule +import com.jetbrains.python.sdk.isAssociatedWithModule +import com.jetbrains.python.sdk.setupAssociated import com.jetbrains.python.target.PyTargetAwareAdditionalData import com.jetbrains.python.target.PythonLanguageRuntimeConfiguration import java.awt.BorderLayout @@ -42,7 +52,7 @@ import java.util.function.Supplier /** * Panel with a control that allows to add either new or selecting existing virtualenv. */ -class PyAddVirtualEnvPanel( +internal class PyAddVirtualEnvPanel( project: Project?, module: Module?, private val existingSdks: List = emptyList(), @@ -79,7 +89,7 @@ class PyAddVirtualEnvPanel( set(value) { field = value if (isUnderLocalTarget) { - locationField.text = FileUtil.toSystemDependentName(PySdkSettings.instance.getPreferredVirtualEnvBasePath(projectBasePath)) + locationField.text = FileUtil.toSystemDependentName(PySdkSettings.Companion.instance.getPreferredVirtualEnvBasePath(projectBasePath)) } } @@ -89,14 +99,15 @@ class PyAddVirtualEnvPanel( locationField = TextFieldWithBrowseButton().apply { val targetEnvironmentConfiguration = targetEnvironmentConfiguration if (targetEnvironmentConfiguration == null) { - text = FileUtil.toSystemDependentName(PySdkSettings.instance.getPreferredVirtualEnvBasePath(projectBasePath)) + text = FileUtil.toSystemDependentName(PySdkSettings.Companion.instance.getPreferredVirtualEnvBasePath(projectBasePath)) } else { val projectBasePath = projectBasePath text = when { projectBasePath.isNullOrEmpty() -> config.userHome // TODO [run.targets] ideally we want to use '/' or '\' file separators based on the target's OS (which is not available yet) - else -> joinTargetPaths(config.userHome, DEFAULT_VIRTUALENVS_DIR, PathUtil.getFileName(projectBasePath), fileSeparator = '/') + else -> joinTargetPaths(config.userHome, VirtualEnvReader.Companion.DEFAULT_VIRTUALENVS_DIR, + PathUtil.getFileName(projectBasePath), fileSeparator = '/') } } val descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor().withTitle(PySdkBundle.message("python.venv.location.chooser")) @@ -117,7 +128,7 @@ class PyAddVirtualEnvPanel( }.bind(getter = { isCreateNewVirtualenv }, setter = { isCreateNewVirtualenv = it }) } else { - newEnvironmentModeSelected = ComponentPredicate.FALSE + newEnvironmentModeSelected = ComponentPredicate.Companion.FALSE } row(PyBundle.message("sdk.create.venv.dialog.interpreter.label")) { @@ -204,7 +215,7 @@ class PyAddVirtualEnvPanel( sdkAdditionalData.targetEnvironmentConfiguration = targetEnvironmentConfiguration val homePath = baseSelectedSdk.homePath!! // suggesting the proper name for the base SDK fixes the problem with clashing caching key of Python package manager - val customSdkSuggestedName = PythonInterpreterTargetEnvironmentFactory.findDefaultSdkName(project, sdkAdditionalData, version = null) + val customSdkSuggestedName = PythonInterpreterTargetEnvironmentFactory.Companion.findDefaultSdkName(project, sdkAdditionalData, version = null) sdkAdditionalData.interpreterPath = homePath SdkConfigurationUtil.createSdk(existingSdks, homePath, PythonSdkType.getInstance(), sdkAdditionalData, customSdkSuggestedName) } @@ -229,4 +240,4 @@ class PyAddVirtualEnvPanel( return createSdkForTarget(project, targetEnvironmentConfiguration, homePath, existingSdks, targetPanelExtension) } } -} +} \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/target/conda/PyCondaLocalPathStorage.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyCondaLocalPathStorage.kt similarity index 92% rename from python/src/com/jetbrains/python/sdk/add/target/conda/PyCondaLocalPathStorage.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyCondaLocalPathStorage.kt index ffa2eae73f5c..5f91f2da4adf 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/conda/PyCondaLocalPathStorage.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyCondaLocalPathStorage.kt @@ -1,5 +1,5 @@ // Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add.target.conda +package com.jetbrains.python.sdk.add.v1 import com.intellij.ide.util.PropertiesComponent import java.nio.file.Path diff --git a/python/src/com/jetbrains/python/sdk/add/target/PyDetectedSdkOnTarget.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyDetectedSdkOnTarget.kt similarity index 87% rename from python/src/com/jetbrains/python/sdk/add/target/PyDetectedSdkOnTarget.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PyDetectedSdkOnTarget.kt index 1d1f4a31ab82..d2f0834e64bb 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/PyDetectedSdkOnTarget.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyDetectedSdkOnTarget.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package com.jetbrains.python.sdk.add.target +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 import com.intellij.execution.target.TargetBasedSdkAdditionalData import com.intellij.execution.target.TargetEnvironmentConfiguration @@ -15,7 +15,7 @@ import org.jdom.Element * * This class is meant for use in UI and should be used with caution. */ -class PyDetectedSdkAdditionalData(override var targetEnvironmentConfiguration: TargetEnvironmentConfiguration?, +internal class PyDetectedSdkAdditionalData(override var targetEnvironmentConfiguration: TargetEnvironmentConfiguration?, flavor: PythonSdkFlavor<*>?) : PythonSdkAdditionalData(flavor), TargetBasedSdkAdditionalData, PyRemoteSdkAdditionalDataMarker { diff --git a/python/src/com/jetbrains/python/sdk/add/v1/PyInterpreterTargets.kt b/python/src/com/jetbrains/python/sdk/add/v1/PyInterpreterTargets.kt new file mode 100644 index 000000000000..adf5034c7f32 --- /dev/null +++ b/python/src/com/jetbrains/python/sdk/add/v1/PyInterpreterTargets.kt @@ -0,0 +1,8 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 + +import com.intellij.execution.target.TargetEnvironmentConfiguration +import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory + +internal val TargetEnvironmentConfiguration?.isMutableTarget: Boolean + get() = this?.let { PythonInterpreterTargetEnvironmentFactory.isMutable(it) } ?: true \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/v1/PySdkComboBoxItem.kt b/python/src/com/jetbrains/python/sdk/add/v1/PySdkComboBoxItem.kt new file mode 100644 index 000000000000..0198d07ec8d9 --- /dev/null +++ b/python/src/com/jetbrains/python/sdk/add/v1/PySdkComboBoxItem.kt @@ -0,0 +1,7 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 + +import com.intellij.openapi.projectRoots.Sdk +import com.jetbrains.python.sdk.add.ExistingPySdkComboBoxItem + +fun Sdk.asComboBoxItem() = ExistingPySdkComboBoxItem(this) \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/PySdkListCellRendererExt.kt b/python/src/com/jetbrains/python/sdk/add/v1/PySdkListCellRendererExt.kt similarity index 68% rename from python/src/com/jetbrains/python/sdk/add/PySdkListCellRendererExt.kt rename to python/src/com/jetbrains/python/sdk/add/v1/PySdkListCellRendererExt.kt index ec581193584e..30bd352a6a40 100644 --- a/python/src/com/jetbrains/python/sdk/add/PySdkListCellRendererExt.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/PySdkListCellRendererExt.kt @@ -1,13 +1,16 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package com.jetbrains.python.sdk.add +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 import com.jetbrains.python.sdk.PySdkListCellRenderer +import com.jetbrains.python.sdk.add.ExistingPySdkComboBoxItem +import com.jetbrains.python.sdk.add.NewPySdkComboBoxItem +import com.jetbrains.python.sdk.add.PySdkComboBoxItem import java.awt.Component import javax.swing.JList import javax.swing.ListCellRenderer /** - * Adapt [PySdkListCellRenderer] for the list with [PySdkComboBoxItem] items + * Adapt [PySdkListCellRenderer] for the list with [com.jetbrains.python.sdk.add.PySdkComboBoxItem] items * rather than with [com.intellij.openapi.projectRoots.Sdk] items. */ class PySdkListCellRendererExt : ListCellRenderer { diff --git a/python/src/com/jetbrains/python/sdk/add/target/TargetPanelExtension.kt b/python/src/com/jetbrains/python/sdk/add/v1/TargetPanelExtension.kt similarity index 81% rename from python/src/com/jetbrains/python/sdk/add/target/TargetPanelExtension.kt rename to python/src/com/jetbrains/python/sdk/add/v1/TargetPanelExtension.kt index b2da19465b67..0b5a534fa715 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/TargetPanelExtension.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/TargetPanelExtension.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add.target +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v1 import com.intellij.ui.dsl.builder.Panel import com.jetbrains.python.target.PyTargetAwareAdditionalData @@ -15,4 +15,4 @@ interface TargetPanelExtension { fun applyToTargetConfiguration() fun applyToAdditionalData(pyTargetAwareAdditionalData: PyTargetAwareAdditionalData) -} +} \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/v1/package-info.java b/python/src/com/jetbrains/python/sdk/add/v1/package-info.java new file mode 100644 index 000000000000..31ff27d263fa --- /dev/null +++ b/python/src/com/jetbrains/python/sdk/add/v1/package-info.java @@ -0,0 +1,11 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +/** + * @see com.jetbrains.python.sdk.add.v2.PythonAddLocalInterpreterDialog + * @see com.jetbrains.python.sdk.add.v2.PythonAddNewEnvironmentPanel + * @deprecated in favour of {@link com.jetbrains.python.sdk.add.v2} + */ +@Deprecated +@ApiStatus.Internal +package com.jetbrains.python.sdk.add.v1; + +import org.jetbrains.annotations.ApiStatus; \ No newline at end of file diff --git a/python/src/com/jetbrains/python/sdk/add/wizardUIUtil.kt b/python/src/com/jetbrains/python/sdk/add/v1/wizardUIUtil.kt similarity index 98% rename from python/src/com/jetbrains/python/sdk/add/wizardUIUtil.kt rename to python/src/com/jetbrains/python/sdk/add/v1/wizardUIUtil.kt index f65a659b368a..7d1cfbbc9e71 100644 --- a/python/src/com/jetbrains/python/sdk/add/wizardUIUtil.kt +++ b/python/src/com/jetbrains/python/sdk/add/v1/wizardUIUtil.kt @@ -1,5 +1,5 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add +package com.jetbrains.python.sdk.add.v1 import com.intellij.openapi.project.Project import com.intellij.openapi.util.SystemInfoRt diff --git a/python/src/com/jetbrains/python/sdk/add/v2/CondaExistingEnvironmentSelector.kt b/python/src/com/jetbrains/python/sdk/add/v2/CondaExistingEnvironmentSelector.kt index cbe3b01cb9ac..0a83d6348b7a 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/CondaExistingEnvironmentSelector.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/CondaExistingEnvironmentSelector.kt @@ -15,7 +15,7 @@ import com.intellij.ui.dsl.builder.Panel import com.intellij.ui.dsl.builder.bindItem import com.intellij.ui.layout.predicate import com.jetbrains.python.PyBundle.message -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.sdk.ModuleOrProject import com.jetbrains.python.sdk.flavors.conda.PyCondaEnv import com.jetbrains.python.sdk.flavors.conda.PyCondaEnvIdentity diff --git a/python/src/com/jetbrains/python/sdk/add/v2/CondaNewEnvironmentCreator.kt b/python/src/com/jetbrains/python/sdk/add/v2/CondaNewEnvironmentCreator.kt index 6014680aba54..7a76c74c4f18 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/CondaNewEnvironmentCreator.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/CondaNewEnvironmentCreator.kt @@ -10,10 +10,10 @@ import com.intellij.ui.dsl.builder.bindItem import com.intellij.ui.dsl.builder.bindText import com.intellij.ui.dsl.listCellRenderer.textListCellRenderer import com.jetbrains.python.PyBundle.message -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.psi.LanguageLevel import com.jetbrains.python.sdk.ModuleOrProject -import com.jetbrains.python.sdk.add.target.conda.condaSupportedLanguages +import com.jetbrains.python.sdk.conda.condaSupportedLanguages import com.jetbrains.python.sdk.flavors.conda.NewCondaEnvRequest import com.jetbrains.python.statistics.InterpreterCreationMode import com.jetbrains.python.statistics.InterpreterType diff --git a/python/src/com/jetbrains/python/sdk/add/v2/CustomNewEnvironmentCreator.kt b/python/src/com/jetbrains/python/sdk/add/v2/CustomNewEnvironmentCreator.kt index 0bf0dca1c42d..2a2bd8970d60 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/CustomNewEnvironmentCreator.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/CustomNewEnvironmentCreator.kt @@ -13,7 +13,7 @@ import com.intellij.ui.dsl.builder.Align import com.intellij.ui.dsl.builder.Panel import com.intellij.util.concurrency.annotations.RequiresEdt import com.jetbrains.python.PyBundle.message -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.sdk.* import com.jetbrains.python.sdk.flavors.PythonSdkFlavor import com.jetbrains.python.statistics.InterpreterCreationMode diff --git a/python/src/com/jetbrains/python/sdk/add/ProjectLocationContext.kt b/python/src/com/jetbrains/python/sdk/add/v2/ProjectLocationContext.kt similarity index 83% rename from python/src/com/jetbrains/python/sdk/add/ProjectLocationContext.kt rename to python/src/com/jetbrains/python/sdk/add/v2/ProjectLocationContext.kt index a02fa35a6f7a..a1dff1317161 100644 --- a/python/src/com/jetbrains/python/sdk/add/ProjectLocationContext.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/ProjectLocationContext.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.add.v2 import com.intellij.execution.target.TargetEnvironmentConfiguration import com.intellij.execution.wsl.WSLDistribution @@ -11,7 +11,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import java.nio.file.Path -class ProjectLocationContexts { +internal class ProjectLocationContexts { fun getProjectLocationContextFor(projectPath: String): ProjectLocationContext { val wslPath = parseWindowsUncPath(projectPath) return if (wslPath != null) WslContext(wslPath.distribution) else LocalContext @@ -24,13 +24,13 @@ interface ProjectLocationContext { suspend fun fetchUserHomeDirectory(): Path? } -data object LocalContext : ProjectLocationContext { +internal data object LocalContext : ProjectLocationContext { override val targetEnvironmentConfiguration: TargetEnvironmentConfiguration? = null override suspend fun fetchUserHomeDirectory(): Path? = SystemProperties.getUserHome().nullize(nullizeSpaces = true)?.let { Path.of(it) } } -data class WslContext(val distribution: WSLDistribution) : ProjectLocationContext { +internal data class WslContext(val distribution: WSLDistribution) : ProjectLocationContext { override val targetEnvironmentConfiguration: TargetEnvironmentConfiguration = WslTargetEnvironmentConfiguration(distribution) override suspend fun fetchUserHomeDirectory(): Path? = diff --git a/python/src/com/jetbrains/python/sdk/add/PySdkCreator.kt b/python/src/com/jetbrains/python/sdk/add/v2/PySdkCreator.kt similarity index 82% rename from python/src/com/jetbrains/python/sdk/add/PySdkCreator.kt rename to python/src/com/jetbrains/python/sdk/add/v2/PySdkCreator.kt index 3954fda874f8..516f1fc51124 100644 --- a/python/src/com/jetbrains/python/sdk/add/PySdkCreator.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/PySdkCreator.kt @@ -1,9 +1,9 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add +package com.jetbrains.python.sdk.add.v2 import com.intellij.openapi.projectRoots.Sdk import com.intellij.util.concurrency.annotations.RequiresEdt -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.sdk.ModuleOrProject interface PySdkCreator { diff --git a/python/src/com/jetbrains/python/sdk/add/v2/PythonAddCustomInterpreter.kt b/python/src/com/jetbrains/python/sdk/add/v2/PythonAddCustomInterpreter.kt index 80ef93e2e2c2..979016d153a8 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/PythonAddCustomInterpreter.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/PythonAddCustomInterpreter.kt @@ -10,7 +10,7 @@ import com.intellij.ui.dsl.builder.Panel import com.intellij.ui.dsl.builder.bind import com.intellij.ui.dsl.builder.bindItem import com.jetbrains.python.PyBundle.message -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.sdk.ModuleOrProject import com.jetbrains.python.sdk.add.v2.PythonSupportedEnvironmentManagers.* import com.jetbrains.python.util.ErrorSink diff --git a/python/src/com/jetbrains/python/sdk/add/v2/PythonAddInterpreterPresenter.kt b/python/src/com/jetbrains/python/sdk/add/v2/PythonAddInterpreterPresenter.kt index aabc035dc7f8..929ad8397fe8 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/PythonAddInterpreterPresenter.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/PythonAddInterpreterPresenter.kt @@ -7,9 +7,7 @@ import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.projectRoots.Sdk import com.intellij.platform.util.coroutines.flow.mapStateIn import com.intellij.util.text.nullize -import com.jetbrains.python.sdk.add.ProjectLocationContext -import com.jetbrains.python.sdk.add.ProjectLocationContexts -import com.jetbrains.python.sdk.add.target.conda.suggestCondaPath +import com.jetbrains.python.sdk.conda.suggestCondaPath import com.jetbrains.python.sdk.flavors.conda.PyCondaEnv import com.jetbrains.python.sdk.flavors.conda.PyCondaEnvIdentity import kotlinx.coroutines.* diff --git a/python/src/com/jetbrains/python/sdk/add/v2/PythonAddNewEnvironmentPanel.kt b/python/src/com/jetbrains/python/sdk/add/v2/PythonAddNewEnvironmentPanel.kt index c8cdc8db7bc5..5df22adbcf06 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/PythonAddNewEnvironmentPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/PythonAddNewEnvironmentPanel.kt @@ -22,10 +22,9 @@ import com.intellij.ui.dsl.builder.TopGap import com.intellij.ui.dsl.builder.bindText import com.intellij.util.ui.showingScope import com.jetbrains.python.PyBundle.message -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.sdk.ModuleOrProject import com.jetbrains.python.sdk.VirtualEnvReader -import com.jetbrains.python.sdk.add.PySdkCreator import com.jetbrains.python.sdk.add.v2.PythonInterpreterSelectionMode.* import com.jetbrains.python.statistics.InterpreterCreationMode import com.jetbrains.python.statistics.InterpreterTarget diff --git a/python/src/com/jetbrains/python/sdk/add/v2/PythonExistingEnvironmentSelector.kt b/python/src/com/jetbrains/python/sdk/add/v2/PythonExistingEnvironmentSelector.kt index a78273c38c8b..eedaa49f8f07 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/PythonExistingEnvironmentSelector.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/PythonExistingEnvironmentSelector.kt @@ -6,7 +6,7 @@ import com.intellij.openapi.ui.validation.DialogValidationRequestor import com.intellij.ui.dsl.builder.Align import com.intellij.ui.dsl.builder.Panel import com.jetbrains.python.PyBundle.message -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.sdk.ModuleOrProject import com.jetbrains.python.statistics.InterpreterCreationMode import com.jetbrains.python.statistics.InterpreterType diff --git a/python/src/com/jetbrains/python/sdk/add/v2/PythonNewVirtualenvCreator.kt b/python/src/com/jetbrains/python/sdk/add/v2/PythonNewVirtualenvCreator.kt index 2f7bb65b4652..f78ba242a63c 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/PythonNewVirtualenvCreator.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/PythonNewVirtualenvCreator.kt @@ -16,8 +16,8 @@ import com.intellij.ui.dsl.builder.* import com.intellij.ui.dsl.builder.components.validationTooltip import com.intellij.util.ui.showingScope import com.jetbrains.python.PyBundle.message -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo -import com.jetbrains.python.newProject.collector.PythonNewProjectWizardCollector +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.PythonNewProjectWizardCollector import com.jetbrains.python.sdk.VirtualEnvReader import com.jetbrains.python.newProjectWizard.validateProjectPathAndGetPath import com.jetbrains.python.sdk.ModuleOrProject diff --git a/python/src/com/jetbrains/python/sdk/add/v2/common.kt b/python/src/com/jetbrains/python/sdk/add/v2/common.kt index 82b31fc7523e..a86c89be413b 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/common.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/common.kt @@ -17,7 +17,7 @@ import com.intellij.openapi.wm.IdeFocusManager import com.intellij.ui.dsl.builder.Panel import com.jetbrains.python.PyBundle.message import com.jetbrains.python.icons.PythonIcons -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.sdk.LOGGER import com.jetbrains.python.sdk.ModuleOrProject import com.jetbrains.python.sdk.PythonSdkType diff --git a/python/src/com/jetbrains/python/sdk/add/v2/condaUtils.kt b/python/src/com/jetbrains/python/sdk/add/v2/condaUtils.kt index 7850207856f2..f78ab4e68bc2 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/condaUtils.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/condaUtils.kt @@ -13,9 +13,9 @@ import com.intellij.util.concurrency.annotations.RequiresEdt import com.jetbrains.python.PyBundle import com.jetbrains.python.sdk.PythonSdkAdditionalData import com.jetbrains.python.sdk.PythonSdkType -import com.jetbrains.python.sdk.add.target.conda.TargetCommandExecutor -import com.jetbrains.python.sdk.add.target.conda.TargetEnvironmentRequestCommandExecutor -import com.jetbrains.python.sdk.add.target.conda.createCondaSdkAlongWithNewEnv +import com.jetbrains.python.sdk.conda.TargetCommandExecutor +import com.jetbrains.python.sdk.conda.TargetEnvironmentRequestCommandExecutor +import com.jetbrains.python.sdk.conda.createCondaSdkAlongWithNewEnv import com.jetbrains.python.sdk.flavors.conda.NewCondaEnvRequest import com.jetbrains.python.sdk.flavors.conda.PyCondaCommand import com.jetbrains.python.sdk.flavors.conda.PyCondaFlavorData diff --git a/python/src/com/jetbrains/python/sdk/add/v2/models.kt b/python/src/com/jetbrains/python/sdk/add/v2/models.kt index 0b5132bbe56b..fe0fe6715c4f 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/models.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/models.kt @@ -21,7 +21,7 @@ import com.jetbrains.python.configuration.PyConfigurableInterpreterList import com.jetbrains.python.newProject.steps.ProjectSpecificSettingsStep import com.jetbrains.python.psi.LanguageLevel import com.jetbrains.python.sdk.* -import com.jetbrains.python.sdk.add.target.conda.suggestCondaPath +import com.jetbrains.python.sdk.conda.suggestCondaPath import com.jetbrains.python.sdk.flavors.PythonSdkFlavor import com.jetbrains.python.sdk.flavors.conda.PyCondaEnv import com.jetbrains.python.sdk.flavors.conda.PyCondaEnvIdentity diff --git a/python/src/com/jetbrains/python/sdk/add/v2/presentersExt.kt b/python/src/com/jetbrains/python/sdk/add/v2/presentersExt.kt index 2c17512b5b0d..04d3f020e4b6 100644 --- a/python/src/com/jetbrains/python/sdk/add/v2/presentersExt.kt +++ b/python/src/com/jetbrains/python/sdk/add/v2/presentersExt.kt @@ -17,7 +17,7 @@ import com.jetbrains.extensions.failure import com.jetbrains.python.PyBundle.message import com.jetbrains.python.sdk.PythonSdkType import com.jetbrains.python.sdk.VirtualEnvReader -import com.jetbrains.python.sdk.add.target.conda.createCondaSdkFromExistingEnv +import com.jetbrains.python.sdk.conda.createCondaSdkFromExistingEnv import com.jetbrains.python.sdk.excludeInnerVirtualEnv import com.jetbrains.python.sdk.flavors.conda.PyCondaCommand import com.jetbrains.python.sdk.suggestAssociatedSdkName diff --git a/python/src/com/jetbrains/python/sdk/add/target/conda/PyAddCondaTools.kt b/python/src/com/jetbrains/python/sdk/conda/PyAddCondaTools.kt similarity index 96% rename from python/src/com/jetbrains/python/sdk/add/target/conda/PyAddCondaTools.kt rename to python/src/com/jetbrains/python/sdk/conda/PyAddCondaTools.kt index 8787cbfdd003..32b73b40fea9 100644 --- a/python/src/com/jetbrains/python/sdk/add/target/conda/PyAddCondaTools.kt +++ b/python/src/com/jetbrains/python/sdk/conda/PyAddCondaTools.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.jetbrains.python.sdk.add.target.conda +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.jetbrains.python.sdk.conda import com.intellij.execution.Platform import com.intellij.execution.process.CapturingProcessHandler @@ -21,6 +21,9 @@ import com.intellij.platform.util.progress.RawProgressReporter import com.jetbrains.extensions.failure import com.jetbrains.python.psi.LanguageLevel import com.jetbrains.python.sdk.* +import com.jetbrains.python.sdk.add.v1.PyAddCondaPanelModel +import com.jetbrains.python.sdk.add.v1.loadLocalPythonCondaPath +import com.jetbrains.python.sdk.add.v1.saveLocalPythonCondaPath import com.jetbrains.python.sdk.flavors.PyFlavorAndData import com.jetbrains.python.sdk.flavors.conda.* import com.jetbrains.python.target.PyTargetAwareAdditionalData @@ -37,7 +40,7 @@ import kotlin.io.path.pathString /** * Levels to be used for new conda envs */ -val condaSupportedLanguages: List +internal val condaSupportedLanguages: List get() = LanguageLevel.SUPPORTED_LEVELS .asReversed() .filter { it < LanguageLevel.PYTHON313 } diff --git a/python/src/com/jetbrains/python/sdk/configuration/PyProjectVirtualEnvConfiguration.kt b/python/src/com/jetbrains/python/sdk/configuration/PyProjectVirtualEnvConfiguration.kt index 579b1a0c3aab..52afb47b0798 100644 --- a/python/src/com/jetbrains/python/sdk/configuration/PyProjectVirtualEnvConfiguration.kt +++ b/python/src/com/jetbrains/python/sdk/configuration/PyProjectVirtualEnvConfiguration.kt @@ -26,9 +26,9 @@ import com.jetbrains.python.packaging.PyPackageManager import com.jetbrains.python.packaging.PyPackageManagers import com.jetbrains.python.run.PythonInterpreterTargetEnvironmentFactory import com.jetbrains.python.sdk.* -import com.jetbrains.python.sdk.add.target.PyAddSdkPanelBase -import com.jetbrains.python.sdk.add.target.PyAddSdkPanelBase.Companion.isLocal -import com.jetbrains.python.sdk.add.target.TargetPanelExtension +import com.jetbrains.python.sdk.add.v1.PyAddSdkPanelBase +import com.jetbrains.python.sdk.add.v1.PyAddSdkPanelBase.Companion.isLocal +import com.jetbrains.python.sdk.add.v1.TargetPanelExtension import com.jetbrains.python.sdk.flavors.PyFlavorAndData import com.jetbrains.python.sdk.flavors.PyFlavorData import com.jetbrains.python.target.PyTargetAwareAdditionalData diff --git a/python/src/com/jetbrains/python/sdk/flavors/conda/PyCondaEnv.kt b/python/src/com/jetbrains/python/sdk/flavors/conda/PyCondaEnv.kt index 17000497cc6a..b53e3102d011 100644 --- a/python/src/com/jetbrains/python/sdk/flavors/conda/PyCondaEnv.kt +++ b/python/src/com/jetbrains/python/sdk/flavors/conda/PyCondaEnv.kt @@ -6,12 +6,11 @@ import com.fasterxml.jackson.databind.node.ObjectNode import com.fasterxml.jackson.dataformat.yaml.YAMLFactory import com.google.gson.Gson import com.intellij.execution.target.* -import com.intellij.openapi.progress.* import com.intellij.openapi.projectRoots.Sdk import com.jetbrains.extensions.failure import com.jetbrains.python.psi.LanguageLevel -import com.jetbrains.python.sdk.add.target.conda.TargetCommandExecutor -import com.jetbrains.python.sdk.add.target.conda.createCondaSdkFromExistingEnv +import com.jetbrains.python.sdk.conda.TargetCommandExecutor +import com.jetbrains.python.sdk.conda.createCondaSdkFromExistingEnv import com.jetbrains.python.sdk.flavors.conda.PyCondaEnv.Companion.getEnvs import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.future.await diff --git a/python/src/com/jetbrains/python/sdk/pipenv/PyAddPipEnvPanel.kt b/python/src/com/jetbrains/python/sdk/pipenv/PyAddPipEnvPanel.kt index ae6c47d9bbeb..c89d3f4046f5 100644 --- a/python/src/com/jetbrains/python/sdk/pipenv/PyAddPipEnvPanel.kt +++ b/python/src/com/jetbrains/python/sdk/pipenv/PyAddPipEnvPanel.kt @@ -21,7 +21,7 @@ import com.intellij.util.ui.FormBuilder import com.jetbrains.python.PyBundle import com.jetbrains.python.PySdkBundle import com.jetbrains.python.PythonModuleTypeBase -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo import com.jetbrains.python.sdk.* import com.jetbrains.python.sdk.add.PyAddNewEnvPanel import com.jetbrains.python.sdk.add.PySdkPathChoosingComboBox diff --git a/python/src/com/jetbrains/python/sdk/poetry/ui/PyAddExistingPoetryEnvPanel.kt b/python/src/com/jetbrains/python/sdk/poetry/ui/PyAddExistingPoetryEnvPanel.kt index f07214664b76..107f00a94467 100644 --- a/python/src/com/jetbrains/python/sdk/poetry/ui/PyAddExistingPoetryEnvPanel.kt +++ b/python/src/com/jetbrains/python/sdk/poetry/ui/PyAddExistingPoetryEnvPanel.kt @@ -10,9 +10,9 @@ import com.intellij.util.ui.FormBuilder import com.jetbrains.python.PyBundle import com.jetbrains.python.PySdkBundle import com.jetbrains.python.sdk.* -import com.jetbrains.python.sdk.add.PyAddSdkPanel import com.jetbrains.python.sdk.add.PyAddSdkView import com.jetbrains.python.sdk.add.PySdkPathChoosingComboBox +import com.jetbrains.python.sdk.add.PyAddSdkPanel import com.jetbrains.python.sdk.add.addInterpretersAsync import com.jetbrains.python.sdk.poetry.* import java.awt.BorderLayout diff --git a/python/src/com/jetbrains/python/sdk/poetry/ui/PyAddNewPoetryPanel.kt b/python/src/com/jetbrains/python/sdk/poetry/ui/PyAddNewPoetryPanel.kt index a1b118ac22ce..c339b885022c 100644 --- a/python/src/com/jetbrains/python/sdk/poetry/ui/PyAddNewPoetryPanel.kt +++ b/python/src/com/jetbrains/python/sdk/poetry/ui/PyAddNewPoetryPanel.kt @@ -20,11 +20,12 @@ import com.intellij.util.text.nullize import com.intellij.util.ui.FormBuilder import com.jetbrains.python.PyBundle import com.jetbrains.python.PySdkBundle -import com.jetbrains.python.newProject.collector.InterpreterStatisticsInfo -import com.jetbrains.python.sdk.* +import com.jetbrains.python.newProjectWizard.collector.InterpreterStatisticsInfo +import com.jetbrains.python.sdk.PySdkSettings import com.jetbrains.python.sdk.add.PyAddNewEnvPanel import com.jetbrains.python.sdk.add.PySdkPathChoosingComboBox import com.jetbrains.python.sdk.add.addInterpretersAsync +import com.jetbrains.python.sdk.basePath import com.jetbrains.python.sdk.poetry.* import com.jetbrains.python.statistics.InterpreterTarget import com.jetbrains.python.statistics.InterpreterType @@ -40,11 +41,13 @@ import kotlin.io.path.absolutePathString * The UI panel for adding the poetry interpreter for the project. * */ -class PyAddNewPoetryPanel(private val project: Project?, - private val module: Module?, - private val existingSdks: List, - override var newProjectPath: String?, - context: UserDataHolder) : PyAddNewEnvPanel() { +class PyAddNewPoetryPanel( + private val project: Project?, + private val module: Module?, + private val existingSdks: List, + override var newProjectPath: String?, + context: UserDataHolder, +) : PyAddNewEnvPanel() { override val envName = "Poetry" override val panelName: String get() = PyBundle.message("python.sdk.poetry.environment.panel.title") diff --git a/python/src/com/jetbrains/python/target/PythonLanguageRuntimeUI.kt b/python/src/com/jetbrains/python/target/PythonLanguageRuntimeUI.kt index 46ef68d21bfd..279d1f37ebd7 100644 --- a/python/src/com/jetbrains/python/target/PythonLanguageRuntimeUI.kt +++ b/python/src/com/jetbrains/python/target/PythonLanguageRuntimeUI.kt @@ -14,7 +14,7 @@ import com.intellij.ui.dsl.builder.AlignX import com.intellij.ui.dsl.builder.panel import com.jetbrains.python.PyBundle import com.jetbrains.python.configuration.PyConfigurableInterpreterList -import com.jetbrains.python.sdk.add.target.PyAddTargetBasedSdkPanel +import com.jetbrains.python.sdk.add.v1.PyAddTargetBasedSdkPanel import java.util.function.Supplier class PythonLanguageRuntimeUI(project: Project, diff --git a/python/testSrc/com/jetbrains/env/python/api/PythonType.kt b/python/testSrc/com/jetbrains/env/python/api/PythonType.kt index 8e1115c5fa48..f5d38236ba6e 100644 --- a/python/testSrc/com/jetbrains/env/python/api/PythonType.kt +++ b/python/testSrc/com/jetbrains/env/python/api/PythonType.kt @@ -12,7 +12,7 @@ import com.jetbrains.env.PyEnvTestSettings import com.jetbrains.extensions.failure import com.jetbrains.python.packaging.findCondaExecutableRelativeToEnv import com.jetbrains.python.sdk.VirtualEnvReader -import com.jetbrains.python.sdk.add.target.conda.TargetEnvironmentRequestCommandExecutor +import com.jetbrains.python.sdk.conda.TargetEnvironmentRequestCommandExecutor import com.jetbrains.python.sdk.flavors.conda.PyCondaEnv import com.jetbrains.python.sdk.flavors.conda.PyCondaEnvIdentity import kotlinx.coroutines.Dispatchers diff --git a/python/testSrc/com/jetbrains/env/python/conda/LocalCondaRule.kt b/python/testSrc/com/jetbrains/env/python/conda/LocalCondaRule.kt index 75345f4d29fd..5161e19005a5 100644 --- a/python/testSrc/com/jetbrains/env/python/conda/LocalCondaRule.kt +++ b/python/testSrc/com/jetbrains/env/python/conda/LocalCondaRule.kt @@ -4,8 +4,8 @@ package com.jetbrains.env.python.conda import com.intellij.execution.target.FullPathOnTarget import com.intellij.execution.target.local.LocalTargetEnvironmentRequest import com.jetbrains.env.python.api.PythonType -import com.jetbrains.python.sdk.add.target.conda.TargetCommandExecutor -import com.jetbrains.python.sdk.add.target.conda.TargetEnvironmentRequestCommandExecutor +import com.jetbrains.python.sdk.conda.TargetCommandExecutor +import com.jetbrains.python.sdk.conda.TargetEnvironmentRequestCommandExecutor import com.jetbrains.python.sdk.flavors.conda.PyCondaCommand import kotlinx.coroutines.runBlocking import org.junit.AssumptionViolatedException diff --git a/python/testSrc/com/jetbrains/env/python/conda/PyAddCondaPanelModelTest.kt b/python/testSrc/com/jetbrains/env/python/conda/PyAddCondaPanelModelTest.kt index 6324294b3f54..305eab4d2557 100644 --- a/python/testSrc/com/jetbrains/env/python/conda/PyAddCondaPanelModelTest.kt +++ b/python/testSrc/com/jetbrains/env/python/conda/PyAddCondaPanelModelTest.kt @@ -10,7 +10,7 @@ import com.intellij.testFramework.ProjectRule import com.jetbrains.getPythonVersion import com.jetbrains.python.PyBundle import com.jetbrains.python.psi.LanguageLevel -import com.jetbrains.python.sdk.add.target.conda.PyAddCondaPanelModel +import com.jetbrains.python.sdk.add.v1.PyAddCondaPanelModel import com.jetbrains.python.sdk.flavors.conda.NewCondaEnvRequest import com.jetbrains.python.sdk.flavors.conda.PyCondaEnv import com.jetbrains.python.sdk.flavors.conda.PyCondaEnvIdentity diff --git a/python/testSrc/com/jetbrains/env/python/conda/PyCondaSdkTest.kt b/python/testSrc/com/jetbrains/env/python/conda/PyCondaSdkTest.kt index 91f90fc77a74..0d8f72947792 100644 --- a/python/testSrc/com/jetbrains/env/python/conda/PyCondaSdkTest.kt +++ b/python/testSrc/com/jetbrains/env/python/conda/PyCondaSdkTest.kt @@ -16,8 +16,8 @@ import com.jetbrains.getPythonVersion import com.jetbrains.python.psi.LanguageLevel import com.jetbrains.python.run.PythonScriptExecution import com.jetbrains.python.run.buildTargetedCommandLine -import com.jetbrains.python.sdk.add.target.conda.createCondaSdkAlongWithNewEnv -import com.jetbrains.python.sdk.add.target.conda.createCondaSdkFromExistingEnv +import com.jetbrains.python.sdk.conda.createCondaSdkAlongWithNewEnv +import com.jetbrains.python.sdk.conda.createCondaSdkFromExistingEnv import com.jetbrains.python.sdk.flavors.conda.* import com.jetbrains.python.sdk.getOrCreateAdditionalData import kotlinx.coroutines.test.runTest diff --git a/python/testSrc/com/jetbrains/env/python/conda/PyCondaTest.kt b/python/testSrc/com/jetbrains/env/python/conda/PyCondaTest.kt index 3631a036b620..c821e0a3379f 100644 --- a/python/testSrc/com/jetbrains/env/python/conda/PyCondaTest.kt +++ b/python/testSrc/com/jetbrains/env/python/conda/PyCondaTest.kt @@ -12,8 +12,8 @@ import com.intellij.openapi.util.registry.Registry import com.intellij.testFramework.ProjectRule import com.jetbrains.getPythonVersion import com.jetbrains.python.psi.LanguageLevel -import com.jetbrains.python.sdk.add.target.conda.loadLocalPythonCondaPath -import com.jetbrains.python.sdk.add.target.conda.saveLocalPythonCondaPath +import com.jetbrains.python.sdk.add.v1.loadLocalPythonCondaPath +import com.jetbrains.python.sdk.add.v1.saveLocalPythonCondaPath import com.jetbrains.python.sdk.flavors.conda.* import com.jetbrains.python.sdk.flavors.conda.NewCondaEnvRequest.EmptyNamedEnv import com.jetbrains.python.sdk.flavors.conda.NewCondaEnvRequest.LocalEnvByLocalEnvironmentFile