Skip to content

JPype 0.7.2

Compare
Choose a tag to compare
@Thrameos Thrameos released this 29 Feb 00:54
· 1356 commits to master since this release
  • C++ and Java exceptions hold the traceback as a Python exception
    cause. It is no longer necessary to call stacktrace() to retrieve
    the traceback information.

  • Speed for call return path has been improved by a factor of 3.

  • Multidimensional array buffer transfers increase speed transfers
    to numpy substantially (orders of magnitude). Multidimension primitive
    transfers are read-only copies produced inside the JVM with C contiguous
    layout.

  • All exposed internals have been replaced with CPython implementations
    thus symbols __javaclass__, __javavalue__, and __javaproxy__
    have been removed. A dedicated Java slot has been added to all CPython
    types derived from _jpype class types. All private tables have been
    moved to CPython. Java types must derive from the metaclass JClass
    which enforces type slots. Mixins of Python base classes is not
    permitted. Objects, Proxies, Exceptions, Numbers, and Arrays
    derive directly from internal CPython implementations.

  • Internal improvements to tracing and exception handling.

  • Memory leak in convertToDirectBuffer has been corrected.

  • Arrays slices are now a view which support writeback to the original
    like numpy array. Array slices are no longer covariant returns of
    list or numpy.array depending on the build procedure.

  • Array slices support steps for both set and get.

  • Arrays now implement __reversed__

  • Incorrect mapping of floats between 0 and 1 to False in setting
    Java boolean array members is corrected.

  • Java arrays now properly assert range checks when setting elements
    from sequences.

  • Java arrays support memoryview API and no longer required numpy
    to transfer buffer contents.

  • Numpy is no longer an optional extra. Memory transfer to numpy
    is available without compiling for numpy support.

  • JInterface is now a meta class. Use isinstance(cls, JInterface)
    to test for interfaces.

  • Fixed memory leak in Proxy invocation

  • Fixed bug with Proxy not converting when passed as an argument to
    Python functions during execution of proxies

  • Missing tlds "mil", "net", and "edu" added to default imports.

  • Enhanced error reporting for UnsupportedClassVersion during startup.

  • Corrections for collection methods to improve complience with
    Python containers.

    • java.util.Map gives KeyError if the item is not found. Values that
      are null still return None as expected. Use get() if
      empty keys are to be treated as None.

    • java.util.Collection __delitem__ was removed as it overloads
      oddly between remove(Object) and remove(int) on Lists.
      Use Java remove() method to access the original Java behavior,
      but a cast is strongly recommended to to handle the overload.

  • java.lang.IndexOutOfBoundsException can be caught with IndexError
    for complience when accessing java.util.List elements.