jpype v0.7.1 Release Notes

Release Date: 2020-01-03 // about 2 years ago

    โšก๏ธ 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

    ๐Ÿ›  Fixed incorrect string conversion on exceptions. str() was
    incorrectly returning getMessage rather than toString.

    ๐Ÿ›  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.