Skip to content

Commit 76d0241

Browse files
committed
only report that standard streams are tty's if the python language was configured with interactive terminal
1 parent 58a25d6 commit 76d0241

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

graalpython/com.oracle.graal.python.shell/src/com/oracle/graal/python/shell/GraalPythonMain.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ protected void launch(Builder contextBuilder) {
247247

248248
ConsoleHandler consoleHandler = createConsoleHandler(System.in, System.out);
249249
contextBuilder.arguments(getLanguageId(), programArgs.toArray(new String[0])).in(consoleHandler.createInputStream());
250+
contextBuilder.option("python.TerminalIsInteractive", Boolean.toString(stdinIsInteractive));
250251
contextBuilder.option("python.TerminalWidth", Integer.toString(consoleHandler.getTerminalWidth()));
251252
contextBuilder.option("python.TerminalHeight", Integer.toString(consoleHandler.getTerminalHeight()));
252253

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/PosixModuleBuiltins.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,10 @@ public class PosixModuleBuiltins extends PythonBuiltins {
184184
new PosixFilePermission[]{PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE, PosixFilePermission.OWNER_EXECUTE},
185185
};
186186

187+
private static boolean terminalIsInteractive(PythonContext context) {
188+
return PythonOptions.getFlag(context, PythonOptions.TerminalIsInteractive);
189+
}
190+
187191
@Override
188192
protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFactories() {
189193
return PosixModuleBuiltinsFactory.getFactories();
@@ -1032,16 +1036,11 @@ boolean isATTY(int fd) {
10321036
case 0:
10331037
case 1:
10341038
case 2:
1035-
return consoleCheck();
1039+
return terminalIsInteractive(getContext());
10361040
default:
10371041
return false;
10381042
}
10391043
}
1040-
1041-
@TruffleBoundary(allowInlining = true)
1042-
private static boolean consoleCheck() {
1043-
return System.console() != null;
1044-
}
10451044
}
10461045

10471046
@Builtin(name = "_exit", fixedNumOfPositionalArgs = 1)

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/PythonOptions.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,9 @@ private PythonOptions() {
119119
@Option(category = OptionCategory.EXPERT, help = "Enable forced splitting (of builtins). Default true.") //
120120
public static final OptionKey<Boolean> EnableForcedSplits = new OptionKey<>(true);
121121

122+
@Option(category = OptionCategory.EXPERT, help = "") //
123+
public static final OptionKey<Boolean> TerminalIsInteractive = new OptionKey<>(false);
124+
122125
@Option(category = OptionCategory.EXPERT, help = "") //
123126
public static final OptionKey<Integer> TerminalWidth = new OptionKey<>(80);
124127

0 commit comments

Comments
 (0)