mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
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
This commit is contained in:
committed by
intellij-monorepo-bot
parent
cf57f8dd5a
commit
3689a45984
+1
-1
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<directoryProjectConfigurator implementation="com.intellij.pycharm.community.ide.impl.PythonSourceRootConfigurator" id="sourceRoot"
|
||||
order="after sdk"/>
|
||||
<directoryProjectConfigurator implementation="com.intellij.pycharm.community.ide.impl.PlatformInspectionProfileConfigurator"/>
|
||||
<directoryProjectConfigurator implementation="com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeConfigurator"
|
||||
<directoryProjectConfigurator implementation="com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome.PyWelcomeConfigurator"
|
||||
id="welcome" order="last"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.openapi.module.ModuleTypeManager"
|
||||
@@ -70,8 +70,8 @@
|
||||
|
||||
<directoryIndexExcludePolicy implementation="com.intellij.pycharm.community.ide.impl.PyDirectoryIndexExcludePolicy"/>
|
||||
|
||||
<applicationService serviceImplementation="com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeSettings"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeCollector"/>
|
||||
<applicationService serviceImplementation="com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome.PyWelcomeSettings"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.intellij.pycharm.community.ide.impl.newProjectWizard.welcome.PyWelcomeCollector"/>
|
||||
<notificationGroup id="PyCharm Professional Advertiser" displayType="STICKY_BALLOON" isLogByDefault="false"
|
||||
bundle="messages.PyCharmCommunityCustomizationBundle" key="notification.group.pro.advertiser"/>
|
||||
|
||||
@@ -98,13 +98,13 @@
|
||||
|
||||
<actions resource-bundle="messages.ActionsBundle">
|
||||
<action id="PySwitchSdkAction" class="com.intellij.pycharm.community.ide.impl.configuration.PySwitchSdkAction"/>
|
||||
<action id="NewDirectoryProject" class="com.intellij.pycharm.community.ide.impl.newProject.PyCharmNewProjectAction">
|
||||
<action id="NewDirectoryProject" class="com.intellij.pycharm.community.ide.impl.newProjectWizard.PyCharmNewProjectAction">
|
||||
<add-to-group group-id="NewProjectOrModuleGroup"/>
|
||||
</action>
|
||||
|
||||
<group id="WelcomeScreen.Platform.NewProject">
|
||||
<group id="WelcomeScreen.CreateDirectoryProject"
|
||||
class="com.intellij.pycharm.community.ide.impl.newProject.impl.PyV3NewProjectStepAction"/>
|
||||
class="com.intellij.pycharm.community.ide.impl.newProjectWizard.impl.PyV3NewProjectStepAction"/>
|
||||
<reference ref="WelcomeScreen.OpenDirectoryProject"/>
|
||||
|
||||
<add-to-group group-id="WelcomeScreen.QuickStart" anchor="first"/>
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+6
@@ -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;
|
||||
+5
-2
@@ -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) {
|
||||
+3
-3
@@ -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();
|
||||
+7
-6
@@ -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<PyV3BaseProjectSettings>(PyV3Customization) {
|
||||
|
||||
@@ -60,7 +60,8 @@ internal class PyV3NewProjectStepAction : AbstractNewProjectStep<PyV3BaseProject
|
||||
*/
|
||||
@Suppress("UNCHECKED_CAST", "DEPRECATION")
|
||||
private fun createLegacyStep(projectGenerator: PythonProjectGenerator<*>): ProjectSettingsStepBase<PyV3BaseProjectSettings> {
|
||||
return PythonProjectSpecificSettingsStep(projectGenerator as PythonProjectGenerator<PyNewProjectSettings>, PythonGenerateProjectCallback()) as ProjectSettingsStepBase<PyV3BaseProjectSettings>
|
||||
return PythonProjectSpecificSettingsStep(projectGenerator as PythonProjectGenerator<PyNewProjectSettings>,
|
||||
PythonGenerateProjectCallback()) as ProjectSettingsStepBase<PyV3BaseProjectSettings>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -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
|
||||
+2
-2
@@ -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<PyV3EmptyProjectSettings>(
|
||||
internal class PyV3EmptyProjectGenerator : PyV3ProjectBaseGenerator<PyV3EmptyProjectSettings>(
|
||||
PyV3EmptyProjectSettings(generateWelcomeScript = false), PyV3EmptyProjectUI, _newProjectName = "PythonProject") {
|
||||
override fun getName(): @Nls String = PyBundle.message("pure.python.project")
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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<PyV3EmptyProjectSettings> {
|
||||
internal object PyV3EmptyProjectUI : PyV3ProjectTypeSpecificUI<PyV3EmptyProjectSettings> {
|
||||
override fun configureUpperPanel(settings: PyV3EmptyProjectSettings, checkBoxRow: Row, belowCheckBoxes: Panel) {
|
||||
checkBoxRow.checkBox(PyBundle.message("new.project.welcome")).bindSelected(settings::generateWelcomeScript)
|
||||
}
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+8
-8
@@ -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
|
||||
+2
-2
@@ -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);
|
||||
|
||||
+1
-1
@@ -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
|
||||
+2
-2
@@ -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<PyWelcomeSettings.State> {
|
||||
internal class PyWelcomeSettings : PersistentStateComponent<PyWelcomeSettings.State> {
|
||||
companion object {
|
||||
@JvmStatic
|
||||
val instance: PyWelcomeSettings
|
||||
+5
@@ -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;
|
||||
@@ -506,7 +506,7 @@ The Python plug-in provides smart editing for Python scripts. The feature set of
|
||||
<statistics.projectUsagesCollector implementation="com.jetbrains.python.statistics.PyCompatibilityInspectionCollector"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.jetbrains.python.namespacePackages.PyNamespacePackagesStatisticsCollector"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.jetbrains.python.codeInsight.codeVision.PyCodeVisionUsageCollector"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.jetbrains.python.newProject.collector.PythonNewProjectWizardCollector"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.jetbrains.python.newProjectWizard.collector.PythonNewProjectWizardCollector"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.jetbrains.python.sdk.add.collector.PythonNewInterpreterAddedCollector"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.jetbrains.python.run.runAnything.PyRunAnythingCollector"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.jetbrains.python.debugger.statistics.PyDataViewerCollector"/>
|
||||
@@ -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"/>
|
||||
<toolWindowExtractorMode id="Python Packages" mode="mirror"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.jetbrains.python.sdk.add.PyAddNewEnvCollector"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.jetbrains.python.sdk.add.v1.PyAddNewEnvCollector"/>
|
||||
<statistics.counterUsagesCollector
|
||||
implementationClass="com.jetbrains.python.packaging.statistics.PythonPackagesToolwindowStatisticsCollector"/>
|
||||
|
||||
|
||||
-1
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
|
||||
@@ -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<Sdk>,
|
||||
newProjectPath: String?,
|
||||
|
||||
@@ -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<Sdk>, newProjectPath: String?, preferredInterpreterType: PythonInterpreterSelectionMode? = null) : PyAddSdkPanel() {
|
||||
internal class PyAddNewEnvironmentPanel internal constructor(existingSdks: List<Sdk>, newProjectPath: String?, preferredInterpreterType: PythonInterpreterSelectionMode? = null) : PyAddSdkPanel() {
|
||||
|
||||
@Deprecated(message = "Use constructor without ignored")
|
||||
constructor(existingSdks: List<Sdk>, newProjectPath: String?, @Suppress("UNUSED_PARAMETER") ignored: String?) : this(existingSdks, newProjectPath, preferredInterpreterType = null)
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -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;
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
+1
-1
@@ -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
|
||||
+1
-1
@@ -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;
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()
|
||||
@@ -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()
|
||||
@@ -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
|
||||
|
||||
@@ -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<Sdk>) : DialogWrapper(project) {
|
||||
class PyAddSdkDialog private constructor(
|
||||
private val project: Project?,
|
||||
private val module: Module?,
|
||||
private val existingSdks: List<Sdk>,
|
||||
) : 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<Sdk>): PyAddSdkPanel {
|
||||
private fun createVirtualEnvPanel(
|
||||
project: Project?,
|
||||
module: Module?,
|
||||
existingSdks: List<Sdk>,
|
||||
): 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<Sdk>,
|
||||
context: UserDataHolder): PyAddSdkView? {
|
||||
private fun PyAddSdkProvider.safeCreateView(
|
||||
project: Project?,
|
||||
module: Module?,
|
||||
existingSdks: List<Sdk>,
|
||||
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()
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
@@ -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<PyAddSdkPanel>,
|
||||
defaultPanel: PyAddSdkPanel) : PyAddSdkPanel() {
|
||||
defaultPanel: PyAddSdkPanel
|
||||
) : PyAddSdkPanel() {
|
||||
override val panelName: String get() = nameGetter.get() // NON-NLS
|
||||
override val icon: Icon = panelIcon
|
||||
var selectedPanel: PyAddSdkPanel = defaultPanel
|
||||
|
||||
@@ -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<PyAddSdkDialogFlowAction, Boolean>
|
||||
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<Sdk>,
|
||||
@@ -188,4 +191,4 @@ fun addBaseInterpretersAsync(sdkComboBox: PySdkPathChoosingComboBox,
|
||||
callback()
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
sealed class PySdkComboBoxItem
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
* <p>
|
||||
* Various classes directly in the package are only here because of third party plugins
|
||||
*/
|
||||
package com.jetbrains.python.sdk.add;
|
||||
@@ -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
|
||||
+1
-1
@@ -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
|
||||
+8
-2
@@ -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
|
||||
+2
-4
@@ -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
|
||||
+9
-7
@@ -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<Sdk>,
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
-16
@@ -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
|
||||
|
||||
+3
-2
@@ -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
|
||||
+4
-3
@@ -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
|
||||
+2
-2
@@ -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
|
||||
+17
-12
@@ -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<Sdk>,
|
||||
suggestedRequirementsTxtOrSetupPy: VirtualFile? = null) : JPanel() {
|
||||
class PyAddNewVirtualEnvFromFilePanel(
|
||||
private val module: Module,
|
||||
existingSdks: List<Sdk>,
|
||||
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<ValidationInfo> =
|
||||
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,
|
||||
)
|
||||
}
|
||||
}
|
||||
+5
-2
@@ -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
|
||||
@@ -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()
|
||||
+4
-4
@@ -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<TargetEnvironmentConfiguration>?)
|
||||
: 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
|
||||
+15
-20
@@ -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() }
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-4
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+7
-12
@@ -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<Sdk>,
|
||||
private val targetSupplier: Supplier<TargetEnvironmentConfiguration>?,
|
||||
@@ -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
|
||||
+22
-11
@@ -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<Sdk> = 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -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
|
||||
+3
-3
@@ -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 {
|
||||
@@ -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
|
||||
@@ -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)
|
||||
+6
-3
@@ -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<PySdkComboBoxItem> {
|
||||
+3
-3
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
+1
-1
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+5
-5
@@ -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? =
|
||||
+2
-2
@@ -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 {
|
||||
@@ -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
|
||||
|
||||
@@ -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.*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+6
-3
@@ -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<LanguageLevel>
|
||||
internal val condaSupportedLanguages: List<LanguageLevel>
|
||||
get() = LanguageLevel.SUPPORTED_LEVELS
|
||||
.asReversed()
|
||||
.filter { it < LanguageLevel.PYTHON313 }
|
||||
+3
-3
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<Sdk>,
|
||||
override var newProjectPath: String?,
|
||||
context: UserDataHolder) : PyAddNewEnvPanel() {
|
||||
class PyAddNewPoetryPanel(
|
||||
private val project: Project?,
|
||||
private val module: Module?,
|
||||
private val existingSdks: List<Sdk>,
|
||||
override var newProjectPath: String?,
|
||||
context: UserDataHolder,
|
||||
) : PyAddNewEnvPanel() {
|
||||
override val envName = "Poetry"
|
||||
override val panelName: String get() = PyBundle.message("python.sdk.poetry.environment.panel.title")
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user