Class 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
    • 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 result
      void exec​(java.lang.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​(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 namespace
      PyObject get​(java.lang.String name)
      Get the value of a variable in the local namespace
      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.
      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 namespace
      void set​(java.lang.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
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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
    • 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 variable
        value - 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 variable
        value - 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 variable
        javaclass - the class of object to return
      • cleanup

        public void cleanup()