Class Py


  • public final class Py
    extends java.lang.Object
    • Field Detail

      • None

        public static final PyObject None
        The singleton None Python object
      • Ellipsis

        public static final PyObject Ellipsis
        The singleton Ellipsis Python object - written as ... when indexing
      • NotImplemented

        public static final PyObject NotImplemented
        The singleton NotImplemented Python object. Used in rich comparison
      • NoKeywords

        public static final java.lang.String[] NoKeywords
        A zero-length array of Strings to pass to functions that don't have any keyword arguments
      • EmptyObjects

        public static final PyObject[] EmptyObjects
        A zero-length array of PyObject's to pass to functions that expect zero-arguments
      • EmptyFrozenSet

        public static final PyFrozenSet EmptyFrozenSet
        A frozenset with zero elements
      • EmptyTuple

        public static final PyTuple EmptyTuple
        A tuple with zero elements
      • Zero

        public static final PyInteger Zero
        The Python integer 0
      • One

        public static final PyInteger One
        The Python integer 1
      • False

        public static final PyBoolean False
        The Python boolean False
      • True

        public static final PyBoolean True
        The Python boolean True
      • EmptyString

        public static final PyString EmptyString
        A zero-length Python byte string
      • EmptyUnicode

        public static final PyUnicode EmptyUnicode
        A zero-length Python Unicode string
      • Newline

        public static final PyString Newline
        A Python string containing '\n'
      • UnicodeNewline

        public static final PyUnicode UnicodeNewline
        A Python unicode string containing '\n'
      • Space

        public static final PyString Space
        A Python string containing ' '
      • UnicodeSpace

        public static final PyUnicode UnicodeSpace
        A Python unicode string containing ' '
      • TPFLAGS_HEAPTYPE

        public static final long TPFLAGS_HEAPTYPE
        Set if the type object is dynamically allocated
        See Also:
        Constant Field Values
      • TPFLAGS_BASETYPE

        public static final long TPFLAGS_BASETYPE
        Set if the type allows subclassing
        See Also:
        Constant Field Values
      • TPFLAGS_IS_ABSTRACT

        public static final long TPFLAGS_IS_ABSTRACT
        Type is abstract and cannot be instantiated
        See Also:
        Constant Field Values
      • NoConversion

        public static final java.lang.Object NoConversion
        A unique object to indicate no conversion is possible in __tojava__ methods
      • OSError

        public static PyObject OSError
      • NotImplementedError

        public static PyObject NotImplementedError
      • EnvironmentError

        public static PyObject EnvironmentError
      • OverflowError

        public static PyObject OverflowError
      • RuntimeError

        public static PyObject RuntimeError
      • KeyboardInterrupt

        public static PyObject KeyboardInterrupt
      • FloatingPointError

        public static PyObject FloatingPointError
      • SyntaxError

        public static PyObject SyntaxError
      • IndentationError

        public static PyObject IndentationError
      • TabError

        public static PyObject TabError
      • AttributeError

        public static PyObject AttributeError
      • IOError

        public static PyObject IOError
      • KeyError

        public static PyObject KeyError
      • AssertionError

        public static PyObject AssertionError
      • TypeError

        public static PyObject TypeError
      • ReferenceError

        public static PyObject ReferenceError
      • SystemError

        public static PyObject SystemError
      • IndexError

        public static PyObject IndexError
      • ZeroDivisionError

        public static PyObject ZeroDivisionError
      • NameError

        public static PyObject NameError
      • UnboundLocalError

        public static PyObject UnboundLocalError
      • SystemExit

        public static PyObject SystemExit
      • StopIteration

        public static PyObject StopIteration
      • GeneratorExit

        public static PyObject GeneratorExit
      • ImportError

        public static PyObject ImportError
      • ValueError

        public static PyObject ValueError
      • UnicodeError

        public static PyObject UnicodeError
      • UnicodeTranslateError

        public static PyObject UnicodeTranslateError
      • UnicodeDecodeError

        public static PyObject UnicodeDecodeError
      • UnicodeEncodeError

        public static PyObject UnicodeEncodeError
      • EOFError

        public static PyObject EOFError
      • MemoryError

        public static PyObject MemoryError
      • BufferError

        public static PyObject BufferError
      • ArithmeticError

        public static PyObject ArithmeticError
      • LookupError

        public static PyObject LookupError
      • StandardError

        public static PyObject StandardError
      • Exception

        public static PyObject Exception
      • BaseException

        public static PyObject BaseException
      • Warning

        public static PyObject Warning
      • UserWarning

        public static PyObject UserWarning
      • DeprecationWarning

        public static PyObject DeprecationWarning
      • PendingDeprecationWarning

        public static PyObject PendingDeprecationWarning
      • SyntaxWarning

        public static PyObject SyntaxWarning
      • RuntimeWarning

        public static PyObject RuntimeWarning
      • FutureWarning

        public static PyObject FutureWarning
      • ImportWarning

        public static PyObject ImportWarning
      • UnicodeWarning

        public static PyObject UnicodeWarning
      • BytesWarning

        public static PyObject BytesWarning
      • JavaError

        public static PyObject JavaError
      • defaultSystemState

        public static volatile PySystemState defaultSystemState
    • Method Detail

      • OSError

        public static PyException OSError​(java.lang.String message)
      • OSError

        public static PyException OSError​(java.io.IOException ioe)
      • OSError

        public static PyException OSError​(jnr.constants.Constant errno)
      • OSError

        public static PyException OSError​(jnr.constants.Constant errno,
                                          PyObject filename)
      • NotImplementedError

        public static PyException NotImplementedError​(java.lang.String message)
      • EnvironmentError

        public static PyException EnvironmentError​(java.lang.String message)
      • OverflowError

        public static PyException OverflowError​(java.lang.String message)
      • RuntimeError

        public static PyException RuntimeError​(java.lang.String message)
      • KeyboardInterrupt

        public static PyException KeyboardInterrupt​(java.lang.String message)
      • FloatingPointError

        public static PyException FloatingPointError​(java.lang.String message)
      • SyntaxError

        public static PyException SyntaxError​(java.lang.String message)
      • AttributeError

        public static PyException AttributeError​(java.lang.String message)
      • IOError

        public static PyException IOError​(java.io.IOException ioe)
      • IOError

        public static PyException IOError​(java.lang.String message)
      • IOError

        public static PyException IOError​(jnr.constants.Constant errno)
      • IOError

        public static PyException IOError​(jnr.constants.Constant errno,
                                          java.lang.String filename)
      • IOError

        public static PyException IOError​(jnr.constants.Constant errno,
                                          PyObject filename)
      • KeyError

        public static PyException KeyError​(java.lang.String message)
      • AssertionError

        public static PyException AssertionError​(java.lang.String message)
      • TypeError

        public static PyException TypeError​(java.lang.String message)
      • ReferenceError

        public static PyException ReferenceError​(java.lang.String message)
      • SystemError

        public static PyException SystemError​(java.lang.String message)
      • IndexError

        public static PyException IndexError​(java.lang.String message)
      • ZeroDivisionError

        public static PyException ZeroDivisionError​(java.lang.String message)
      • NameError

        public static PyException NameError​(java.lang.String message)
      • UnboundLocalError

        public static PyException UnboundLocalError​(java.lang.String message)
      • StopIteration

        public static PyException StopIteration​(java.lang.String message)
      • GeneratorExit

        public static PyException GeneratorExit​(java.lang.String message)
      • ImportError

        public static PyException ImportError​(java.lang.String message)
      • ValueError

        public static PyException ValueError​(java.lang.String message)
      • UnicodeError

        public static PyException UnicodeError​(java.lang.String message)
      • UnicodeTranslateError

        public static PyException UnicodeTranslateError​(java.lang.String object,
                                                        int start,
                                                        int end,
                                                        java.lang.String reason)
      • UnicodeDecodeError

        public static PyException UnicodeDecodeError​(java.lang.String encoding,
                                                     java.lang.String object,
                                                     int start,
                                                     int end,
                                                     java.lang.String reason)
      • UnicodeEncodeError

        public static PyException UnicodeEncodeError​(java.lang.String encoding,
                                                     java.lang.String object,
                                                     int start,
                                                     int end,
                                                     java.lang.String reason)
      • EOFError

        public static PyException EOFError​(java.lang.String message)
      • memory_error

        public static void memory_error​(java.lang.OutOfMemoryError t)
      • MemoryError

        public static PyException MemoryError​(java.lang.String message)
      • BufferError

        public static PyException BufferError​(java.lang.String message)
      • Warning

        public static void Warning​(java.lang.String message)
      • UserWarning

        public static void UserWarning​(java.lang.String message)
      • DeprecationWarning

        public static void DeprecationWarning​(java.lang.String message)
      • PendingDeprecationWarning

        public static void PendingDeprecationWarning​(java.lang.String message)
      • SyntaxWarning

        public static void SyntaxWarning​(java.lang.String message)
      • RuntimeWarning

        public static void RuntimeWarning​(java.lang.String message)
      • FutureWarning

        public static void FutureWarning​(java.lang.String message)
      • ImportWarning

        public static void ImportWarning​(java.lang.String message)
      • UnicodeWarning

        public static void UnicodeWarning​(java.lang.String message)
      • BytesWarning

        public static void BytesWarning​(java.lang.String message)
      • warnPy3k

        public static void warnPy3k​(java.lang.String message)
      • warnPy3k

        public static void warnPy3k​(java.lang.String message,
                                    int stacklevel)
      • warning

        public static void warning​(PyObject category,
                                   java.lang.String message)
      • warning

        public static void warning​(PyObject category,
                                   java.lang.String message,
                                   int stacklevel)
      • warning

        public static void warning​(PyObject category,
                                   java.lang.String message,
                                   java.lang.String filename,
                                   int lineno,
                                   java.lang.String module,
                                   PyObject registry)
      • JavaError

        public static PyException JavaError​(java.lang.Throwable t)
      • tojava

        public static <T> T tojava​(PyObject o,
                                   java.lang.Class<T> c)
        Convert a given PyObject to an instance of a Java class. Identical to o.__tojava__(c) except that it will raise a TypeError if the conversion fails.
        Parameters:
        o - the PyObject to convert.
        c - the class to convert it to.
      • tojava

        public static java.lang.Object tojava​(PyObject o,
                                              java.lang.String s)
      • newInteger

        public static final PyInteger newInteger​(int i)
      • newInteger

        public static PyObject newInteger​(long i)
      • newLong

        public static PyLong newLong​(java.lang.String s)
      • newLong

        public static PyLong newLong​(java.math.BigInteger i)
      • newLong

        public static PyLong newLong​(int i)
      • newLong

        public static PyLong newLong​(long l)
      • newImaginary

        public static PyComplex newImaginary​(double v)
      • newFloat

        public static PyFloat newFloat​(float v)
      • newFloat

        public static PyFloat newFloat​(double v)
      • newString

        public static PyString newString​(char c)
      • newString

        public static PyString newString​(java.lang.String s)
      • newStringOrUnicode

        public static PyString newStringOrUnicode​(java.lang.String s)
        Return a PyString for the given Java String, if it can be represented as US-ASCII, and a PyUnicode otherwise.
        Parameters:
        s - string content
        Returns:
        PyString or PyUnicode according to content of s.
      • newStringOrUnicode

        public static PyString newStringOrUnicode​(PyObject precedent,
                                                  java.lang.String s)
        Return a PyString for the given Java String, if it can be represented as US-ASCII and if a preceding object is not a PyUnicode, and a PyUnicode otherwise. In some contexts, we want the result to be a PyUnicode if some preceding result is a PyUnicode.
        Parameters:
        precedent - string of which the type sets a precedent
        s - string content
        Returns:
        PyString or PyUnicode according to content of s.
      • newStringUTF8

        public static PyString newStringUTF8​(java.lang.String s)
      • fileSystemDecode

        public static java.lang.String fileSystemDecode​(PyString filename)
        Return a file name or path as Unicode (Java UTF-16 String), decoded if necessary from a Python bytes object, using the file system encoding. In Jython, this encoding is UTF-8, irrespective of the OS platform. This method is comparable with Python 3 os.fsdecode, but for Java use, in places such as the os module. If the argument is not a PyUnicode, it will be decoded using the nominal Jython file system encoding. If the argument is a PyUnicode, its String is returned.
        Parameters:
        filename - as bytes to decode, or already as unicode
        Returns:
        unicode version of path
      • fileSystemDecode

        public static java.lang.String fileSystemDecode​(PyObject filename)
        As fileSystemDecode(PyString) but raising ValueError if not a str or unicode.
        Parameters:
        filename - as bytes to decode, or already as unicode
        Returns:
        unicode version of the file name
      • fileSystemEncode

        public static PyString fileSystemEncode​(java.lang.String filename)
        Return a PyString object we can use as a file name or file path in places where Python expects a bytes (that is a str) object in the file system encoding. In Jython, this encoding is UTF-8, irrespective of the OS platform.

        This is subtly different from CPython's use of "file system encoding", which tracks the platform's choice so that OS services may be called that have a bytes interface. Jython's interaction with the OS occurs via Java using String arguments representing Unicode values, so we have no need to match the encoding actually chosen by the platform (e.g. 'mbcs' on Windows). Rather we need a nominal Jython file system encoding, for use where the standard library forces byte paths on us (in Python 2). There is no reason for this choice to vary with OS platform. Methods receiving paths as bytes will fileSystemDecode(PyString) them again for Java.

        Parameters:
        filename - as unicode to encode, or already as bytes
        Returns:
        encoded bytes version of path
      • fileSystemEncode

        public static PyString fileSystemEncode​(PyString filename)
        Return a PyString object we can use as a file name or file path in places where Python expects a bytes (that is, str) object in the file system encoding. In Jython, this encoding is UTF-8, irrespective of the OS platform. This method is comparable with Python 3 os.fsencode. If the argument is a PyString, it is returned unchanged. If the argument is a PyUnicode, it is converted to a bytes using the nominal Jython file system encoding.
        Parameters:
        filename - as unicode to encode, or already as bytes
        Returns:
        encoded bytes version of path
      • newStringMap

        public static PyStringMap newStringMap()
      • newUnicode

        public static PyUnicode newUnicode​(char c)
      • newUnicode

        public static PyUnicode newUnicode​(java.lang.String s)
      • newUnicode

        public static PyUnicode newUnicode​(java.lang.String s,
                                           boolean isBasic)
      • newBoolean

        public static PyBoolean newBoolean​(boolean t)
      • newDate

        public static PyObject newDate​(java.sql.Date date)
      • newTime

        public static PyObject newTime​(java.sql.Time time)
      • newDatetime

        public static PyObject newDatetime​(java.sql.Timestamp timestamp)
      • newDecimal

        public static PyObject newDecimal​(java.lang.String decimal)
      • newCode

        public static PyCode newCode​(int argcount,
                                     java.lang.String[] varnames,
                                     java.lang.String filename,
                                     java.lang.String name,
                                     boolean args,
                                     boolean keywords,
                                     PyFunctionTable funcs,
                                     int func_id,
                                     java.lang.String[] cellvars,
                                     java.lang.String[] freevars,
                                     int npurecell,
                                     int moreflags)
      • newCode

        public static PyCode newCode​(int argcount,
                                     java.lang.String[] varnames,
                                     java.lang.String filename,
                                     java.lang.String name,
                                     int firstlineno,
                                     boolean args,
                                     boolean keywords,
                                     PyFunctionTable funcs,
                                     int func_id,
                                     java.lang.String[] cellvars,
                                     java.lang.String[] freevars,
                                     int npurecell,
                                     int moreflags)
      • newCode

        public static PyCode newCode​(int argcount,
                                     java.lang.String[] varnames,
                                     java.lang.String filename,
                                     java.lang.String name,
                                     boolean args,
                                     boolean keywords,
                                     PyFunctionTable funcs,
                                     int func_id)
      • newCode

        public static PyCode newCode​(int argcount,
                                     java.lang.String[] varnames,
                                     java.lang.String filename,
                                     java.lang.String name,
                                     int firstlineno,
                                     boolean args,
                                     boolean keywords,
                                     PyFunctionTable funcs,
                                     int func_id)
      • newJavaCode

        public static PyCode newJavaCode​(java.lang.Class<?> cls,
                                         java.lang.String name)
      • newJavaFunc

        public static PyObject newJavaFunc​(java.lang.Class<?> cls,
                                           java.lang.String name)
      • initPython

        public static boolean initPython()
      • findClass

        public static java.lang.Class<?> findClass​(java.lang.String name)
        Tries to find a Java class.
        Parameters:
        name - Name of the Java class.
        Returns:
        The class, or null if it wasn't found
      • findClassEx

        public static java.lang.Class<?> findClassEx​(java.lang.String name,
                                                     java.lang.String reason)
        Tries to find a Java class. Unless findClass(String), it raises a JavaError if the class was found but there were problems loading it.
        Parameters:
        name - Name of the Java class.
        reason - Reason for finding the class. Used for debugging messages.
        Returns:
        The class, or null if it wasn't found
        Throws:
        PyObject - wrapping LinkageErrors/IllegalArgumentExceptions occurred when the class is found but can't be loaded.
      • initProxy

        public static void initProxy​(PyProxy proxy,
                                     java.lang.String module,
                                     java.lang.String pyclass,
                                     java.lang.Object[] args)
      • runMain

        public static void runMain​(PyRunnable main,
                                   java.lang.String[] args)
                            throws java.lang.Exception
        Initializes a default PythonInterpreter and runs the code from PyRunnable.getMain() as __main__ Called by the code generated in Module.addMain()
        Throws:
        java.lang.Exception
      • runMain

        public static void runMain​(CodeBootstrap main,
                                   java.lang.String[] args)
                            throws java.lang.Exception
        Initializes a default PythonInterpreter and runs the code loaded from the CodeBootstrap as __main__ Called by the code generated in Module.addMain()
        Throws:
        java.lang.Exception
      • printException

        public static void printException​(java.lang.Throwable t)
      • printException

        public static void printException​(java.lang.Throwable t,
                                          PyFrame f)
      • printException

        public static void printException​(java.lang.Throwable t,
                                          PyFrame f,
                                          PyObject file)
      • displayException

        public static void displayException​(PyObject type,
                                            PyObject value,
                                            PyObject tb,
                                            PyObject file)
        Print the description of an exception as a big string. The arguments are closely equivalent to the tuple returned by Python sys.exc_info, on standard error or a given byte-oriented file. Compare with Python traceback.print_exception.
        Parameters:
        type - of exception
        value - the exception parameter (second argument to raise)
        tb - traceback of the call stack where the exception originally occurred
        file - to print encoded string to, or null meaning standard error
      • formatException

        public static java.lang.String formatException​(PyObject type,
                                                       PyObject value)
      • formatException

        public static java.lang.String formatException​(PyObject type,
                                                       PyObject value,
                                                       boolean useRepr)
      • writeUnraisable

        public static void writeUnraisable​(java.lang.Throwable unraisable,
                                           PyObject obj)
      • assert_

        public static void assert_​(PyObject test)
      • addTraceback

        public static void addTraceback​(java.lang.Throwable t,
                                        PyFrame frame)
      • setException

        public static PyException setException​(java.lang.Throwable t,
                                               PyFrame frame)
      • makeException

        public static PyException makeException()
      • getThreadState

        public static final ThreadState getThreadState()
      • getSystemState

        public static final PySystemState getSystemState()
      • getFrame

        public static PyFrame getFrame()
      • setFrame

        public static void setFrame​(PyFrame f)
      • getConsole

        public static Console getConsole()
        Get the Jython Console (used for input(), raw_input(), etc.) as constructed and set by PySystemState initialization.
        Returns:
        the Jython Console
      • installConsole

        public static void installConsole​(Console console)
                                   throws java.lang.UnsupportedOperationException,
                                          java.io.IOException
        Install the provided Console, first uninstalling any current one. The Jython Console is used for raw_input() etc., and may provide line-editing and history recall at the prompt. A Console may replace System.in with its line-editing input method.
        Parameters:
        console - The new Console object
        Throws:
        java.lang.UnsupportedOperationException - if some prior Console refuses to uninstall
        java.io.IOException - if Console.install() raises it
      • isInteractive

        public static boolean isInteractive()
        Check (using the POSIX library and jnr-posix library) whether we are in an interactive environment. Amongst other things, this affects the type of console that may be legitimately installed during system initialisation. Note that the result may vary according to whether a jnr-posix native library is found along java.library.path, or the pure Java fall-back is used.
        Returns:
        true if (we think) we are in an interactive environment
      • importSiteIfSelected

        public static boolean importSiteIfSelected()
      • printlnv

        public static void printlnv​(PyObject file)
      • print

        public static void print​(PyObject o)
      • printComma

        public static void printComma​(PyObject o)
      • println

        public static void println​(PyObject o)
      • println

        public static void println()
      • flushLine

        public static void flushLine()
      • py2boolean

        public static boolean py2boolean​(PyObject o)
      • py2byte

        public static byte py2byte​(PyObject o)
      • py2short

        public static short py2short​(PyObject o)
      • py2int

        public static int py2int​(PyObject o)
      • py2int

        public static int py2int​(PyObject o,
                                 java.lang.String msg)
      • py2long

        public static long py2long​(PyObject o)
      • py2float

        public static float py2float​(PyObject o)
      • py2double

        public static double py2double​(PyObject o)
      • py2char

        public static char py2char​(PyObject o)
      • py2char

        public static char py2char​(PyObject o,
                                   java.lang.String msg)
      • py2void

        public static void py2void​(PyObject o)
      • makeCharacter

        public static final PyString makeCharacter​(java.lang.Character o)
      • makeCharacter

        public static final PyString makeCharacter​(char c)
      • makeClass

        public static PyObject makeClass​(java.lang.String name,
                                         PyObject[] bases,
                                         PyObject dict)
        Create a new Python class.
        Parameters:
        name - the String name of the class
        bases - an array of PyObject base classes
        dict - the class's namespace, containing the class body definition
        Returns:
        a new Python Class PyObject
      • getName

        public static java.lang.String getName()
      • getCompilerFlags

        public static CompilerFlags getCompilerFlags()
      • getCompilerFlags

        public static CompilerFlags getCompilerFlags​(int flags,
                                                     boolean dont_inherit)
      • compile

        public static PyCode compile​(java.io.InputStream istream,
                                     java.lang.String filename,
                                     CompileMode kind)
      • compile_flags

        public static PyCode compile_flags​(org.python.antlr.base.mod node,
                                           java.lang.String name,
                                           java.lang.String filename,
                                           boolean linenumbers,
                                           boolean printResults,
                                           CompilerFlags cflags)
        Entry point for compiling modules.
        Parameters:
        node - Module node, coming from the parsing process
        name - Internal name for the compiled code. Typically generated by calling getName().
        filename - Source file name
        linenumbers - True to track source line numbers on the generated code
        printResults - True to call the sys.displayhook on the result of the code
        cflags - Compiler flags
        Returns:
        Code object for the compiled module
      • compile_flags

        public static PyCode compile_flags​(org.python.antlr.base.mod node,
                                           java.lang.String filename,
                                           CompileMode kind,
                                           CompilerFlags cflags)
      • compile_flags

        public static PyCode compile_flags​(java.io.InputStream istream,
                                           java.lang.String filename,
                                           CompileMode kind,
                                           CompilerFlags cflags)
        Compiles python source code coming from a file or another external stream
      • compile_flags

        public static PyCode compile_flags​(java.lang.String data,
                                           java.lang.String filename,
                                           CompileMode kind,
                                           CompilerFlags cflags)
        Compiles python source code coming from String (raw bytes) data. If the String is properly decoded (from PyUnicode) the PyCF_SOURCE_IS_UTF8 flag should be specified.
      • compile_command_flags

        public static PyObject compile_command_flags​(java.lang.String string,
                                                     java.lang.String filename,
                                                     CompileMode kind,
                                                     CompilerFlags cflags,
                                                     boolean stdprompt)
      • unpackSequence

        public static PyObject[] unpackSequence​(PyObject obj,
                                                int length)
      • iter

        public static PyObject iter​(PyObject seq,
                                    java.lang.String message)
      • id

        public static long id​(PyObject o)
      • idstr

        public static java.lang.String idstr​(PyObject o)
      • java_obj_id

        public static long java_obj_id​(java.lang.Object o)
      • printResult

        public static void printResult​(PyObject ret)
      • maybeWrite

        public static void maybeWrite​(java.lang.String type,
                                      java.lang.String msg,
                                      int level)
      • writeError

        public static void writeError​(java.lang.String type,
                                      java.lang.String msg)
      • writeWarning

        public static void writeWarning​(java.lang.String type,
                                        java.lang.String msg)
      • writeMessage

        public static void writeMessage​(java.lang.String type,
                                        java.lang.String msg)
      • writeComment

        public static void writeComment​(java.lang.String type,
                                        java.lang.String msg)
      • writeDebug

        public static void writeDebug​(java.lang.String type,
                                      java.lang.String msg)
      • saveClassFile

        public static void saveClassFile​(java.lang.String name,
                                         java.io.ByteArrayOutputStream bytestream)
      • isInstance

        public static boolean isInstance​(PyObject inst,
                                         PyObject cls)
      • isSubClass

        public static boolean isSubClass​(PyObject derived,
                                         PyObject cls)
      • getDefaultExecutableName

        public static java.lang.String getDefaultExecutableName()
        Infers the usual Jython executable name from the position of the jar-file returned by getJarFileName() by replacing the file name with "bin/jython". This is intended as an easy fallback for cases where sys.executable is None due to direct launching via the java executable.
        Note that this does not necessarily return the actual executable, but instead infers the place where it is usually expected to be. Use sys.executable to get the actual executable (may be None. In contrast to getJarFileName() and getJarFileNameFromURL(java.net.URL) this method returns the path using system-specific separator characters.
        Returns:
        usual Jython-executable as absolute path
      • getDefaultBinDir

        public static java.lang.String getDefaultBinDir()
        Infers the usual Jython bin-dir from the position of the jar-file returned by getJarFileName() byr replacing the file name with "bin". This is intended as an easy fallback for cases where sys.executable is null due to direct launching via the java executable.
        Note that this does not necessarily return the actual bin-directory, but instead infers the place where it is usually expected to be. In contrast to getJarFileName() and getJarFileNameFromURL(java.net.URL) this method returns the path using system-specific separator characters.
        Returns:
        usual Jython bin-dir as absolute path
      • getJarFileName

        public static java.lang.String getJarFileName()
        Utility-method to obtain the name (including absolute path) of the currently used jython-jar-file. Usually this is jython.jar, but can also be jython-dev.jar or jython-standalone.jar or something custom.
        Returns:
        the full name of the jar file containing this class, null if not available.
      • _getJarFileName

        public static java.lang.String _getJarFileName()
        Utility-method to obtain the name (including absolute path) of the currently used jython-jar-file. Usually this is jython.jar, but can also be jython-dev.jar or jython-standalone.jar or something custom. Note that it does not use system-specific seperator-chars, but always '/'.
        Returns:
        the full name of the jar file containing this class, null if not available.
      • getJarFileNameFromURL

        public static java.lang.String getJarFileNameFromURL​(java.net.URL url)
        Converts a url that points to a jar-file to the actual jar-file name. Note that it does not use system-specific seperator-chars, but always '/'.
      • javaPyClass

        public static PyObject javaPyClass​(PyObject cls,
                                           java.lang.Class<?> interfce)
        Returns a Python-class that extends cls and interfce. If cls already extends interfce, simply cls is returned. Otherwise a new class is created (if not yet cached). It caches such classes and only creates a new one if no appropriate class was cached yet.
        Returns:
        a Python-class that extends cls and interfce
      • newJ

        public static <T> T newJ​(PyObject cls,
                                 java.lang.Class<T> jcls,
                                 java.lang.Object... args)
        This method is a compact helper to access Python-constructors from Java. It creates an instance of cls and retruns it in form of jcls, which must be an interface. This method even works if cls does not extend jcls in Python-code. In that case, it uses javaPyClass(PyObject, Class) to create an appropriate class on the fly.
        It automatically converts args to PyObjects.
        For keyword-support use newJ(PyObject, Class, String[], Object...). {@see #newJ(PyObject, Class, PyObject[], String[])} {@see #newJ(PyObject, Class, String[], Object...)} {@see #newJ(PyModule, Class, Object...)} {@see #newJ(PyModule, Class, String[], Object...)} {@see org.python.core.PyModule#newJ(Class, Object...)} {@see org.python.core.PyModule#newJ(Class, String[], Object...)}
        Parameters:
        cls - - the class to be instanciated
        jcls - - the Java-type to be returned
        args - are automatically converted to Jython-PyObjects
        Returns:
        an instance of cls in form of the interface jcls
      • newJ

        public static <T> T newJ​(PyObject cls,
                                 java.lang.Class<T> jcls,
                                 PyObject[] args,
                                 java.lang.String[] keywords)
        This method is a compact helper to access Python-constructors from Java. It creates an instance of cls and retruns it in form of jcls, which must be an interface. This method even works if cls does not extend jcls in Python-code. In that case, it uses javaPyClass(PyObject, Class) to create an appropriate class on the fly.
        keywordss are applied to the last args in the list. {@see #newJ(PyObject, Class, Object...)} {@see #newJ(PyObject, Class, String[], Object...)} {@see #newJ(PyModule, Class, Object...)} {@see #newJ(PyModule, Class, String[], Object...)} {@see org.python.core.PyModule#newJ(Class, Object...)} {@see org.python.core.PyModule#newJ(Class, String[], Object...)}
        Parameters:
        cls - - the class to be instanciated
        jcls - - the Java-type to be returned
        keywords - are applied to the last args
        args - for the Python-class constructor
        Returns:
        an instance of cls in form of the interface jcls
      • newJ

        public static <T> T newJ​(PyObject cls,
                                 java.lang.Class<T> jcls,
                                 java.lang.String[] keywords,
                                 java.lang.Object... args)
        This method is a compact helper to access Python-constructors from Java. It creates an instance of cls and retruns it in form of jcls, which must be an interface. This method even works if cls does not extend jcls in Python-code. In that case, it uses javaPyClass(PyObject, Class) to create an appropriate class on the fly.
        It automatically converts args to PyObjects.
        keywordss are applied to the last args in the list. {@see #newJ(PyObject, Class, PyObject[], String[])} {@see #newJ(PyObject, Class, Object...)} {@see #newJ(PyModule, Class, Object...)} {@see #newJ(PyModule, Class, String[], Object...)} {@see org.python.core.PyModule#newJ(Class, Object...)} {@see org.python.core.PyModule#newJ(Class, String[], Object...)}
        Parameters:
        cls - - the class to be instanciated
        jcls - - the Java-type to be returned
        keywords - are applied to the last args
        args - are automatically converted to Jython-PyObjects
        Returns:
        an instance of cls in form of the interface jcls
      • newJ

        public static <T> T newJ​(PyModule module,
                                 java.lang.Class<T> jcls,
                                 java.lang.Object... args)
        Works like newJ(PyObject, Class, Object...), but looks up the Python-class in the module-dict using the interface-name, i.e. jcls.getSimpleName().
        For keywords-support use newJ(PyModule, Class, String[], Object...). {@see #newJ(PyModule, Class, String[], Object...)} {@see #newJ(PyObject, Class, PyObject[], String[])} {@see #newJ(PyObject, Class, Object...)} {@see #newJ(PyObject, Class, String[], Object...)} {@see org.python.core.PyModule#newJ(Class, Object...)} {@see org.python.core.PyModule#newJ(Class, String[], Object...)}
        Parameters:
        module - the module containing the desired class
        jcls - Java-type of the desired clas, must have the same name
        args - constructor-arguments
        Returns:
        a new instance of the desired class
      • newJ

        public static <T> T newJ​(PyModule module,
                                 java.lang.Class<T> jcls,
                                 java.lang.String[] keywords,
                                 java.lang.Object... args)
        Works like newJ(PyObject, Class, String[], Object...), but looks up the Python-class in the module-dict using the interface-name, i.e. jcls.getSimpleName().
        keywordss are applied to the last args in the list. {@see #newJ(PyModule, Class, Object...)} {@see #newJ(PyObject, Class, PyObject[], String[])} {@see #newJ(PyObject, Class, Object...)} {@see #newJ(PyObject, Class, String[], Object...)} {@see org.python.core.PyModule#newJ(Class, Object...)} {@see org.python.core.PyModule#newJ(Class, String[], Object...)}
        Parameters:
        module - the module containing the desired class
        jcls - Java-type of the desired class, must have the same name
        keywords - are applied to the last args in the list
        args - constructor-arguments
        Returns:
        a new instance of the desired class