diff --git a/python/openapi/src/com/jetbrains/python/newProject/PyNewProjectSettings.java b/python/openapi/src/com/jetbrains/python/newProject/PyNewProjectSettings.java index d71197da1497..105d6f7ecb7d 100644 --- a/python/openapi/src/com/jetbrains/python/newProject/PyNewProjectSettings.java +++ b/python/openapi/src/com/jetbrains/python/newProject/PyNewProjectSettings.java @@ -32,11 +32,12 @@ public class PyNewProjectSettings { @Nullable private String myRemotePath; - public Sdk getSdk() { + @Nullable + public final Sdk getSdk() { return mySdk; } - public void setSdk(Sdk sdk) { + public final void setSdk(@Nullable final Sdk sdk) { mySdk = sdk; } diff --git a/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java b/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java index 0c271105b26c..36ea2aa46dd7 100644 --- a/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java +++ b/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java @@ -15,18 +15,26 @@ */ package com.jetbrains.python.newProject; +import com.intellij.execution.ExecutionException; import com.intellij.facet.ui.ValidationResult; import com.intellij.icons.AllIcons.General; +import com.intellij.openapi.application.Application; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil; import com.intellij.openapi.ui.Messages; +import com.intellij.openapi.util.Pair; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.platform.DirectoryProjectGeneratorBase; import com.intellij.util.BooleanFunction; import com.intellij.util.containers.ContainerUtil; +import com.intellij.webcore.packaging.PackageManagementService.ErrorDescription; +import com.intellij.webcore.packaging.PackagesNotificationPanel; +import com.jetbrains.python.packaging.ui.PyPackageManagementService; import com.jetbrains.python.remote.*; import com.jetbrains.python.sdk.PyLazySdk; import com.jetbrains.python.sdk.PySdkUtil; @@ -37,6 +45,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.event.MouseListener; import java.io.File; +import java.util.Collections; import java.util.List; import java.util.function.Consumer; @@ -61,11 +70,16 @@ import java.util.function.Consumer; * * *
+ *{@link PyNewProjectSettings#getSdk()} may return null, or something else may prevent package installation. + * Use {@link #reportPackageInstallationFailure(String, Pair)} in this case. + *
* * @param