mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-82352 Fix reading of env files for old command line python runner
GitOrigin-RevId: 81df145e58cf0a509dd92ad1157916fc77978afb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
15292558fb
commit
69523b7c6a
@@ -168,8 +168,8 @@
|
||||
<configurationType implementation="com.jetbrains.python.run.FastAPILockedRunConfigurationType" order="first"/>
|
||||
<facetIgnorer implementation="com.jetbrains.python.run.DjangoFacetIgnorer"/>
|
||||
|
||||
<programRunner implementation="com.jetbrains.python.run.PythonRunner"/>
|
||||
<programRunner implementation="com.jetbrains.python.debugger.PyDebugRunner"/>
|
||||
<programRunner implementation="com.jetbrains.python.run.PythonRunner" order="before defaultRunRunner"/>
|
||||
<programRunner implementation="com.jetbrains.python.debugger.PyDebugRunner" order="before defaultDebugRunner"/>
|
||||
<runConfigurationProducer implementation="com.jetbrains.python.run.PythonRunConfigurationProducer"/>
|
||||
<xdebugger.breakpointType implementation="com.jetbrains.python.debugger.PyLineBreakpointType"/>
|
||||
<xdebugger.breakpointType implementation="com.jetbrains.python.debugger.PyExceptionBreakpointType"/>
|
||||
|
||||
@@ -650,20 +650,11 @@ public abstract class PythonCommandLineState extends CommandLineState {
|
||||
*/
|
||||
protected static void initEnvironment(Project project,
|
||||
SdkAdditionalData data,
|
||||
GeneralCommandLine commandLine,
|
||||
PythonRunParams runParams,
|
||||
@NotNull GeneralCommandLine commandLine,
|
||||
@NotNull PythonRunParams runParams,
|
||||
boolean isDebug) {
|
||||
Map<String, String> env = Maps.newHashMap();
|
||||
|
||||
final Map<String, String> env = prepareEnv(project, runParams, true);
|
||||
setupEncodingEnvs(env, commandLine.getCharset());
|
||||
|
||||
if (runParams.getEnvs() != null) {
|
||||
env.putAll(runParams.getEnvs());
|
||||
}
|
||||
addCommonEnvironmentVariables(getInterpreterPath(project, runParams), env, true);
|
||||
|
||||
setupVirtualEnvVariables(runParams, env, runParams.getSdkHome());
|
||||
|
||||
commandLine.getEnvironment().clear();
|
||||
commandLine.getEnvironment().putAll(env);
|
||||
commandLine.withParentEnvironmentType(runParams.isPassParentEnvs() ? ParentEnvironmentType.CONSOLE : ParentEnvironmentType.NONE);
|
||||
@@ -695,19 +686,13 @@ public abstract class PythonCommandLineState extends CommandLineState {
|
||||
boolean isDebug,
|
||||
@NotNull HelpersAwareTargetEnvironmentRequest helpersAwareTargetRequest,
|
||||
@Nullable Sdk sdk) {
|
||||
Map<String, String> env = Maps.newHashMap();
|
||||
var envParameters = configureEnvsFromFiles(runParams, true);
|
||||
env.putAll(envParameters);
|
||||
if (runParams.getEnvs() != null) {
|
||||
env.putAll(runParams.getEnvs());
|
||||
}
|
||||
boolean addPyCharmHosted = true;
|
||||
if (sdk != null && !CondaPythonExecKt.getUsePythonForLocalConda()) {
|
||||
addPyCharmHosted = PySdkExtKt.getOrCreateAdditionalData(sdk).getFlavor().providePyCharmHosted();
|
||||
}
|
||||
addCommonEnvironmentVariables(getInterpreterPath(project, runParams), env, addPyCharmHosted);
|
||||
final Map<String, String> env = prepareEnv(project, runParams, addPyCharmHosted);
|
||||
|
||||
setupVirtualEnvVariables(runParams, env, runParams.getSdkHome());
|
||||
setupEncodingEnvs(commandLine, commandLine.getCharset());
|
||||
|
||||
// Carefully patch environment variables
|
||||
Map<String, Function<TargetEnvironment, String>> map =
|
||||
@@ -715,8 +700,6 @@ public abstract class PythonCommandLineState extends CommandLineState {
|
||||
TargetEnvironmentRequest targetEnvironmentRequest = helpersAwareTargetRequest.getTargetEnvironmentRequest();
|
||||
PythonScripts.extendEnvs(commandLine, map, targetEnvironmentRequest.getTargetPlatform());
|
||||
|
||||
setupEncodingEnvs(commandLine, commandLine.getCharset());
|
||||
|
||||
buildPythonPath(project, commandLine, runParams, pathMapper, isDebug, targetEnvironmentRequest);
|
||||
|
||||
for (PythonCommandLineTargetEnvironmentProvider envProvider : PythonCommandLineTargetEnvironmentProvider.EP_NAME.getExtensionList()) {
|
||||
@@ -724,6 +707,20 @@ public abstract class PythonCommandLineState extends CommandLineState {
|
||||
}
|
||||
}
|
||||
|
||||
private static Map<String, String> prepareEnv(@NotNull Project project,
|
||||
@NotNull PythonRunParams runParams,
|
||||
boolean addPyCharmHosted) {
|
||||
Map<String, String> env = Maps.newHashMap();
|
||||
env.putAll(configureEnvsFromFiles(runParams, true));
|
||||
if (runParams.getEnvs() != null) {
|
||||
env.putAll(runParams.getEnvs());
|
||||
}
|
||||
addCommonEnvironmentVariables(getInterpreterPath(project, runParams), env, addPyCharmHosted);
|
||||
|
||||
setupVirtualEnvVariables(runParams, env, runParams.getSdkHome());
|
||||
return env;
|
||||
}
|
||||
|
||||
private static void setupVirtualEnvVariables(PythonRunParams myConfig, Map<String, String> env, String sdkHome) {
|
||||
Sdk sdk = PythonSdkUtil.findSdkByPath(sdkHome);
|
||||
if (sdk != null &&
|
||||
|
||||
Reference in New Issue
Block a user