mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge branch 'python-fixes'
This commit is contained in:
@@ -1,12 +1,6 @@
|
||||
# encoding: utf-8
|
||||
import atexit
|
||||
import zipfile
|
||||
import sys
|
||||
|
||||
|
||||
if hasattr(sys, 'dont_write_bytecode'):
|
||||
sys.dont_write_bytecode = True
|
||||
|
||||
|
||||
# TODO: Move all CLR-specific functions to clr_tools
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.intellij.psi.PsiElement;
|
||||
import com.jetbrains.python.PythonHelpersLocator;
|
||||
import com.jetbrains.python.psi.StructuredDocString;
|
||||
import com.jetbrains.python.sdk.PySdkUtil;
|
||||
import com.jetbrains.python.sdk.PythonEnvUtil;
|
||||
import com.jetbrains.python.sdk.PythonSdkType;
|
||||
import com.jetbrains.python.toolbox.Substring;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -37,7 +38,9 @@ import java.io.File;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
@@ -105,9 +108,11 @@ public class PyStructuredDocstringFormatter {
|
||||
final byte[] data = new byte[encoded.limit()];
|
||||
encoded.get(data);
|
||||
|
||||
final Map<String, String> env = new HashMap<String, String>();
|
||||
PythonEnvUtil.setPythonDontWriteBytecode(env);
|
||||
|
||||
final ProcessOutput output = PySdkUtil.getProcessOutput(new File(sdkHome).getParent(), new String[]{sdkHome, formatter},
|
||||
null, 5000, data, true);
|
||||
env, 5000, data, true);
|
||||
if (output.isTimeout()) {
|
||||
LOG.info("timeout when calculating docstring");
|
||||
return null;
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.jetbrains.python.packaging;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.intellij.execution.ExecutionException;
|
||||
import com.intellij.execution.RunCanceledByUserException;
|
||||
@@ -49,6 +48,7 @@ import com.jetbrains.python.psi.PyExpression;
|
||||
import com.jetbrains.python.psi.PyListLiteralExpression;
|
||||
import com.jetbrains.python.psi.PyStringLiteralExpression;
|
||||
import com.jetbrains.python.sdk.PySdkUtil;
|
||||
import com.jetbrains.python.sdk.PythonEnvUtil;
|
||||
import com.jetbrains.python.sdk.PythonSdkType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -469,7 +469,9 @@ public class PyPackageManagerImpl extends PyPackageManager {
|
||||
|
||||
try {
|
||||
final Process process;
|
||||
final Map<String, String> environment = PySdkUtil.mergeEnvVariables(System.getenv(), ImmutableMap.of("PYTHONUNBUFFERED", "1"));
|
||||
final Map<String, String> environment = new HashMap<String, String>(System.getenv());
|
||||
PythonEnvUtil.setPythonUnbuffered(environment);
|
||||
PythonEnvUtil.setPythonDontWriteBytecode(environment);
|
||||
final GeneralCommandLine commandLine = new GeneralCommandLine(cmdline).withWorkDirectory(workingDir).withEnvironment(environment);
|
||||
if (useSudo) {
|
||||
process = ExecUtil.sudo(commandLine, "Please enter your password to make changes in system packages: ");
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.jetbrains.python.sdk;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -23,7 +22,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -35,6 +33,7 @@ public class PythonEnvUtil {
|
||||
@SuppressWarnings("SpellCheckingInspection") public static final String PYTHONUNBUFFERED = "PYTHONUNBUFFERED";
|
||||
@SuppressWarnings("SpellCheckingInspection") public static final String PYTHONIOENCODING = "PYTHONIOENCODING";
|
||||
@SuppressWarnings("SpellCheckingInspection") public static final String IPYTHONENABLE = "IPYTHONENABLE";
|
||||
@SuppressWarnings("SpellCheckingInspection") public static final String PYTHONDONTWRITEBYTECODE = "PYTHONDONTWRITEBYTECODE";
|
||||
|
||||
private PythonEnvUtil() { }
|
||||
|
||||
@@ -86,4 +85,10 @@ public class PythonEnvUtil {
|
||||
public static void addToPythonPath(@NotNull Map<String, String> env, String value) {
|
||||
addPathToEnv(env, PYTHONPATH, value);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Map<String, String> setPythonDontWriteBytecode(@NotNull Map<String, String> env) {
|
||||
env.put(PYTHONDONTWRITEBYTECODE, "1");
|
||||
return env;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.intellij.util.Consumer;
|
||||
import com.jetbrains.python.PythonHelpersLocator;
|
||||
import com.jetbrains.python.sdk.InvalidSdkException;
|
||||
import com.jetbrains.python.sdk.PySdkUtil;
|
||||
import com.jetbrains.python.sdk.PythonEnvUtil;
|
||||
import com.jetbrains.python.sdk.PythonSdkType;
|
||||
import com.jetbrains.python.sdk.flavors.IronPythonSdkFlavor;
|
||||
import com.jetbrains.python.sdk.flavors.PythonSdkFlavor;
|
||||
@@ -171,12 +172,9 @@ public class PySkeletonGenerator {
|
||||
|
||||
protected ProcessOutput getProcessOutput(String homePath, String[] commandLine, Map<String, String> extraEnv,
|
||||
int timeout) throws InvalidSdkException {
|
||||
return PySdkUtil.getProcessOutput(
|
||||
homePath,
|
||||
commandLine,
|
||||
extraEnv,
|
||||
timeout
|
||||
);
|
||||
final Map<String, String> env = extraEnv != null ? new HashMap<String, String>(extraEnv) : new HashMap<String, String>();
|
||||
PythonEnvUtil.setPythonDontWriteBytecode(env);
|
||||
return PySdkUtil.getProcessOutput(homePath, commandLine, env, timeout);
|
||||
}
|
||||
|
||||
public void generateBuiltinSkeletons(@NotNull Sdk sdk) throws InvalidSdkException {
|
||||
|
||||
Reference in New Issue
Block a user