org.python.util

Class PythonInterpreter

Known Direct Subclasses:
InteractiveInterpreter

public class PythonInterpreter
extends java.lang.Object

The PythonInterpreter class is a standard wrapper for a JPython interpreter for use embedding in a Java application.
Version:
1.0, 02/23/97
Author:
Jim Hugunin

Constructor Summary

PythonInterpreter()
Create a new Interpreter with an empty dictionary
PythonInterpreter(PyObject dict)
Create a new interpreter with the given dictionary to use as its namespace
PythonInterpreter(PyObject dict, PySystemState systemState)

Method Summary

void
cleanup()
PyObject
eval(String s)
Evaluate a string as Python source and return the result
void
exec(String s)
Execute a string of Python source in the local namespace
void
exec(PyObject code)
Execute a Python code object in the local namespace
void
execfile(String s)
Execute a file of Python source in the local namespace
void
execfile(java.io.InputStream s)
void
execfile(java.io.InputStream s, String name)
PyObject
get(String name)
Get the value of a variable in the local namespace
Object
get(String name, Class javaclass)
Get the value of a variable in the local namespace Value will be returned as an instance of the given Java class.
PyObject
getLocals()
static void
initialize(Properties preProperties, Properties postProperties, String[] argv)
Initialize the jython runtime.
void
set(String name, Object value)
Set a variable in the local namespace
void
set(String name, PyObject value)
Set a variable in the local namespace
void
setErr(java.io.OutputStream outStream)
void
setErr(java.io.Writer outStream)
void
setErr(PyObject outStream)
void
setLocals(PyObject d)
void
setOut(java.io.OutputStream outStream)
Set a java.io.OutputStream to use for the standard output stream
void
setOut(java.io.Writer outStream)
Set a java.io.Writer to use for the standard output stream
void
setOut(PyObject outStream)
Set the Python object to use for the standard output stream

Constructor Details

PythonInterpreter

public PythonInterpreter()
Create a new Interpreter with an empty dictionary

PythonInterpreter

public PythonInterpreter(PyObject dict)
Create a new interpreter with the given dictionary to use as its namespace
Parameters:
dict - the dictionary to use

PythonInterpreter

public PythonInterpreter(PyObject dict,
                         PySystemState systemState)

Method Details

cleanup

public void cleanup()

eval

public PyObject eval(String s)
Evaluate a string as Python source and return the result
Parameters:
s - the string to evaluate

exec

public void exec(String s)
Execute a string of Python source in the local namespace
Parameters:
s - the string to execute

exec

public void exec(PyObject code)
Execute a Python code object in the local namespace
Parameters:
code - the code object to execute

execfile

public void execfile(String s)
Execute a file of Python source in the local namespace
Parameters:
s - the name of the file to execute

execfile

public void execfile(java.io.InputStream s)

execfile

public void execfile(java.io.InputStream s,
                     String name)

get

public PyObject get(String name)
Get the value of a variable in the local namespace
Parameters:
name - the name of the variable

get

public Object get(String name,
                  Class javaclass)
Get the value of a variable in the local namespace Value will be returned as an instance of the given Java class. interp.get("foo", Object.class) will return the most appropriate generic Java object.
Parameters:
name - the name of the variable
javaclass - the class of object to return

getLocals

public PyObject getLocals()

initialize

public static void initialize(Properties preProperties,
                              Properties postProperties,
                              String[] argv)
Initialize the jython runtime. This method should only be called once, and should be call before any other python objects are created (included a PythonInterpreter).
Parameters:
preProperties - A set of properties. Typically System.getProperties() is used.
postProperties - An other set of properties. Values like python.home, python.path and all other values from the registry files can be added to this property set. PostProperties will override system properties and registry properties.
argv - Command line argument. These values will assigned to sys.argv.

set

public void set(String name,
                Object value)
Set a variable in the local namespace
Parameters:
name - the name of the variable
value - the value to set the variable to. Will be automatically converted to an appropriate Python object.

set

public void set(String name,
                PyObject value)
Set a variable in the local namespace
Parameters:
name - the name of the variable
value - the value to set the variable to

setErr

public void setErr(java.io.OutputStream outStream)

setErr

public void setErr(java.io.Writer outStream)

setErr

public void setErr(PyObject outStream)

setLocals

public void setLocals(PyObject d)

setOut

public void setOut(java.io.OutputStream outStream)
Set a java.io.OutputStream to use for the standard output stream
Parameters:
outStream - OutputStream to use as output stream

setOut

public void setOut(java.io.Writer outStream)
Set a java.io.Writer to use for the standard output stream
Parameters:
outStream - Writer to use as output stream

setOut

public void setOut(PyObject outStream)
Set the Python object to use for the standard output stream
Parameters:
outStream - Python file-like object to use as output stream

Jython homepage