mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-20 13:31:28 +07:00
Python: introduce failure as a sugar over Result.failure(Throwable(userVisibleText))
GitOrigin-RevId: cefb5234d830f4e306e385161dd07d35eb12989b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
1760e006dc
commit
6a9aebe3e6
@@ -29,6 +29,7 @@ import com.intellij.pycharm.community.ide.impl.configuration.PySdkConfigurationC
|
||||
import com.intellij.ui.IdeBorderFactory
|
||||
import com.intellij.ui.components.JBLabel
|
||||
import com.intellij.util.ui.JBUI
|
||||
import com.jetbrains.extensions.failure
|
||||
import com.jetbrains.python.PyBundle
|
||||
import com.jetbrains.python.PySdkBundle
|
||||
import com.jetbrains.python.packaging.PyPackageManager
|
||||
@@ -59,7 +60,7 @@ class PyRequirementsTxtOrSetupPySdkConfiguration : PyProjectSdkConfigurationExte
|
||||
|
||||
val data = askForEnvData(module, existingSdks, source)
|
||||
if (data == null) {
|
||||
return Result.failure(Throwable("askForEnvData is null"))
|
||||
return failure("askForEnvData is null")
|
||||
}
|
||||
|
||||
val (location, chosenBaseSdk, requirementsTxtOrSetupPy) = data
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.jetbrains.extensions
|
||||
|
||||
import com.intellij.openapi.util.NlsSafe
|
||||
|
||||
/**
|
||||
* [Result] failure with user-readable error
|
||||
*/
|
||||
fun <T> failure(error: @NlsSafe String): Result<T> = Result.failure(Throwable(error))
|
||||
@@ -45,6 +45,7 @@ import com.intellij.openapi.vfs.VfsUtil
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.util.PathUtil
|
||||
import com.intellij.webcore.packaging.PackagesNotificationPanel
|
||||
import com.jetbrains.extensions.failure
|
||||
import com.jetbrains.python.PyBundle
|
||||
import com.jetbrains.python.packaging.ui.PyPackageManagementService
|
||||
import com.jetbrains.python.psi.LanguageLevel
|
||||
@@ -272,18 +273,18 @@ internal fun PyDetectedSdk.setupAssociatedLogged(existingSdks: List<Sdk>, associ
|
||||
|
||||
fun PyDetectedSdk.setupAssociated(existingSdks: List<Sdk>, associatedModulePath: String?, doAssociate: Boolean): Result<Sdk> {
|
||||
if (!sdkSeemsValid) {
|
||||
return Result.failure(Throwable("sdk is not valid"))
|
||||
return failure("sdk is not valid")
|
||||
}
|
||||
|
||||
val homePath = this.homePath
|
||||
if (homePath == null) {
|
||||
// e.g. directory is not there anymore
|
||||
return Result.failure(Throwable("homePath is null"))
|
||||
return failure("homePath is null")
|
||||
}
|
||||
|
||||
val homeDir = this.homeDirectory
|
||||
if (homeDir == null) {
|
||||
return Result.failure(Throwable("homeDir is null"))
|
||||
return failure("homeDir is null")
|
||||
}
|
||||
|
||||
val suggestedName = if (doAssociate) {
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread
|
||||
import com.jetbrains.env.PyEnvTestCase
|
||||
import com.jetbrains.env.PyEnvTestSettings
|
||||
import com.jetbrains.extensions.failure
|
||||
import com.jetbrains.python.packaging.findCondaExecutableRelativeToEnv
|
||||
import com.jetbrains.python.sdk.PythonSdkUtil
|
||||
import com.jetbrains.python.sdk.VirtualEnvReader
|
||||
@@ -42,7 +43,7 @@ sealed class PythonType<T : Any>(private val tag: @NonNls String) {
|
||||
VirtualEnvReader.Instance.findPythonInPythonRoot(envDir)
|
||||
?: error("Can't find python binary in $envDir"), envDir)) // This is a misconfiguration, hence an error
|
||||
}
|
||||
?: Result.failure(Throwable("No python found. See ${PyEnvTestSettings::class} class for more info"))
|
||||
?: failure("No python found. See ${PyEnvTestSettings::class} class for more info")
|
||||
|
||||
|
||||
protected abstract suspend fun pythonPathToEnvironment(pythonBinary: PathToPythonBinary, envDir: Path): Pair<T, AutoCloseable>
|
||||
|
||||
Reference in New Issue
Block a user