Skip to main content

Bi-directional Python-Java bridge

Project description

Build Status

jpy - a Python-Java Bridge

jpy is a bi-directional Python-Java bridge which you can use to embed Java code in Python programs or the other way round. It has been designed particularly with regard to maximum data transfer speed between the two languages. It comes with a number of outstanding features:

  • Fully translates Java class hierarchies to Python
  • Transparently handles Java method overloading
  • Support of Java multi-threading
  • Fast and memory-efficient support of primitive Java array parameters via Python buffers (e.g. Numpy arrays)
  • Support of Java methods that modify primitive Java array parameters (mutable parameters)
  • Java arrays translate into Python sequence objects
  • Java API for accessing Python objects (jpy.jar)

jpy has been tested with Python 3.6–3.13 and OpenJDK 8+ on Linux, Windows, and macOS.

The initial development of jpy was driven by the need to write Python extensions to an established scientific imaging application programmed in Java, namely the SNAP toolbox, the SeNtinel Application Platform project, funded by the European Space Agency (ESA). (jpy is bundled with the SNAP distribution.) Current development and maintenance is funded by Deephaven.

Writing such Python plug-ins for a Java application usually requires a bi-directional communication between Python and Java since the Python extension code must be able to call back into the Java APIs.

For more information please have a look into jpy's

How to build wheels for Linux and Mac

Install a JDK 8, preferably the Oracle distribution. Set JDK_HOME or JPY_JDK_HOME to point to your JDK installation and run the build script:

$ export JDK_HOME=<your-jdk-dir>
$ export JAVA_HOME=$JDK_HOME
$ pip install setuptools wheel
$ python setup.py build maven bdist_wheel

On success, the wheel is found in the dist directory.

