Top Description Fields Constructors Methods
org.python.util

public Class InteractiveConsole

extends InteractiveInterpreter
Class Inheritance
Imports
org.python.core.Py, .PyBuiltinFunctionSet, .PyException, .PyObject, .PyString, .PySystemState, .__builtin__

This class provides the read, execute, print loop needed by a Python console; it is not actually a console itself. The primary capability is the interact() method, which repeatedly calls raw_input(PyObject), and hence __builtin__#raw_input(PyObject), in order to get lines, and push(String) them into the interpreter. The built-in raw_input() method prompts on sys.stdout and reads from sys.stdin, the standard console. These may be redirected using setOut(java.io.OutputStream) and setIn(java.io.InputStream), as may also sys.stderr.

Field Summary

Modifier and TypeField and Description
public static String
CONSOLE_FILENAME

To work around an issue in javadoc with Java 8 we cannot have it final for now, see issue 2539 for details.

public String
Inherited from org.python.util.InteractiveInterpreter:
buffer

Constructor Summary

AccessConstructor and Description
public
InteractiveConsole()

Construct an interactive console, which will "run" when interact() is called.

public
InteractiveConsole(PyObject
dictionary to use, or if null, a new empty one will be created
locals
)

Construct an interactive console, which will "run" when interact() is called.

public
InteractiveConsole(PyObject
dictionary to use, or if null, a new empty one will be created
locals
,
String
name with which to label this console input (e.g. in error messages).
filename
)

Construct an interactive console, which will "run" when interact() is called.

public
InteractiveConsole(PyObject
dictionary to use, or if null, a new empty one will be created
locals
,
String
name with which to label this console input
filename
,
boolean
if true, hook this class's raw_input into the built-ins.
replaceRawInput
)

Full-feature constructor for an interactive console, which will "run" when interact() is called.

Method Summary

Modifier and TypeMethod and Description
public void
_interact(String banner, PyObject file)

public static String

Returns:

the banner.
getDefaultBanner
()

Returns the banner to print before the first interaction: "Jython <version> on <platform>".

public void
interact()

Operate a Python console, as in interact(String, PyObject), on the standard input.

public void
interact(String
to print before accepting input, or if null, no banner.
banner
,
PyObject
from which to read commands, or if null, read the console.
file
)

Operate a Python console by repeatedly calling raw_input(PyObject, PyObject) and interpreting the lines read.

public boolean
push(String line)

Push a line to the interpreter.

public String
raw_input(PyObject prompt)

Write a prompt and read a line from standard input.

public String
raw_input(PyObject prompt, PyObject file)

Write a prompt and read a line from a file.

Inherited from org.python.util.InteractiveInterpreter:
interruptresetbufferruncoderunsourcerunsourcerunsourceshowexceptionwrite

Field Detail

CONSOLE_FILENAMEback to summary
public static String CONSOLE_FILENAME

Note

This field is actually final; don't modify.

To work around an issue in javadoc with Java 8 we cannot have it final for now, see issue 2539 for details.

filenameback to summary
public String filename

Hides org.python.util.InteractiveInterpreter.filename.

Constructor Detail

InteractiveConsoleback to summary
public InteractiveConsole()

Construct an interactive console, which will "run" when interact() is called. The name of the console (e.g. in error messages) will be CONSOLE_FILENAME.

InteractiveConsoleback to summary
public InteractiveConsole(PyObject locals)

Construct an interactive console, which will "run" when interact() is called. The name of the console (e.g. in error messages) will be CONSOLE_FILENAME.

Parameters
locals:PyObject

dictionary to use, or if null, a new empty one will be created

InteractiveConsoleback to summary
public InteractiveConsole(PyObject locals, String filename)

Construct an interactive console, which will "run" when interact() is called.

Parameters
locals:PyObject

dictionary to use, or if null, a new empty one will be created

filename:String

name with which to label this console input (e.g. in error messages).

InteractiveConsoleback to summary
public InteractiveConsole(PyObject locals, String filename, boolean replaceRawInput)

Full-feature constructor for an interactive console, which will "run" when interact() is called. This version allows the caller to replace the built-in raw_input() methods with raw_input(PyObject) and raw_input(PyObject, PyObject), which may be overridden in a sub-class.

Parameters
locals:PyObject

dictionary to use, or if null, a new empty one will be created

filename:String

name with which to label this console input

replaceRawInput:boolean

if true, hook this class's raw_input into the built-ins.

Method Detail

_interactback to summary
public void _interact(String banner, PyObject file)
getDefaultBannerback to summary
public static String getDefaultBanner()

Returns the banner to print before the first interaction: "Jython <version> on <platform>".

Returns:String

the banner.

interactback to summary
public void interact()

Operate a Python console, as in interact(String, PyObject), on the standard input. The standard input may have been redirected by setIn(java.io.InputStream) or its variants. The banner (printed before first input) is obtained by calling getDefaultBanner().

interactback to summary
public void interact(String banner, PyObject file)

Operate a Python console by repeatedly calling raw_input(PyObject, PyObject) and interpreting the lines read. An end of file causes the method to return.

Parameters
banner:String

to print before accepting input, or if null, no banner.

file:PyObject

from which to read commands, or if null, read the console.

pushback to summary
public boolean push(String line)

Push a line to the interpreter. The line should not have a trailing newline; it may have internal newlines. The line is appended to a buffer and the interpreter's runsource() method is called with the concatenated contents of the buffer as source. If this indicates that the command was executed or invalid, the buffer is reset; otherwise, the command is incomplete, and the buffer is left as it was after the line was appended. The return value is 1 if more input is required, 0 if the line was dealt with in some way (this is the same as runsource()).

raw_inputback to summary
public String raw_input(PyObject prompt)

Write a prompt and read a line from standard input. The returned line does not include the trailing newline. When the user enters the EOF key sequence, EOFError is raised. The base implementation uses the built-in function raw_input(); a subclass may replace this with a different implementation.

raw_inputback to summary
public String raw_input(PyObject prompt, PyObject file)

Write a prompt and read a line from a file.