Skip to main content

A Python to Java bridge.

Project description

JPype
=====

.. image:: https://travis-ci.org/originell/jpype.png?branch=master
:target: https://travis-ci.org/originell/jpype

.. image:: https://img.shields.io/appveyor/ci/originell/jpype.svg
:target: https://ci.appveyor.com/project/originell/jpype


JPype is an effort to allow python programs full access to java class
libraries.

Find the `documentation at Read the Docs
<http://jpype.readthedocs.org>`__. Current development is done in
`the github project <https://github.com/originell/jpype>`__. The work
on this project began on `Sourceforge
<http://sourceforge.net/projects/jpype/>`__.


Changelog
=========

This changelog *only* contains changes from the *first* pypi release (0.5.4.3) onwards.

- **Next version - unreleased**
- Added extra verbiage to the to the raised exception when an overloaded
method could not be matched. It now prints a list of all possible method
signatures.
- Harded code to unattached threads and accessing java objects after shutdown.
- The following is now DEPRECATED
- jpype.reflect.* - All class information is available with .class_
- Python thread option for JPypeReferenceQueue. References are always handled with
with the Java cleanup routine. The undocumented setUsePythonThreadForDaemon()
will be removed at a future version.
- promoted --install-option to a --global-option as it applies to the build as well
as install.

- **0.6.3 - 2018-04-03**
- Java reference counting has been converted to use JNI
PushLocalFrame/PopLocalFrame. Several resource leaks
were removed.

- java.lang.Class<>.forName() will now return the java.lang.Class.
Work arounds for requiring the class loader are no longer needed.
Customizers now support customization of static members.

- Support of java.lang.Class<>
- java.lang.Object().getClass() on Java objects returns a java.lang.Class
rather than the Python class
- java.lang.Object().__class__ on Java objects returns the python class
as do all python objects
- java.lang.Object.class_ maps to the java statement 'java.lang.Object.class' and
returns the java.lang.Class<java.lang.Object>
- java.lang.Class supports reflection methods
- private fields and methods can be accessed via reflection
- annotations are avaiable via reflection

- Java objects and arrays will not accept setattr unless the
attribute corresponds to a java method or field whith
the exception of private attributes that begin with
underscore.

- Added support for automatic conversion of boxed types.
- Boxed types automatically convert to python primitives.
- Boxed types automatically convert to java primitives when resolving functions.
- Functions taking boxed or primitives still resolve based on closest match.

- Python integer primitives will implicitly match java float and double as per
Java specification.

- Added support for try with resources for java.lang.Closeable.
Use python "with MyJavaResource() as resource:" statement
to automatically close a resource at the end of a block.

- **0.6.2 - 2017-01-13**

- Fix JVM location for OSX.
- Fix a method overload bug.
- Add support for synthetic methods

- **0.6.1 - 2015-08-05**

- Fix proxy with arguments issue.
- Fix Python 3 support for Windows failing to import winreg.
- Fix non matching overloads on iterating java collections.

- **0.6.0 - 2015-04-13**

- Python3 support.
- Fix OutOfMemoryError.

- **0.5.7 - 2014-10-29**

- No JDK/JRE is required to build anymore due to provided jni.h. To
override this, one needs to set a JAVA_HOME pointing to a JDK
during setup.
- Better support for various platforms and compilers (MinGW, Cygwin,
Windows)

- **0.5.6 - 2014-09-27**

- *Note*: In this release we returned to the three point number
versioning scheme.
- Fix #63: 'property' object has no attribute 'isBeanMutator'
- Fix #70: python setup.py develop does now work as expected
- Fix #79, Fix #85: missing declaration of 'uint'
- Fix #80: opt out NumPy code dependency by '--disable-numpy'
parameter to setup. To opt out with pip
append --install-option="--disable-numpy".
- Use JVMFinder method of @tcalmant to locate a Java runtime

- **0.5.5.4 - 2014-08-12**

- Fix: compile issue, if numpy is not available (NPY_BOOL
n/a). Closes #77

- **0.5.5.3 - 2014-08-11**

- Optional support for NumPy arrays in handling of Java arrays. Both
set and get slice operators are supported. Speed improvement of
factor 10 for setting and factor 6 for getting. The returned
arrays are typed with the matching NumPy type.
- Fix: add missing wrapper type 'JShort'
- Fix: Conversion check for unsigned types did not work in array
setters (tautological compare)

- **0.5.5.2 - 2014-04-29**

- Fix: array setter memory leak (ISSUE: #64)

- **0.5.5.1 - 2014-04-11**

- Fix: setup.py now runs under MacOSX with Python 2.6 (referred to
missing subprocess function)

- **0.5.5 - 2014-04-11**

- *Note* that this release is *not* compatible with Python 2.5 anymore!
- Added AHL changes

* replaced Python set type usage with new 2.6.x and higher
* fixed broken Python slicing semantics on JArray objects
* fixed a memory leak in the JVM when passing Python lists to
JArray constructors
* prevent ctrl+c seg faulting
* corrected new[]/delete pairs to stop valgrind complaining
* ship basic PyMemoryView implementation (based on numpy's) for Python 2.6 compatibility

- Fast sliced access for primitive datatype arrays (factor of 10)
- Use setter for Java bean property assignment even if not having a
getter by @baztian
- Fix public methods not being accessible if a Java bean property
with the same name exists by @baztian (*Warning*: In rare cases
this change is incompatibile to previous releases. If you are
accessing a bean property without using the get/set method and the
bean has a public method with the property's name you have to
change the code to use the get/set methods.)
- Make jpype.JException catch exceptions from subclasses by @baztian
- Make more complex overloaded Java methods accessible (fixes
https://sourceforge.net/p/jpype/bugs/69/) by @baztian and
anonymous
- Some minor improvements inferring unnecessary copies in extension
code
- Some JNI cleanups related to memory
- Fix memory leak in array setters
- Fix memory leak in typemanager
- Add userguide from sourceforge project by @baztian

- **0.5.4.5 - 2013-08-25**

- Added support for OSX 10.9 Mavericks by @rmangino (#16)

- **0.5.4.4 - 2013-08-10**

- Rewritten Java Home directory Search by @marsam (#13, #12 and #7)
- Stylistic cleanups of setup.py

- **0.5.4.3 - 2013-07-27**

- Initial pypi release with most fixes for easier installation


Authors
-------

The original author: Steve Menard

Current Maintainer: Luis Nell


Huge thanks to these CONTRIBUTORS:

* lazerscience
* Koblaid
* Michael Willis (michaelwillis)
* awesomescot
* Joe Quant (joequant)
* Mario Rodas
* David Moss
* Stepan Kolesnik
* Philip Smith
* Bastian Bowe
* Kristi
* Martin K. Scherer
* Dongwon Shin
* rbprogrammer
* Karl Einar Nelson

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

ha_JPype1-2.6.6.tar.gz (174.1 kB view hashes)

Uploaded Source

Supported by

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