Results (State collectedInfo) { if (collectedInfo == null) return null; ArrayList<String> options = new ArrayList<>(); if (!collectedInfo.ignoredErrors.isEmpty()) { options.add("--ignore=" + DEFAULT_IGNORED_ERRORS + "," + StringUtil.join(collectedInfo.ignoredErrors, ",")); } if (collectedInfo.hangClosingBrackets) { options.add("--hang-closing"); } options.add("--max-line-length=" + collectedInfo.margin); options.add("-"); PythonHelper pycodestyleScript; if (collectedInfo.interpreterVersion.isOlderThan(LanguageLevel.PYTHON36)) { pycodestyleScript = PythonHelper.PYCODESTYLE_2_8_0; } else if (collectedInfo.interpreterVersion.isOlderThan(LanguageLevel.PYTHON38)) { pycodestyleScript = PythonHelper.PYCODESTYLE_2_10_0; } else { pycodestyleScript = PythonHelper.PYCODESTYLE; } GeneralCommandLine cmd = pycodestyleScript.newCommandLine(collectedInfo.interpreterPath, options); ProcessOutput output = PySdkUtil.getProcessOutput(cmd, new File(collectedInfo.interpreterPath).getParent(), ImmutableMap.of("PYTHONBUFFERED", "1"), 10000, collectedInfo.fileText.getBytes(StandardCharsets.UTF_8), false); Results results = new Results(collectedInfo.level); if (output.isTimeout()) { LOG.info("Timeout running pycodestyle.py"); return results; } if (!output.getStderr().isEmpty() && ApplicationInfo.getInstance().isEAP()) { LOG.info("Error running pycodestyle.py: " + output.getStderr()); } for (String line : output.getStdoutLines()) { ContainerUtil.addIfNotNull(results.problems, parseProblem(line)); } return results; }