Package org.python.util
Class PythonInterpreter
- java.lang.Object
-
- org.python.util.PythonInterpreter
-
- Direct Known Subclasses:
InteractiveInterpreter
public class PythonInterpreter extends java.lang.ObjectThe 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 voidcleanup()PyObjecteval(java.lang.String s)Evaluate a string as Python source and return the resultvoidexec(java.lang.String s)Execute a string of Python source in the local namespacevoidexec(PyObject code)Execute a Python code object in the local namespacevoidexecfile(java.io.InputStream s)voidexecfile(java.io.InputStream s, java.lang.String name)voidexecfile(java.lang.String s)Execute a file of Python source in the local namespacePyObjectget(java.lang.String name)Get the value of a variable in the local namespacejava.lang.Objectget(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.PyObjectgetLocals()static voidinitialize(java.util.Properties preProperties, java.util.Properties postProperties, java.lang.String[] argv)Initializes the jython runtime.voidset(java.lang.String name, java.lang.Object value)Set a variable in the local namespacevoidset(java.lang.String name, PyObject value)Set a variable in the local namespacevoidsetErr(java.io.OutputStream outStream)voidsetErr(java.io.Writer outStream)voidsetErr(PyObject outStream)voidsetLocals(PyObject d)voidsetOut(java.io.OutputStream outStream)Set a java.io.OutputStream to use for the standard output streamvoidsetOut(java.io.Writer outStream)Set a java.io.Writer to use for the standard output streamvoidsetOut(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()
-
-