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.9–3.14 and OpenJDK 11+ 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 11. 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 2.1.0

  • #233 refactor: simplify Python object cleanup to make it more efficient and avoid accessing Java heap when Java OOM happens
  • #234 Bump docker/bake-action from 7.1.0 to 7.2.
  • #236 fix the jpy_cleanup_thread_test for 3.14

Version 2.0.0

This version bumps the minimum Java requirements from 8 to 11. See #226 for more details.

  • #226 fix: Fix a race caused by premature-finalization when calling a method on transient PyObjects
  • #228 Replace Java 23 with 25 in Check CI due to EOL
  • #229 Update top level documentation
  • #231 Fix the empty jar issue

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-2.1.0.tar.gz (197.1 kB view details)

Uploaded Source

Built Distributions

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

jpy-2.1.0-cp314-cp314t-win_amd64.whl (81.0 kB view details)

Uploaded CPython 3.14tWindows x86-64

jpy-2.1.0-cp314-cp314t-manylinux_2_34_x86_64.whl (341.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ x86-64

jpy-2.1.0-cp314-cp314t-manylinux_2_34_aarch64.whl (342.9 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ ARM64

jpy-2.1.0-cp314-cp314t-macosx_10_15_universal2.whl (145.1 kB view details)

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

jpy-2.1.0-cp314-cp314-win_amd64.whl (77.9 kB view details)

Uploaded CPython 3.14Windows x86-64

jpy-2.1.0-cp314-cp314-manylinux_2_34_x86_64.whl (306.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

jpy-2.1.0-cp314-cp314-manylinux_2_34_aarch64.whl (303.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

jpy-2.1.0-cp314-cp314-macosx_10_15_universal2.whl (140.8 kB view details)

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

jpy-2.1.0-cp313-cp313t-win_amd64.whl (79.3 kB view details)

Uploaded CPython 3.13tWindows x86-64

jpy-2.1.0-cp313-cp313t-manylinux_2_34_x86_64.whl (340.5 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.34+ x86-64

jpy-2.1.0-cp313-cp313t-manylinux_2_34_aarch64.whl (342.2 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.34+ ARM64

jpy-2.1.0-cp313-cp313t-macosx_10_13_universal2.whl (144.9 kB view details)

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

jpy-2.1.0-cp313-cp313-win_amd64.whl (76.2 kB view details)

Uploaded CPython 3.13Windows x86-64

jpy-2.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (311.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

jpy-2.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (309.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

jpy-2.1.0-cp313-cp313-macosx_10_13_universal2.whl (140.8 kB view details)

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

jpy-2.1.0-cp312-cp312-win_amd64.whl (76.2 kB view details)

Uploaded CPython 3.12Windows x86-64

jpy-2.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (312.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

jpy-2.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (311.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

jpy-2.1.0-cp312-cp312-macosx_10_13_universal2.whl (140.5 kB view details)

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

jpy-2.1.0-cp311-cp311-win_amd64.whl (75.8 kB view details)

Uploaded CPython 3.11Windows x86-64

jpy-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (309.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

jpy-2.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (309.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

jpy-2.1.0-cp311-cp311-macosx_10_9_universal2.whl (140.1 kB view details)

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

jpy-2.1.0-cp310-cp310-win_amd64.whl (75.8 kB view details)

Uploaded CPython 3.10Windows x86-64

jpy-2.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (303.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

jpy-2.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (304.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

jpy-2.1.0-cp310-cp310-macosx_11_0_universal2.whl (140.2 kB view details)

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

jpy-2.1.0-cp39-cp39-win_amd64.whl (124.6 kB view details)

Uploaded CPython 3.9Windows x86-64

jpy-2.1.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (300.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

jpy-2.1.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (301.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

jpy-2.1.0-cp39-cp39-macosx_11_0_universal2.whl (140.2 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for jpy-2.1.0.tar.gz
Algorithm Hash digest
SHA256 e23353f20f45608e228e175e8fe3b854c9cc5f5f243140319d018d6707d81ef4
MD5 43af4083cb2f45fca0cb6c7f3db0d13b
BLAKE2b-256 8138b2aabf6136c29193c31c3f605e6a68a56e4d067f51b10ec86292615c6118

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 81.0 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-2.1.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 7687f07e303424ee193f6ffbbbffa6b79674d71f9deaa618a18a7db9938f5f98
MD5 0be56ab425a2fdf18e7395e77a22c9e5
BLAKE2b-256 45e388645deaaac43c40cd4467a21813842d16893f8aece67d21a469e50ecd7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 23a8bb47cd493378a9288595739e50f21ca5f0f620676b8b6a864ff54bfe9070
MD5 2189ba55257c6120b412b045961f228a
BLAKE2b-256 f6f5c9b4a897dcf075f72dbc0ddaa9ba0019d97fd4b5932f893d20521f579148

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp314-cp314t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 3321cf7b866d86bb77e8bd640ed9c5a12485f45f8e231f8be826ed5d857c98a9
MD5 d400b0deb42cefe9885803398ef104f5
BLAKE2b-256 33ce58ca955950f0237f51bfc71dfa1f6b2d4f98f4e136945358713417e402cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 138730b74735a32ad442e60e3123ce2d4ee3369f9cb60ef3610d9498d0b0bb6d
MD5 8c30d13e71436fe1f35053e7298ae193
BLAKE2b-256 fc2db6374c8b7f6914341c87247bc98535751b593152b5f8dfdcc4133967d0aa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 77.9 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-2.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3dc359fd1ce13737f0c5a9a44e213f5fc1368df2d178fcd337bcacd462b5e90f
MD5 608a09b51371cc7c443eadff6f0bddf7
BLAKE2b-256 c23022692904bb9fb0b904f21c0da69bf34a0ca5e4ff8807eac0ee92831011cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 638a4a5d2ba18f1024f633664a07340d625294cef69f534d7bacb6d11c756cd2
MD5 97c1e1f5e2cbd88e74f708362816e9e3
BLAKE2b-256 ec7ff156061f57269b7c4687a00a8b8b950898e73419a96a0f0123ac0739524c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f839b92c0c52dc4c419697e708bae2adb3842ad5a9d4655d40540a00bdceb568
MD5 fb3d0878b5e254d8d491380e1da2d25f
BLAKE2b-256 225f0fe33f6e971825b6c486951469ee2ad3e0fb378e5d458cf83e87e31de2f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp314-cp314-macosx_10_15_universal2.whl
  • Upload date:
  • Size: 140.8 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-2.1.0-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 906f996f223cea20845d942de28c2b0f7d54180c088a28f104dead6d9e11dd87
MD5 9fb46cc1d718051f3d41567895125e27
BLAKE2b-256 b15d6447d751997de22dec765354d9abd77713f662a1d0fb3785f7788115d59c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 79.3 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-2.1.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 987dfb2caf305fdd5f4dae24b6520ffc474fc1475f4181c76720c97629fbe8d2
MD5 b9fcefaf4f576c7dff0e49a01e421535
BLAKE2b-256 40d86c6db2696201b0ec3e2b8b6d42216e3df623608fe2feef02734d2c0ede38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp313-cp313t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a3b461e9623ba7918d94690c5a54b3f75b360a04c057967a06dad0ea6c0a1ca5
MD5 fc43453a147b56b10862404ea8a66d99
BLAKE2b-256 a79f7afff0b72a50b329a89717d74a883e2f0bddd8f3bf6fcdffc3f00669dae6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp313-cp313t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 67d1cbb235f311bba9cbf3a54f227e0e40dff8b23965c8664d25cc983be66445
MD5 44c2b578cd910ef800784e5dbbf91d4d
BLAKE2b-256 90f46ad72c14f6413f0bfa1e2ae2bb97de4926b093baf24a3fc85132af533b79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp313-cp313t-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 e233e93fff9a7b406072d7c3172e13d750ee5fce8c3c85314226519bd57405ee
MD5 e90914886f7d6c9d91d3c96fb491ce3c
BLAKE2b-256 0a8bcf250e888b279847735c8bf9b12ab13f1114a59e8b26e3ed1e5a2ffd0093

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 76.2 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-2.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 47ebf4613e5287937dcd2af382ffc144986753d9ff4b48735ac52af19f021936
MD5 8b906d8aa20a395357e7df913f2a71ff
BLAKE2b-256 486ddce7a9b5a49774fe026f708ac1e5d3112113a9ea03872b321220d4365ae9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8f0382ecca225957e3e3fc64e908d17c3107e7a5c4e37604268bdb787abda8b1
MD5 f94b4a8801891b0379217c04d33c954a
BLAKE2b-256 da474c90592566cac58adbec7a4b41b6f1553bc381425716b81944f807ae1b1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 716e9bcb21f133fe4a0a696ffb69ef8fe6d12272c98ef3b077591e9a13fde8dc
MD5 7b7629d833a10dacd9d874484227a040
BLAKE2b-256 aa96b0f1de37c8401cd1d3f17736e57a9a1a40b8a5b297a7fad2da75280918e6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp313-cp313-macosx_10_13_universal2.whl
  • Upload date:
  • Size: 140.8 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-2.1.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 5235e3bf6797744ba5a967cd774068e54b8f891963d06badc14a2bdcf8e91daa
MD5 1baa4075f0a35e973c333dd0e1cbe743
BLAKE2b-256 346fd9d00f5d08ff2dbb0756f499ac8b38d65e3611a56504828558e3cc3322af

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 76.2 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-2.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c6db298709b764806dc234b6b5f3d86ee4fa5e0cb93c281b2d8e714f0fdd5b11
MD5 405e9953484d44548ac1c04713502597
BLAKE2b-256 edbbf01e95fecc608e0ece50e66226e4058729dc674e3e5556c83d82e5f7b058

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b7b9cd076e51f7f5e3799a2313c3a5c79674f296a76592f2a411573e4d525a88
MD5 fc3cb3feaff117aeded97552f93ee5e8
BLAKE2b-256 b3f2986e6babb91128b4f6d426353c3157fabb89a3646d740acb83900530727a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 42d0a9a8ce85069ce245b424e1b88ed39ebba1fb8042a0ce0b3bee1260578880
MD5 e2f642d232977fd26f8faca600de0ffe
BLAKE2b-256 f3896a657d340dbfd9ab7c7c4c4787bc03d19eca2f0d4ca83f61f6d49da0b673

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp312-cp312-macosx_10_13_universal2.whl
  • Upload date:
  • Size: 140.5 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-2.1.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 b32586c55fa2bc4338e0768fe6610cb763bcc1ace70179f32a4d201d35a75547
MD5 f891c2e2a12e48097cbb58f38ecec3ad
BLAKE2b-256 cbcf63d00d95552f65b842bd0f08e87d0398915383a432baedee3c81fde03471

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 75.8 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-2.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 798ee0747b46cc57ebb4de9a5759da0cc03d179891b31befaf032d396ea87c61
MD5 8c216fdb732ed64615d72804c8502b04
BLAKE2b-256 36c2a9c0c7057480275bbc8722fbb78de3e6cb84f78459c9100f6134f5f06b31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 4cb60b8ae3ab6006348e43bd01c8083b9553d8883f7b3c3a8d3306076d18cece
MD5 91fa03face1d5a9afe01a23d45a7db52
BLAKE2b-256 43335c7ffef406dae91328a8d076d4abfd4afe37ba397bce5d71676290d323be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ef6a8d0ca84acce011145f0ac7a815fbd571341b0ebd4eed1d3ffc2e86fcda9c
MD5 fe721e223312f6b8c79462ab6f1a1b34
BLAKE2b-256 114b7a3bd30d121cfe47d63be531e103a3ea109f3f628f8c364f2889bd4ad5ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp311-cp311-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 140.1 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-2.1.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 9890f120127ff17703daa5b5188316f918805b18124da567ba50092999e50185
MD5 6a1c9f47e3ac1793cdb72126d9b0035b
BLAKE2b-256 c01ba7d21fa0031f9d9b453a888adf1b92783ff237a1eea2d29dce8ad472a06f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 75.8 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-2.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a484e3c561e3654b8cf546b036c9c0fa10819e21bea89739fafbbc1c65b18e95
MD5 feaf6e7572e0dd4f94ba73cd1970f7f8
BLAKE2b-256 f7a13aa91e40a1854ff5516a732de32ebe8be7150edd7c9ea42cb8ccd585069d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b21e7acd3a04e79ab5210c9119a50516e79a4a60f3280056045600d8667af0cd
MD5 9f76de3c97aef6fdcb298722dfc6f10d
BLAKE2b-256 54a964ad50283b940c81524b8fc26835cc1f284b1e278add9a8a775eace67a0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 369a086f422b1e1cca890139eb9e3b6264ab3151cd4b782af9943a6ec520c5e4
MD5 477816673d7e22de65d3b2c530757836
BLAKE2b-256 719337978445339aaf3921a867d1aa81f53530a9a5c67d7591f8f8951ee5f5a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp310-cp310-macosx_11_0_universal2.whl
  • Upload date:
  • Size: 140.2 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-2.1.0-cp310-cp310-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 cc40150d40be6d820fe98556d1f06517074cf542e52829bcec100f6f9525feda
MD5 e0ec1bedb88716d9ef326cad213f046e
BLAKE2b-256 e829da24a732b8af98ee048991dac3b10c736439af0d76d406a873a6d08f78c5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 124.6 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-2.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 72c426fae8ac5cf4aa3db155f09a093ca37490ef53ceb86b7693bb9c321a6c8e
MD5 4cf9602264ce6582550cdac773076bac
BLAKE2b-256 fd552147ec28025ff744711f2b65690341a3630f9a00a652febc4bad0c0831b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ea56de5fddb9d073c4254a7000cacbfc77137eb78a923f0c9a775f77eef341db
MD5 89801a814d5e4f36fd2c3afc90c229e9
BLAKE2b-256 7043d21bd6cd260f0fe56e3a8419dd360b37b041e6c13b7df0df1a4c0219369d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jpy-2.1.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 fd513cc526fd7716f377fe0ce2a5b4ff05e8a9684d87d15aee74aa1b1f91fac9
MD5 10ff619e1a74c8bfcf0da6ae0059b79f
BLAKE2b-256 fbe460824b0acfa886d01f05008f93c977d0102490756e1cd8cbae961fc9a2b5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpy-2.1.0-cp39-cp39-macosx_11_0_universal2.whl
  • Upload date:
  • Size: 140.2 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-2.1.0-cp39-cp39-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 795d1cf9ff33ca19cbcd6665d97f949883069ab3a598ac634f1d2e218ed8b9af
MD5 fbbe3290fafe5b94508cd9b172285911
BLAKE2b-256 99e21ae20f899d562b414dea87b1b46037e2edb7c8f333c7fa8dc377765a23ba

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