JPype 0.7.1
-
Updated the keyword safe list for Python 3.
-
Automatic conversion of CharSequence from Python strings.
-
java.lang.AutoCloseable supports Python "with" statement.
-
Hash codes for boxed types work properly in Python 3 and can be
used as dictionary keys again (same as JPype 0.6). Java arrays
have working hash codes, but as they are mutable should not
be used as dictionary keys. java.lang.Character, java.lang.Float,
and java.lang.Double all work as dictionary keys, but due to
differences in the hashing algorithm do not index to the same
location as Python native types and thus may cause issues
when used as dictionary keys. -
Updated getJVMVersion to work with JDK 9+.
-
Added support for pickling of Java objects using optional module
jpype.pickle
-
Fixed incorrect string conversion on exceptions.
str()
was
incorrectly returninggetMessage
rather thantoString
. -
Fixed an issue with JDK 12 regarding calling methods with reflection.
-
Removed limitations having to do with CallerSensitive methods. Methods
affected are listed in :doc:caller-sensitive
. Caller sensitive
methods now receive an internal JPype class as the desut -
Fixed segfault when converting null elements while accessing a slice
from a Java object array. -
PyJPMethod now supports the FunctionType API.
-
Tab completion with Jedi is supported. Jedi is the engine behind
tab completion in many popular editors and shells such as IPython.
Jedi version 0.14.1 is required for tab completion as earlier versions
did not support annotations on compiled classes. Tab completion
with older versions requires use of the IPython greedy method. -
JProxy objects now are returned from Java as the Python objects
that originate from. Older style proxy classes return the
inst or dict. New style return the proxy class instance.
Thus proxy classes can be stored on generic Java containers
and retrieved as Python objects.