Releases: jpype-project/jpype
v1.5.1
What's Changed
- Cycle by @Thrameos in #1163
- Minor typos in the user guide by @pelson in #1171
- Make use of pyproject.toml for static project metadata by @pelson in #1133
- Fix error in 3.12 during exception handling by @Thrameos in #1180
- Fixing typo in userguide.rst by @ryanmkurtz in #1179
- Windows locale by @Thrameos in #1174
- Changes for numpy 2.0 to fix test matrix. by @Thrameos in #1196
- Fix misspelling in documentation by @kdombeck in #1192
- fix compatibility of jpype with setuptools==72.0.0 by @alexrashed in #1206
- Crash on windows exception during customizers by @Thrameos in #1199
- Update LICENSE by @clajo04 in #1211
- [ci] add jdks to test matrix by @marscher in #1131
- prevent misuse of PyTuple_Pack by @astrelsky in #1218
- Remove use of tp_new by @Thrameos in #1217
- fix JUnpickler BufferOverflowException by @tachyonicClock in #1220
- "Generic" JArray support by @astrelsky in #1214
- Fix
IllegalArgumentException
with non-ascii paths by @tachyonicClock in #1195 - Support extracting javadoc HTML files generated by Javadoc 17 by @GorgiAstro in #1200
- [ci] allow to download missing Python versions by @marscher in #1221
- Access to default methods in
@JImplements
by @Thrameos in #1182 - handle non ascii classpath with system classloader by @astrelsky in #1226
- free threaded build by @astrelsky in #1224
- Try to improve the Azure pipeline, and publish the intermediate wheels for debugging by @pelson in #1233
- Fix for GC on windows by @Thrameos in #1235
- Releases/1.5.1 by @Thrameos in #1234
New Contributors
- @ryanmkurtz made their first contribution in #1179
- @kdombeck made their first contribution in #1192
- @alexrashed made their first contribution in #1206
- @clajo04 made their first contribution in #1211
- @tachyonicClock made their first contribution in #1220
- @GorgiAstro made their first contribution in #1200
Full Changelog: v1.5.0...v1.5.1
JPype 1.5.0
-
1.5.0 - 2023-12-15
-
Support for Python 3.12
-
Switched
__eq__
and__ne__
operator to useequals
rather than
compareTo
for comparable objects to avoid exception when comparing
object of different types. -
Fixed segmentation fault when comparing Java Comparable to primitives.
-
Java exceptions that occur in inequality comparisons now map to Python
TypeError. -
Fixed crash when calling subscript on JArray.
-
Fixed direct byte buffers not reporting nbytes correctly when cast to
memoryview. -
Expand the defintion for Functional interface to include classes without
FunctionInterface annotation. -
Add additional matching level for derived types to resolve ambiguities when
a derived type is used in place of base class when determining the method
overload. This will resolve some previous ambiguities between methods.
-
JPype 1.4.1
-
Fixed issue with startJVM changing locale settings.
-
Changes to support Python 3.11
-
Fix truncation of strings on null when using convert strings.
-
Replaced distutil with packaging
JPype 1.4.0
-
Support for all different buffer type conversions.
-
Improved buffer transfers to numpy as guaranteed to match Java types.
However, exact dtype for conversions is os/numpy version dependent. -
Support for byte order channels on buffer transfers.
-
Byte size for buffers now fixed to Java definitions.
-
When directly accessing Java arrays using memory view, Python requires a
cast from buffers. Required because Python does not support memory view
alterations on non-native sizes.
-
-
Fix crash when comparing JChar.
- Order handling for numerical operations with JChar fixed.
-
Improved matching for Java functors based on parameter count.
-
Dropped support for Python 3.5 and 3.6
-
dbapi2 handles drivers that don't support autocommit.
-
Fixed issue when Java classes with dunder methods such as
__del__
caused conflicts in Python type system. Java method which match dunder
patterns are longer translated to Python. -
Fix issue with numpy arrays with no dimensions resulting in crash.
-
Support for user defined conversions for java.lang.Class and array types.
-
Fixed issue with ssize_t on Windows for Python 3.10.
JPype 1.3.0
-
Fixes for memory issues found when upgrading to Python 3.10 beta.
-
Add additional diagnositics for importing of non-public class.
-
Fixed issue with classes with unsatified dependencies leading to a crash
on windows. -
Fixed a bug with arrays created using the short cut. The wrong type
was being returned.
JPype 1.2.1
This is a bug release to correct defects found in the previous release. This version should add no additional functionality, though certain bug fixes will correct previous behaviors or add files which were incorrectly excluded due to packaging issues.
-
JPype scans jar files and rebuilding missing directories to allow imports from stripped and obfuscated jar files. Previously certain build patterns for jars excluded directories which prevented the import system from functioning properly. This change should increase the number of jar files which can be imported successfully. This was the intended behavior for imports, but certain defects in the process prevented proper function.
-
Missing stub files added to packaging. These were added in the last release, but the packaging system incorrectly excluded them from the build.
-
Python 3.9 issues are resolved on Windows. A change in Python 3.9 made is so that the GIL is not held during library loading, thus static variables created are not valid. These variables have been moved to module initialization.
-
aarch64 has been added to the build patterns for publication in this and future releases.
JPype 1.2.0
-
Added builds for Python 3.9. Python 3.9 on Windows is currently failing
due to issue in Python. -
Fixed bug when importing from multi-release jars. The directory was
being truncated to only those classes in the overlay. -
addClassPath can add jar files after the JVM is started. The default
loader for JPype class isorg.jpype.classloader.DynamicClassLoader
. -
Build support of z/OS added.
-
Bug causing ambiguity between primitives and variadic arguments in method
resolution was corrected. -
Boolean was inadvertently left out of method resolution.
boolean
now properly matched with boxed types. -
Support for PyInstaller was added.
JPype 1.1.2
-
Linux binaries are now stripped for size.
-
Add importlib.util to address instability in Python importlib boot process.
Certain versions of Python such as 3.9 appear to not properly load this
module resulting in unexpected errors during startJVM.
JPype 1.1.1
This pull release corrects an issue in the build system resulting in incomplete wheels on linux. No other changes from 1.1.0.
JPype 1.1.0
linux distribution were incomplete. Please use 1.1.1 release.
-
Correct bug resulting in reporting ambiguous overloads when resolving
methods with variadic arguments. -
Ctrl+C behavior is switchable with interrupt flag to startJVM.
If True, process will halt on Ctrl-C. If False, the process
will transfer control to Python rather than halting. If
not specified JPype will assume false if Python is started as an
interactive shell. -
Fixed crash with Ctrl+C when multiple exceptions were generated.
-
Removed extraneous exception when calling Ctrl+C before Java code is
executed for methods and fields. -
Fixed memory leak with string cache.
-
Fixed crash when manually creating wrappers for anonymous classes.
-
Fixed reference count problem in stackframes used for exceptions.
-
Errors report
*static*
when the matching with a static method
so that it is clear when a member method was called statically. -
java.lang.String slices function like Python string slice.
-
Java packages now operate as normal Python modules. Removed restrictions
regarding setattr. All package instances for the same package name are
shared so that functionality added to one instance is shared wiht all
instances.