Skip to main content

Deephaven jpy

This package is a fork of jpy https://github.com/bcdev/jpy.git maintained by Deephaven Data Labs.

Installation

  • Note that "deephaven-jpy" is not compatible with "jpy" as they both install shared libraries with the same name.
  • If you already have "jpy" installed, it should be removed before installing "deephaven-jpy"

    # Remove jpy if it is currently installed
    pip uninstall jpy

    # Install deephaven-jpy
    pip install deephaven-jpy

Usage

>>> import jpy
>>> ...

jpy Changelog


Version 0.10 (in development)

  • Make jpy work with Anaconda by setting environment variable PYTHONHOME from Java #143. Contribution by Dr-Irv.
  • Fixed: Constants are not properly passed from Java to Python when using interfaces #140. Contribution by Dr-Irv.
  • Fixed: Cannot iterate through a dict in Python 3.x #136. Contribution by Dr-Irv.

Version 0.9

This version includes a number of contributions from supportive GitHub users. Thanks to all of you!

Fixes

  • Corrected Java reference count of complex PyObject passed back and forth to methods (issue #120). Fix by sbarnoud.
  • Fixed problem where default methods on Java 8 Interfaces were not found (issue #102). Fix by Charles P. Wright.
  • Fixed error caused by missing sys.argv in Python when called from Java (issue #81). Fix by Dave Voutila.
  • Fixed problem where calling jpy.get_type() too many times causes a memory access error (issue #74). Fix by Dave Voutila.
  • Fixed a corruption when retrieving long values (#72). Fix by chipkent.
  • Fixed fatal error when stopping python session (issue #70, #77). Fix by Dave Voutila.

Explicit null checks for avoiding JVM crash (issue #126). Fix by Geomatys.

Improvements

  • Can now use pip to install Python jpy package directly from GitHub (#83). This works for Linux and OS X where C compilers are available by default and should work on Windows with Visual Studio 15 installed. Contribution by Dave Voutila.
  • Java PyObject is now serializable. Contribution by Mario Briggs.
  • Improved Varargs method matching. You may pass in either an array (as in the past) or individual Python arguments, the match for a varargs method call is the minimum match for each of the arguments. Zero length arrays (i.e. no arguments) are also permitted with a match value of 10.
  • jpy.type_translations dictionary for callbacks when instantiating Python objects.
  • jpy.VerboseExceptions enables full Java stack traces.
  • More Python exceptions are translated to the corresponding Java type.
  • Globals and locals are converted when executing code with PyLib, to allow variables to be used across statement invocation; and interrogated from Java.
  • PyObject wrappers for dictionary, list, and introspection functions to tell you whether or not you can convert the object.
  • Support for isAssignable checks when dealing with Python Strings and primitives, to allow matches for argument types such as java.lang.Comparable or java.lang.Number.

Version 0.8

Fixes

  • Java interface types don't include methods of extended interfaces (issue #64)
  • Loading of jpy DLL fails for user-specific Python installations on Windows (issue #58)
  • Java interface types didn't expose java.lang.Object methods (issue #57)
  • Java 1-arg static method was confused with a zero-arg non-static method (issue #54)
  • Python interpreter crash occurred when executing del statement on Java arrays (issue #52)
  • Python extensions loaded from Java couldn't see Python symbols (Linux) (issue #38)

Improvements

  • It is now possible to use jpy Java API to work with multiple Python installations (issue #35). A tool called 'jpyutil.py' can be used to write configuration files that determine the required shared libraries for a given Python versions. A new Java system property 'jpy.config' is used to point to a desired configuration file.
  • Simplified jpy installation (issue #15):
    • removed need to add JVM path to PATH (Windows) / LD_LIBRARY_PATH (Unix) environment variable
    • removed need to compile Java module using Maven
    • removed need to specify JDK_HOME environment variable, if JAVA_HOME already points to a JDK
  • Added 'jclass' attribute to Python type that wraps a Java class (issue #63) .
  • Java API extensions
  • new jpy.org.PyObject.executeCode() methods
  • new jpy.org.PyModule.getBuiltins() method
  • new jpy.org.PyModule.getMain() method
  • new jpy.org.PyModule.extendSysPath() method
  • Java API configuration changes:
    • System property jpy.jpyLib:
    • System property jpy.jdlLib:
    • System property jpy.pythonLib:
    • System property jpy.config:
    • Loaded from

      File ./jpyconfig.properties

      Resource /jpyconfig.properties

      File ${jpy.config}

  • Python API configuration changes:
    • Loaded from

      File ./jpyconfig.py

      Resource ${jpy-module}/jpyconfig.py

    • Attribute java_home
    • Attribute jvm_dll
  • Python API extensions
    • new jpyutil module

      jpyutil.init_jvm(...)

      jpyutil.preload_jvm_lib(...)

    • new jpyutil tool

      usage: jpyutil.py [-h] [--out OUT] [--java_home JAVA_HOME] [--jvm_dll JVM_DLL]

  • Added basic support for Java Scripting Engine API (issue #53)

Other changes

  • Switched to Apache 2.0 license from version 0.8 and later (issue #60)

Version 0.7.5

  • Fixed bad pointer in C-code which caused unpredictable crashes (issue #43)

Version 0.7.4

  • Fixed a problem where jpy crashes with unicode arguments (issue #42)
  • Fixed segmentation fault occurring occasionally during installation of jpy (issue #40)
  • Improved Java exception messages on Python errors (issue #39)

Version 0.7.3

  • Fixed problem where a Java primitive array argument has occasionally not been initialised by a related Python buffer argument (issue #37)

Version 0.7.2

  • Added backward compatibility with Python 2.7 (issue #34).
  • Added Java parameter annotation 'output' (issue #36). This is used to optimise passing Python buffer arguments where Java primitive arrays are expected.
  • Removed debugging prints of the form "JNI_OnLoad: ..."
  • Corrected documentation of jpy.array(type, init) function, which was said to be jpy.array(type, length)
  • Removed console dumps that occurred when calling from Java proxies into Python
  • Updated Java API documentation and added it to Sphinx doc folder (doc/_static/java-apidoc)
  • Added new diagnostic F_ERR flag to Java class PyLib.Diag
  • Java class PyLib is no longer instantiable

Version 0.7.1

  • Updated README and added MANIFEST.in after recognising that the jpy-0.7.zip distribution misses most of the required source files and learning what to do on this case.

Version 0.7

  • Initial version.

Metadata

Release files for deephaven-jpy 1.20211129.153

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for deephaven-jpy 1.20211129.153
File
deephaven_jpy-1.20211129.153-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
deephaven_jpy-1.20211129.153-cp38-cp38-macosx_10_14_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.14+ x86-64 Details
deephaven_jpy-1.20211129.153-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
deephaven_jpy-1.20211129.153-cp37-cp37m-macosx_10_14_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.14+ x86-64 Details
deephaven_jpy-1.20211129.153-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
deephaven_jpy-1.20211129.153-cp36-cp36m-macosx_10_14_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.14+ x86-64 Details

Total release size: 557.3 kB

Release files / deephaven_jpy-1.20211129.153-cp38-cp38-win_amd64.whl

Download URL deephaven_jpy-1.20211129.153-cp38-cp38-win_amd64.whl
Size 67.8 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
e59cf6b5f27cc293ab99c98de37a6118f689236c204355e23248465af1d5a41f
BLAKE2b-256 checksum
How to use checksums
15a68ae3aa21114235317b17226de5b6d9ef112d6b23eb655e417eec67f39924
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / deephaven_jpy-1.20211129.153-cp38-cp38-macosx_10_14_x86_64.whl

Download URL deephaven_jpy-1.20211129.153-cp38-cp38-macosx_10_14_x86_64.whl
Size 75.8 kB
Tags CPython 3.8 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
15605b678a051e66a608240b6e6336c63c00a1a48e0665133c029dd18d672782
BLAKE2b-256 checksum
How to use checksums
3c8ddd50944a9bb268a2c321d2d7ba11e42b410ab2a002b758ed1ba1133cdf44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / deephaven_jpy-1.20211129.153-cp37-cp37m-win_amd64.whl

Download URL deephaven_jpy-1.20211129.153-cp37-cp37m-win_amd64.whl
Size 67.6 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
ea93be03e80a246dc0c816d9ac3f620f7ec90d271290a38de0b59e621a19b285
BLAKE2b-256 checksum
How to use checksums
0241d4c1c6cf0834bb76e5936317d32824295fcfe5d85a50bd494d6b81e9a204
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / deephaven_jpy-1.20211129.153-cp37-cp37m-macosx_10_14_x86_64.whl

Download URL deephaven_jpy-1.20211129.153-cp37-cp37m-macosx_10_14_x86_64.whl
Size 116.4 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
1545f5b980a7e0ce8966eb25056da430d757bd36b824b3f1c500f17e1533fb3c
BLAKE2b-256 checksum
How to use checksums
23e03df9766e567d3c221d55b4ed24e4b1fd85dfc2cfdf896afa78c5d5f6462d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / deephaven_jpy-1.20211129.153-cp36-cp36m-win_amd64.whl

Download URL deephaven_jpy-1.20211129.153-cp36-cp36m-win_amd64.whl
Size 113.4 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
7c3300fd75e541eeba4daaf0e3860dead06526f8f4353cd68e3bab83dfbd54e6
BLAKE2b-256 checksum
How to use checksums
86b52c31fac7f4e95cd7505651bb766c84e7074817a8688a25d84f104f68df16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / deephaven_jpy-1.20211129.153-cp36-cp36m-macosx_10_14_x86_64.whl

Download URL deephaven_jpy-1.20211129.153-cp36-cp36m-macosx_10_14_x86_64.whl
Size 116.4 kB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
683cc8e1184abe0dabb38e14d89123f9938c8f0ccf2252ddced174657bd40f1c
BLAKE2b-256 checksum
How to use checksums
d7ba8d1505c09dce00dc48b7c502c8dc8c3165468577441b2162eb4f98f13b28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page