mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
[python] Fix env tests with conda.
If environment is conda, we must configure SDK in appropriate way (as bare python path is not enough for conda) Also: no need to reset currently set additional data GitOrigin-RevId: 663aa7f24cad138f2c06db711f6af602f68a780b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
009e71dbdb
commit
dbe26ecab3
@@ -11,6 +11,7 @@ import com.jetbrains.python.sdk.flavors.conda.CondaEnvSdkFlavor
|
||||
import com.jetbrains.python.sdk.flavors.conda.PyCondaEnv
|
||||
import com.jetbrains.python.sdk.flavors.conda.PyCondaEnvIdentity
|
||||
import com.jetbrains.python.sdk.flavors.conda.PyCondaFlavorData
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
import kotlin.io.path.pathString
|
||||
|
||||
|
||||
@@ -20,7 +21,8 @@ import kotlin.io.path.pathString
|
||||
*/
|
||||
@Suppress("DEPRECATION")
|
||||
@JvmOverloads
|
||||
internal fun fixPythonCondaSdk(sdk: Sdk, additionalData: SdkAdditionalData, suggestedCondaPath: FullPathOnTarget? = null) {
|
||||
@Internal
|
||||
fun fixPythonCondaSdk(sdk: Sdk, additionalData: SdkAdditionalData, suggestedCondaPath: FullPathOnTarget? = null) {
|
||||
if (additionalData !is PythonSdkAdditionalData) return
|
||||
if (sdk.isTargetBased) return
|
||||
if (additionalData.flavor is CondaEnvSdkFlavor) return
|
||||
|
||||
@@ -60,6 +60,10 @@ public final class PySdkTools {
|
||||
// sdkHome guarantees SDK name uniqueness. SdkUtil can't do that since no current SDK are provided.
|
||||
final Sdk sdk = SdkConfigurationUtil.setupSdk(NO_SDK, sdkHome, PythonSdkType.getInstance(), true, null, sdkHome.getPath());
|
||||
Assert.assertNotNull("Failed to create SDK on " + sdkHome, sdk);
|
||||
|
||||
// Env might be conda, so we look for conda binary and configure it as conda
|
||||
// Consider migrating to `conda` tag
|
||||
PyCondaSdkFixKt.fixPythonCondaSdk(sdk, PySdkExtKt.getOrCreateAdditionalData(sdk));
|
||||
ref.set(sdk);
|
||||
});
|
||||
final Sdk sdk = ref.get();
|
||||
@@ -108,8 +112,6 @@ public final class PySdkTools {
|
||||
|
||||
final SdkModificator modificator = sdk.getSdkModificator();
|
||||
|
||||
modificator.setSdkAdditionalData(new PythonSdkAdditionalData(PythonSdkFlavor.getFlavor(sdk)));
|
||||
|
||||
for (final String path : new PyTargetsIntrospectionFacade(sdk, project).getInterpreterPaths(new EmptyProgressIndicator())) {
|
||||
addTestSdkRoot(modificator, path);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user