To deploy the jpy.jar (if you don't know why you need this step, this is not for you)::

$ mvn clean deploy -DskipTests=true

How to build a wheel for Windows

Set JDK_HOME or JPY_JDK_HOME to point to your JDK installation. You'll need Windows SDK 7.1 or Visual Studio C++ to build the sources. With Windows SDK 7.1::

> SET VS90COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\
> SET DISTUTILS_USE_SDK=1
> C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv /x64 /release
> SET JDK_HOME=<your-jdk-dir>
> pip install setuptools wheel
> python setup.py build maven bdist_wheel

With Visual Studio 14 and higher it is much easier::

> SET VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\
> SET JDK_HOME=<your-jdk-dir>
> pip install setuptools wheel
> python setup.py build maven bdist_wheel

On success, the wheel can be found in the dist directory.

How to install from sources

TBD

Releasing jpy

The target reader of this section is a jpy developer wishing to release a new jpy version. Note: You need to have Sphinx installed to update the documentation.

  1. Make sure all Java and Python units tests run green
  2. Remove the -SNAPSHOT qualifier from versions names in both the Maven pom.xml and setup.py files, and update the version numbers and copyright years in jpyutil.py and doc/conf.py.
  3. Generate Java API doc by running mvn javadoc:javadoc which will update directory doc/_static
  4. Update documentation, cd doc and run make html
  5. http://peterdowns.com/posts/first-time-with-pypi.html

Running Tests

Run: python setup.py build test

Code Of Conduct

This project has adopted the Contributor Covenant Code of Conduct. For more information see the Code of Conduct or contact opencode@deephaven.io with any additional questions or comments.

Contributing

For instructions on contributing, see CONTRIBUTING.md.

Notes

Some of the details on this README are out of date. Efforts to improve them will be made in the future.

jpy Changelog

Version 1.4.0

  • #220 Use Python built-in exception formating
  • #215 Bump actions/checkout from 5 to 6
  • #207 Bump actions/setup-python from 5 to 6
  • #223 Bump docker/setup-buildx-action from 3 to 4
  • #224 Bump docker/bake-action from 6.9.0 to 7.1.0
  • #221 Bump actions/download-artifact from 4 to 8
  • #222 Bump actions/upload-artifact from 4 to 7
  • #225 Bump docker/setup-qemu-action from 3 to 4

Version 1.3.0

  • #212 feat: Add 3.14 builds
  • #214 Remove 3.6, 3.7, 3.8 from project's metadata and related dead code in the code base

Version 1.2.0

  • #199 Call PyObject_IsTrue() to test truthiness

Version 1.1.0

  • #179 Improve libpython search with python's sysconfig INSTSONAME

Version 1.0.0

  • #176 fix: make PyObject cleanup thread-safe in free-threaded Python and reduce contention
  • #175 Update project's Development Status classifier

Version 0.19.0

  • #165 feat: free-threaded Python (3.13.0+) support
  • #168 Add Python 3.13 builds
  • #164 fix: Make org.jpy.PyLib.getCurrentLocals/Globals work for Python 3.13
  • #162 Find Zero-Assembler OpenJDK 21

Version 0.18.0

  • #158 Get the correct computed tb lineno
  • #153 Remove pip upgrade from CI
  • #150 Bump docker/bake-action from 4.5.0 to 4.6.0

Version 0.17.0

  • #146 Delay resolving super classes until referenced
  • #145 Use Py_ssize_t when calculate buffer len

Version 0.16.0

  • #128 Function for converting Python values to an explicit Java type
  • #132 Update auditwheel command to use --exclude
  • Various CI-related version bumps

Version 0.15.0

  • #112 Add jpy.byte_buffer() function
  • #119 Fix Mac OSX + OpenJDK builds where JAVA_HOME contains libexec but not lib
  • #121 Python 3.12 build
  • #109 Add aarch64 Linux wheels to build / release workflow
  • #113 Update build.yml actions

Version 0.14.0

  • #99 Check for exception in getInt/Long/DoubleValue()
  • #104 PyDictWrapper.values() incorrectly close the underlying PyObject while it is still referenced

Version 0.13.0

  • #96 Python 3.11 compatibility

Version 0.12.0

  • #88 Use valueOf() to box primitive values instead of creating new objects every time
  • #89 Add Java process lookup for 'java.home' in find_jvm_dll_file()
  • #85 Support creation of zero-sized primitive Java arrays

Version 0.11.1

  • #79 Produce usable / distributable macosx wheels

Version 0.11.0

  • Publish artifacts to PyPi. Source tarball and binary wheels for Python 3.6 - 3.10 for Linux, Mac, and Windows (x86_64).
  • Publish release to Maven Central with group id org.jpyconsortium and artifact id jpy. Java-8 compatible jars.
  • Many more changes.

Version 0.10

  • Add the ability to pass properties and options to write_config_files. These values get passed to the jvm when it is initialized. #180 Contribution by davidlehrian.
  • 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.
  • Automatically build 64-bit Python wheels for all Python versions from 3.4 to 3.8 on Linux, Windows, and Mac (fixes #174).

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jpy-1.4.0.tar.gz (184.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

jpy-1.4.0-cp314-cp314t-win_amd64.whl (80.8 kB view details)

Uploaded CPython 3.14tWindows x86-64

jpy-1.4.0-cp314-cp314t-manylinux_2_34_x86_64.whl (340.9 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ x86-64

jpy-1.4.0-cp314-cp314t-manylinux_2_34_aarch64.whl (342.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ ARM64

jpy-1.4.0-cp314-cp314t-macosx_10_15_universal2.whl (144.9 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ universal2 (ARM64, x86-64)

jpy-1.4.0-cp314-cp314-win_amd64.whl (77.7 kB view details)

Uploaded CPython 3.14Windows x86-64

jpy-1.4.0-cp314-cp314-manylinux_2_34_x86_64.whl (305.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

jpy-1.4.0-cp314-cp314-manylinux_2_34_aarch64.whl (303.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

jpy-1.4.0-cp314-cp314-macosx_10_15_universal2.whl (140.5 kB view details)

Uploaded CPython 3.14macOS 10.15+ universal2 (ARM64, x86-64)

jpy-1.4.0-cp313-cp313t-win_amd64.whl (79.1 kB view details)

Uploaded CPython 3.13tWindows x86-64

jpy-1.4.0-cp313-cp313t-manylinux_2_34_x86_64.whl (340.2 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.34+ x86-64

jpy-1.4.0-cp313-cp313t-manylinux_2_34_aarch64.whl (342.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.34+ ARM64

jpy-1.4.0-cp313-cp313t-macosx_10_13_universal2.whl (144.6 kB view details)

Uploaded CPython 3.13tmacOS 10.13+ universal2 (ARM64, x86-64)

jpy-1.4.0-cp313-cp313-win_amd64.whl (76.0 kB view details)

Uploaded CPython 3.13Windows x86-64

jpy-1.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (311.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

jpy-1.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (309.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

jpy-1.4.0-cp313-cp313-macosx_10_13_universal2.whl (140.5 kB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

jpy-1.4.0-cp312-cp312-win_amd64.whl (76.0 kB view details)

Uploaded CPython 3.12Windows x86-64

jpy-1.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (312.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

jpy-1.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (311.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

jpy-1.4.0-cp312-cp312-macosx_10_13_universal2.whl (140.3 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

jpy-1.4.0-cp311-cp311-win_amd64.whl (75.5 kB view details)

Uploaded CPython 3.11Windows x86-64

jpy-1.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (309.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

jpy-1.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (309.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

jpy-1.4.0-cp311-cp311-macosx_10_9_universal2.whl (139.9 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

jpy-1.4.0-cp310-cp310-win_amd64.whl (75.5 kB view details)

Uploaded CPython 3.10Windows x86-64

jpy-1.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (303.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

jpy-1.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (303.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

jpy-1.4.0-cp310-cp310-macosx_11_0_universal2.whl (140.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ universal2 (ARM64, x86-64)

jpy-1.4.0-cp39-cp39-win_amd64.whl (124.7 kB view details)

Uploaded CPython 3.9Windows x86-64

jpy-1.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (300.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

jpy-1.4.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (301.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

jpy-1.4.0-cp39-cp39-macosx_11_0_universal2.whl (140.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ universal2 (ARM64, x86-64)

File details

Details for the file jpy-1.4.0.tar.gz.

File metadata

  • Download URL: jpy-1.4.0.tar.gz
  • Upload date:
  • Size: 184.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0.tar.gz
Algorithm Hash digest
SHA256 167d91c71f9595978bc1786ca669a18f9906057d40f53b7a949dd3f9102abaa9
MD5 81fc8de5582cdb17b358f0385536fcc2
BLAKE2b-256 19c75694f56f2fb16601bfae2a65fbf9317d3e461db9f84498b86e7654ae75a6

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: jpy-1.4.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 80.8 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 35d4891bf5df1498d08161e28ff4adb9e64cc10e59a93b7e985af377dd661479
MD5 39a8be21ae0a97e3cf9600205292b479
BLAKE2b-256 70275b79883c067023cd33ad256fe44f154440785d733cabccc4a93a8131f119

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp314-cp314t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7349fd94fab87df3218a9d89c095ebccb00f24a3cf40c4525056da8b189e7729
MD5 4058c6b26d37373fd1e5b38e897fdbb3
BLAKE2b-256 18ff78eefbd94c884c70622cb7f2111ddcdc3936d4f84e9976576b47d38e6770

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp314-cp314t-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp314-cp314t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 360681923b58d874e6e4928f23151406537a14c6981f5b1d5425711b2e58494f
MD5 9d32eee4be59353cd6348935ce4315c2
BLAKE2b-256 84b48771ca921a68ab727adcbd3595ae16825651e1bc5c76664fce20beaa9ee1

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp314-cp314t-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 bfdeee4d6bb2f216b93293302b8d14cc154f81997c078f47772ef877b90d16c3
MD5 5eff79f94d18ff71eb4284d74fc8f2d9
BLAKE2b-256 8fc8d3d8a7cb7601f54ad38a7e267201cca160a0df83aa21a1b9ad803873d8cd

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: jpy-1.4.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 77.7 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2c671045b2d58685065f37a840a62b799a3d7510ba3573733d98176adc065cc5
MD5 cefcefc26fdbe4ac6896ec4f8755144c
BLAKE2b-256 37967a4e23f8c6f1d1d45c832c55770a3f254611e633c0f454b9d1a11e130f24

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 814617262526db449a848e458ad1df9908e76a0508c2a03f7db81efdb4a56223
MD5 f77be3c61cca98e22e65b88f08e62de6
BLAKE2b-256 f4626d03236b1bbbfc57f78b450336bff4ed3ec5016f68d7a71908d49de01b6f

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 2a7ee1bca45cf1a68bc282e8fc4780a8b3c1029a99aacac3fa7b7f64fa144fd8
MD5 a494124da80164e06759434d48de27e1
BLAKE2b-256 b4dc35dda4e54e9ab4a32f73aded3f4b628ffc93d4bfcb0cefee96fb85fa0080

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

  • Download URL: jpy-1.4.0-cp314-cp314-macosx_10_15_universal2.whl
  • Upload date:
  • Size: 140.5 kB
  • Tags: CPython 3.14, macOS 10.15+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 7cbd3b1df429a2675604a37e26ad393a726f7ea16d8bbb3b61c09974b353883d
MD5 37e89bea362b6c259e71b95b3e488194
BLAKE2b-256 fe4f3ef36f89d30675c22510f0198ae121e4aae0c3c6329f0b0448664189661b

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: jpy-1.4.0-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 79.1 kB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 549e85920810358c420d7b6126491af9da00e1a0d9cc781b1fbd2d49f379f41c
MD5 7384d9631665f5aedb4caaf1862c476e
BLAKE2b-256 64fc06e2f00e7d12fd13db0a2c56d0501f99cf7194a6aaa443981f822f0aad4c

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp313-cp313t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp313-cp313t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1bd5dee6e8eaceeb01a1501ea3790c0daa061dc8c4f14deae0841f7075d88492
MD5 1c604a3b5c30d91c602b7c38380b74ec
BLAKE2b-256 4c2fbaf7fb04c6a9b19554ffc8b6dd2b86c2ccf0f11d0593eb9de0eeab1b38fc

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp313-cp313t-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp313-cp313t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 1b8c4578e3c65e8b06c545f12035f2928f2803f573ea0e2e67dccbe79f8a1003
MD5 d42f8f56799e34cd12d72057ac8bc046
BLAKE2b-256 1a7e10bbaa77419fdab27f968fad5fc2c9016351f738dfc36e2b2e27224ed3fe

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp313-cp313t-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp313-cp313t-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3ca060154549c777833f1ef3b94f7fc98142e095d00c9d11f249d1513f3bdf72
MD5 a332938fbb390a47a3218812ad230df8
BLAKE2b-256 eb9a7f2caa834a8f030268c03a4c764a3136cf763462e231682df63cd5b98d3e

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: jpy-1.4.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 76.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7f98397ff42cdc174ce28f0c7798f9c29606bb87f119bf9a64fca4ca0ea7bfe7
MD5 d120e199dee6f4f2ddc23ff4fb0b9ab8
BLAKE2b-256 a3e7d0930fa820469a2a9725e61c964a38adfc13970e5a63dd6397b90c5c7f30

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5a010df29897a13fdf267263f83bdccfde5919a9df6e3e0fe481061f4f61bf73
MD5 d32a8c19da93df8160b0a6ed1f7a9f03
BLAKE2b-256 1a86f576b6a7d809f9737c6d1fe3cf82898eddaf3af20e3f58b6efd6094c828d

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 493c05fc14de01abf9005385a0a245a4e56db6e7d4b61792013589785d882c27
MD5 56295c62eb63ce6de324d9af29b2e1ad
BLAKE2b-256 22b265e9cd234440c7517869e33a3f5a3337a4076a66e44894226d7049fe729a

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

  • Download URL: jpy-1.4.0-cp313-cp313-macosx_10_13_universal2.whl
  • Upload date:
  • Size: 140.5 kB
  • Tags: CPython 3.13, macOS 10.13+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 d9dbc44860b6d8e79455760d0fe669a4d52ff279af4abe49adc31028b1a9ebad
MD5 32b43575e5ff8c30fd7a61455d28629d
BLAKE2b-256 0649886f048c9edd9d272ccb7c279ccfdc1c757424871fa1a18d9a073470dabd

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: jpy-1.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 76.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3d16adbcfc3f2edb07f3a0862a25cc0bf5e02be4bb2fc1a7dad11a5e14ab004a
MD5 aa0a74cbb657eecabb5691f4868f08bf
BLAKE2b-256 957635fa6489b60f2854c8635073df60e43f8d3301ce477ed1db750135b6852e

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9485b6bad1367366f4e450bd60ed8421b2e8c773e0d1e32f5bfb98a233028add
MD5 993a2a43e271c72e98ebd242901d812b
BLAKE2b-256 2c82423edf5cdfecf861275c1c0c5bae5e4e497557b958649ac13aec2679046c

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 b1957a72fb6164f1b3369d693ece0b601317ed346d8b12fec32c3007b3dc46c8
MD5 33048f60d5dc4ec9c8ecae935c03ebf3
BLAKE2b-256 a21c05a139a490b229834179d74a0e6b0922b2c0f08fb8677f8983f95012e9d1

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

  • Download URL: jpy-1.4.0-cp312-cp312-macosx_10_13_universal2.whl
  • Upload date:
  • Size: 140.3 kB
  • Tags: CPython 3.12, macOS 10.13+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 e2f33c1cdd4ce53f3d94a37394fa6841d55c2124ed4668d19f4aff0b0d4f92bc
MD5 a2f7f8f8c12265f40d82e2c18f22bbab
BLAKE2b-256 a552cd99e544250bc506011dfd910b61bd7a49ca22e8a48cf03c51c78a3054e0

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: jpy-1.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ce46920ab28fd439506fbd46d59d5bdeac829580867eec549ce56c70a519a380
MD5 4c921b007bbd2fd09dc16e66a46462f7
BLAKE2b-256 342193253ef6caedca33a96a786f5adc6da903a823fd5e95da79f74dc3c2be28

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 76953717148cb4b7afdb6b9de12ecb4ed02df801c04084fa3241f56dc5979cc3
MD5 0c8fdf29fb6e15d4765fb22510184e5a
BLAKE2b-256 c9074f1169c927743976a28bcd27bbd7821b9d5d2603945e9fc493c509309956

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 324bef940a7c35574c2285f4d16d68bd94a4b335f00be39d6ed87bea5874f6b9
MD5 3cc3e39e131c92f3fd859f352b9f72f1
BLAKE2b-256 a0afd0f4b0acc3fd924059ef5558111db03e09c3e19500465d82114e6d3105eb

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

  • Download URL: jpy-1.4.0-cp311-cp311-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 139.9 kB
  • Tags: CPython 3.11, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 85f1ac7e94d9bda189ff6e9ed3af9d4e08b5babae165d6dde829da9bd5589600
MD5 af5412d1fe39f17a8ca8627a2d0a1864
BLAKE2b-256 4202f76c7ea9e1c63bae56c3e34470b31260991201185c1de1f1e2d6c7320a33

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: jpy-1.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 87b421e75751f6bee898f9ae08666938ef1f1deef243e3b8d6e3a2be9f3268b3
MD5 2b127d5ac9d9a62216493548fc7885e5
BLAKE2b-256 fb359ac3909cfb9d263aee702320a71a5eb500d0f08579b86367226f2d546327

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 bafd3afe6b25172bf8834f03c31afa81043448fd21d2a1b4a76b50ba52ad6fa6
MD5 c9a8bbb879b7e4e6759c9fb80792ac93
BLAKE2b-256 b9265213245d445874d739ea7d2961cb7cf736b52469c8d539d02a80e4d33b9a

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 2ab005e14eabf7275a6a286df0509cace9913d22423c3d23bf6b56b20df31f80
MD5 078960255f7dc51a6d3b0a45ea2c726f
BLAKE2b-256 d32f7c73867ed4a92795c81345b89fe3556a50fbd62acef3e0c5ca2f459916c5

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp310-cp310-macosx_11_0_universal2.whl.

File metadata

  • Download URL: jpy-1.4.0-cp310-cp310-macosx_11_0_universal2.whl
  • Upload date:
  • Size: 140.0 kB
  • Tags: CPython 3.10, macOS 11.0+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp310-cp310-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 ab75d9f97c82d3c07e60e141500bcf7e6e0ea15aee64a1761f70246d2211d744
MD5 653dabdbe5154231adfddaafb178b423
BLAKE2b-256 cca29aa4538685800769df7ff968ba1fa3a986e887f7cd47f79a7be0a81a6075

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: jpy-1.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 124.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2d159be4d56d875b0e56ab742ce410b8455764463de597e96b0b4032f10143e2
MD5 1d7fb656ed0925f05b61db406b34e9fc
BLAKE2b-256 74a8a5d9df78c7f1319605b19a7be0eacc04131a25cb6c9297f13d9070e8b287

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 126a8cdc153fa2f2c9f9b15b9602141df2422ba07f5de8671bb6c8c57e91b9b2
MD5 759906592172d3a4287ba117e98b5115
BLAKE2b-256 40c55b15dc270c6ed4a67bc9150412b3e021987f861d79373b1fd80987ad5c8f

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for jpy-1.4.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 2a6ae19e5c6e0ae37738c9617a0c4f1cef1405d30d36eec423d79c606bfa2844
MD5 49f22bef945e4934df992b9b80f78a3b
BLAKE2b-256 79cdb0f85e80301368b87f88a6e47c56d57751b691e2312fb66926cfcc9bf0e5

See more details on using hashes here.

File details

Details for the file jpy-1.4.0-cp39-cp39-macosx_11_0_universal2.whl.

File metadata

  • Download URL: jpy-1.4.0-cp39-cp39-macosx_11_0_universal2.whl
  • Upload date:
  • Size: 140.0 kB
  • Tags: CPython 3.9, macOS 11.0+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jpy-1.4.0-cp39-cp39-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 a759dcd30c1778857f2e73aa668fee4f8a9127fa5ade7e65886e477f37fa2a41
MD5 c3760615c1ee1c64ef8406d615e4a694
BLAKE2b-256 95d70f62cd70b77267b54219213907ee62b913e86bab9ce33909bfa44a81a085

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page