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
PYTHONHOMEfrom 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.argvin 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
jpypackage 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
PyObjectis 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_translationsdictionary for callbacks when instantiating Python objects.jpy.VerboseExceptionsenables 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.Comparableorjava.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:
- Python API configuration changes:
- Python API extensions
- 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)
| File | Reset | |||
|---|---|---|---|---|
| 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
|