void (@NotNull PyFile node) { Module module = guessModule(node); if (module == null || isFileIgnored(node)) return; final Sdk sdk = PythonSdkUtil.findPythonSdk(module); final boolean pyCharm = PythonIdeLanguageCustomization.isMainlyPythonIde(); final List<LocalQuickFix> fixes = new ArrayList<>(); if (sdk == null) { final @InspectionMessage String message; if (pyCharm) { message = PyPsiBundle.message("INSP.interpreter.no.python.interpreter.configured.for.project"); } else { message = PyPsiBundle.message("INSP.interpreter.no.python.interpreter.configured.for.module"); } registerProblemWithCommonFixes(node, message, module, null, fixes, pyCharm); } else { final @NlsSafe String associatedModulePath = PySdkExtKt.getAssociatedModulePath(sdk); if (associatedModulePath == null || PySdkExtKt.isAssociatedWithAnotherModule(sdk, module)) { final PyInterpreterInspectionQuickFixData fixData = PySdkProvider.EP_NAME.getExtensionList().stream() .map(ext -> ext.createEnvironmentAssociationFix(module, sdk, pyCharm, associatedModulePath)) .filter(it -> it != null) .findFirst() .orElse(null); if (fixData != null) { fixes.add(fixData.getQuickFix()); // noinspection HardCodedStringLiteral registerProblemWithCommonFixes(node, fixData.getMessage(), module, sdk, fixes, pyCharm); return; } } if (! PySdkExtKt.getSdkSeemsValid(sdk)) { final @InspectionMessage String message; if (pyCharm) { message = PyPsiBundle.message("INSP.interpreter.invalid.python.interpreter.selected.for.project"); } else { message = PyPsiBundle.message("INSP.interpreter.invalid.python.interpreter.selected.for.module"); } registerProblemWithCommonFixes(node, message, module, sdk, fixes, pyCharm); } else { final LanguageLevel languageLevel = PythonSdkType.getLanguageLevelForSdk(sdk); if (!LanguageLevel.SUPPORTED_LEVELS.contains(languageLevel)) { final @InspectionMessage String message; if (pyCharm) { message = PyPsiBundle.message("INSP.interpreter.python.has.reached.its.end.of.life.and.is.no.longer.supported.in.pycharm", languageLevel); } else { message = PyPsiBundle.message("INSP.interpreter.python.has.reached.its.end.life.and.is.no.longer.supported.in.python.plugin", languageLevel); } registerProblemWithCommonFixes(node, message, module, sdk, fixes, pyCharm); } } } }