From f2f0e41ff6e056ac6b072806047529f894e34c16 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 15 Oct 2013 16:44:29 +0200 Subject: [PATCH] pep8.py doesn't like our EOF marker (PY-11094) --- .../PyStructuredDocstringFormatter.java | 2 +- python/src/com/jetbrains/python/sdk/PySdkUtil.java | 13 ++++++++----- .../python/validation/Pep8ExternalAnnotator.java | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/python/src/com/jetbrains/python/documentation/PyStructuredDocstringFormatter.java b/python/src/com/jetbrains/python/documentation/PyStructuredDocstringFormatter.java index fb9ebc732a33..25b347b9b3f0 100644 --- a/python/src/com/jetbrains/python/documentation/PyStructuredDocstringFormatter.java +++ b/python/src/com/jetbrains/python/documentation/PyStructuredDocstringFormatter.java @@ -88,7 +88,7 @@ public class PyStructuredDocstringFormatter { final ProcessOutput output = PySdkUtil.getProcessOutput(new File(sdkHome).getParent(), new String[]{sdkHome, formatter}, - null, 5000, data); + null, 5000, data, true); if (output.isTimeout()) { LOG.info("timeout when calculating docstring"); return null; diff --git a/python/src/com/jetbrains/python/sdk/PySdkUtil.java b/python/src/com/jetbrains/python/sdk/PySdkUtil.java index cb1b7d6c9b12..bc1e08b3c9b1 100644 --- a/python/src/com/jetbrains/python/sdk/PySdkUtil.java +++ b/python/src/com/jetbrains/python/sdk/PySdkUtil.java @@ -84,18 +84,20 @@ public class PySdkUtil { @NonNls String[] command, @Nullable @NonNls String[] addEnv, final int timeout) { - return getProcessOutput(homePath, command, addEnv, timeout, null); + return getProcessOutput(homePath, command, addEnv, timeout, null, true); } /** * Executes a process and returns its stdout and stderr outputs as lists of lines. * Waits for process for possibly limited duration. * + * * @param homePath process run directory * @param command command to execute and its arguments * @param addEnv items are prepended to same-named values of inherited process environment. * @param timeout how many milliseconds to wait until the process terminates; non-positive means infinity. * @param stdin the data to write to the process standard input stream + * @param needEOFMarker * @return a tuple of (stdout lines, stderr lines, exit_code), lines in them have line terminators stripped, or may be null. */ @NotNull @@ -103,10 +105,11 @@ public class PySdkUtil { @NonNls String[] command, @Nullable @NonNls String[] addEnv, final int timeout, - @Nullable byte[] stdin) { - final ProcessOutput failure_output = new ProcessOutput(); + @Nullable byte[] stdin, + boolean needEOFMarker) { + final ProcessOutput failureOutput = new ProcessOutput(); if (homePath == null || !new File(homePath).exists()) { - return failure_output; + return failureOutput; } try { List commands = new ArrayList(); @@ -122,7 +125,7 @@ public class PySdkUtil { final OutputStream processInput = processHandler.getProcessInput(); assert processInput != null; processInput.write(stdin); - if (SystemInfo.isWindows) { + if (SystemInfo.isWindows && needEOFMarker) { processInput.write(SUBSTITUTE); processInput.flush(); } diff --git a/python/src/com/jetbrains/python/validation/Pep8ExternalAnnotator.java b/python/src/com/jetbrains/python/validation/Pep8ExternalAnnotator.java index 48de945a6008..fe45bdaa75b6 100644 --- a/python/src/com/jetbrains/python/validation/Pep8ExternalAnnotator.java +++ b/python/src/com/jetbrains/python/validation/Pep8ExternalAnnotator.java @@ -158,7 +158,7 @@ public class Pep8ExternalAnnotator extends ExternalAnnotator