Package org.python.util
Class PythonInterpreter
- java.lang.Object
-
- org.python.util.PythonInterpreter
-
- Direct Known Subclasses:
InteractiveInterpreter
public class PythonInterpreter extends java.lang.Object
The PythonInterpreter class is a standard wrapper for a Jython interpreter for use embedding in a Java application.- Version:
- 1.0, 02/23/97
- Author:
- Jim Hugunin
-
-
Constructor Summary
Constructors Constructor Description PythonInterpreter()
Create a new Interpreter with an empty dictionaryPythonInterpreter(PyObject dict)
Create a new interpreter with the given dictionary to use as its namespacePythonInterpreter(PyObject dict, PySystemState systemState)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cleanup()
PyObject
eval(java.lang.String s)
Evaluate a string as Python source and return the resultvoid
exec(java.lang.String s)
Execute a string of Python source in the local namespacevoid
exec(PyObject code)
Execute a Python code object in the local namespacevoid
execfile(java.io.InputStream s)
void
execfile(java.io.InputStream s, java.lang.String name)
void
execfile(java.lang.String s)
Execute a file of Python source in the local namespacePyObject
get(java.lang.String name)
Get the value of a variable in the local namespacejava.lang.Object
get(java.lang.String name, java.lang.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(java.util.Properties preProperties, java.util.Properties postProperties, java.lang.String[] argv)
Initializes the jython runtime.void
set(java.lang.String name, java.lang.Object value)
Set a variable in the local namespacevoid
set(java.lang.String name, PyObject value)
Set a variable in the local namespacevoid
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 streamvoid
setOut(java.io.Writer outStream)
Set a java.io.Writer to use for the standard output streamvoid
setOut(PyObject outStream)
Set the Python object to use for the standard output stream
-
-
-
Constructor Detail
-
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 Detail
-
initialize
public static void initialize(java.util.Properties preProperties, java.util.Properties postProperties, java.lang.String[] argv)
Initializes the jython runtime. This should only be called once, and should be called before any other python objects are created (including 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.
-
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
-
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(java.io.OutputStream outStream)
Set a java.io.OutputStream to use for the standard output stream- Parameters:
outStream
- OutputStream to use as output stream
-
setErr
public void setErr(PyObject outStream)
-
setErr
public void setErr(java.io.Writer outStream)
-
setErr
public void setErr(java.io.OutputStream outStream)
-
eval
public PyObject eval(java.lang.String s)
Evaluate a string as Python source and return the result- Parameters:
s
- the string to evaluate
-
exec
public void exec(java.lang.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(java.lang.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, java.lang.String name)
-
getLocals
public PyObject getLocals()
-
setLocals
public void setLocals(PyObject d)
-
set
public void set(java.lang.String name, java.lang.Object value)
Set a variable in the local namespace- Parameters:
name
- the name of the variablevalue
- the value to set the variable to. Will be automatically converted to an appropriate Python object.
-
set
public void set(java.lang.String name, PyObject value)
Set a variable in the local namespace- Parameters:
name
- the name of the variablevalue
- the value to set the variable to
-
get
public PyObject get(java.lang.String name)
Get the value of a variable in the local namespace- Parameters:
name
- the name of the variable
-
get
public java.lang.Object get(java.lang.String name, java.lang.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 variablejavaclass
- the class of object to return
-
cleanup
public void cleanup()
-
-