Ejemplo n.º 1
0
 @VisibleForTesting
 static PythonVersion extractPythonVersion(Path pythonPath, ProcessExecutor.Result versionResult) {
   if (versionResult.getExitCode() == 0) {
     String versionString =
         CharMatcher.WHITESPACE.trimFrom(
             CharMatcher.WHITESPACE.trimFrom(versionResult.getStderr().get())
                 + CharMatcher.WHITESPACE
                     .trimFrom(versionResult.getStdout().get())
                     .replaceAll("\u001B\\[[;\\d]*m", ""));
     Matcher matcher = PYTHON_VERSION_REGEX.matcher(versionString.split("\\r?\\n")[0]);
     if (!matcher.matches()) {
       throw new HumanReadableException(
           "`%s -V` returned an invalid version string %s", pythonPath, versionString);
     }
     return PythonVersion.of(matcher.group(1));
   } else {
     throw new HumanReadableException(versionResult.getStderr().get());
   }
 }