From 2334617c1b96aa465691b33a93a3b41a1179615f Mon Sep 17 00:00:00 2001 From: Semyon Proshev Date: Fri, 4 Jun 2021 15:22:52 +0300 Subject: [PATCH] Don't configure python interpreter for modules without py files (PY-49082, PY-49122) GitOrigin-RevId: 2c5d38216461134f5bf06cfeb47acea0c55c38bb --- ...luginCommandLineInspectionProjectConfigurator.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/python/pluginJava/com/jetbrains/python/inspections/PythonPluginCommandLineInspectionProjectConfigurator.java b/python/pluginJava/com/jetbrains/python/inspections/PythonPluginCommandLineInspectionProjectConfigurator.java index bbfd8df944cf..a1eaef678c3b 100644 --- a/python/pluginJava/com/jetbrains/python/inspections/PythonPluginCommandLineInspectionProjectConfigurator.java +++ b/python/pluginJava/com/jetbrains/python/inspections/PythonPluginCommandLineInspectionProjectConfigurator.java @@ -4,13 +4,16 @@ package com.jetbrains.python.inspections; import com.intellij.facet.FacetManager; import com.intellij.ide.CommandLineInspectionProgressReporter; import com.intellij.ide.CommandLineInspectionProjectConfigurator; +import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.ProjectJdkTable; import com.intellij.openapi.projectRoots.Sdk; +import com.intellij.psi.search.FileTypeIndex; import com.jetbrains.python.PyBundle; +import com.jetbrains.python.PythonFileType; import com.jetbrains.python.facet.PythonFacet; import com.jetbrains.python.facet.PythonFacetType; import com.jetbrains.python.sdk.PyDetectedSdk; @@ -115,6 +118,14 @@ public class PythonPluginCommandLineInspectionProjectConfigurator implements Com final PythonFacetType facetType = PythonFacetType.getInstance(); for (Module m : ModuleManager.getInstance(project).getModules()) { + if (ReadAction.compute(() -> !FileTypeIndex.containsFileOfType(PythonFileType.INSTANCE, m.getModuleContentScope()))) { + logger.reportMessage( + 3, + "Skipping Python interpreter configuration for " + m.getName() + " because the module doesn't contain any Python files" + ); + continue; + } + final FacetManager facetManager = FacetManager.getInstance(m); final var facet = facetManager.getFacetByType(facetType.getId());