Releases: ninia/jep
Jep 4.3.1
This patch fixes a regression introduced in Jep 4.3.0 with accessing java sub-packages from Python. See the 4.3 release notes for a full description of what has changed in the 4.3 releases.
What's Changed
- Fix subpackage access through attributes in Java imports. by @bsteffensmeier in #621
Full Changelog: v4.3.0...v4.3.1
Jep 4.3.0
The maven groupId for Jep has changed from black.ninia to org.ninia. This release drops support for versions of Python older than 3.10. It includes changes to modernize and simplify the build, improve compatibility with isolated sub-interpreters, and remove use of deprecated Python features. See the release notes for more information.
What's Changed
- Drop support for Python versions older than 3.10. by @bsteffensmeier in #582
- Update PyConfig to align with PEP 587. by @bsteffensmeier in #586
- Move build metadata from setup.py to pyproject.toml. by @bsteffensmeier in #592
- Make all jep types compatible with isolated interpreters. by @bsteffensmeier in #594
- Expose PyConfig options for isolation and arg parsing. by @bsteffensmeier in #596
- Fix cases where startup errors can cause crashes. by @bsteffensmeier in #600
- Convert all types to heap types. by @bsteffensmeier in #601
- Do not trigger numpy import when converting non-numpy python objects to java by @bsteffensmeier in #603
- Add ability to create new interpreters that share interpreter state. by @bsteffensmeier in #606
- Enable calling jep.findClass() from threads created by python. by @bsteffensmeier in #614
- Make numpy required to build. by @bsteffensmeier in #615
- Use PyJObject ClassLoader instead of jep.forName in java import hook. by @bsteffensmeier in #617
- Change maven groupId to org.ninia. by @bsteffensmeier in #616
Full Changelog: v4.2.2...v4.3.0
Jep 4.2.2
This release fixes a memory leak that allocates a few dozen JNI global references each time a SubInterpreter is created. Anyone using many SubInterpreters should consider upgrading because this leak is present in all previous 4.x versions of Jep. This release also includes other minor fixes and updated guidance for using the --no-cache-dir and --no-build-isolation options when installing with pip.
What's Changed
- Add configuration for setting program name. by @bsteffensmeier in #573
- Recommend disabling pip caching during installation. by @bsteffensmeier in #574
- Fix ClassList to handle jar in working dir with classpath in manifest. by @bsteffensmeier in #577
- Fix SubInterpreter pyjmethod leak on static types. by @bsteffensmeier in #579
- Add recommendation to build without isolation to enable numpy. by @bsteffensmeier in #581
Full Changelog: v4.2.1...v4.2.2
Jep 4.2.1
This release has some minor fixes and compatibility improvements for python 3.13 and numpy 2.
What's Changed
- Fix leaking attributes in java PyObject. by @bsteffensmeier in #539
- Auto detect JAVA_HOME on Linux by @hahn80 in #546
- Update threading checks to be compatible with Python 3.13 by @bsteffensmeier in #551
- add new ClassEnquirer for declaring Python packages by @ndjensen in #553
- updated ClassEnquirer.java to use py4j python package and this will solve py4j error when running pyspark script by @NavodPeiris in #548
- Run Python garbage collector when an interpreter is closed. by @bsteffensmeier in #556
- Update include path for compatibility with numpy 2. by @bsteffensmeier in #562
- Ensure shared modules cannot be used with isolated interpreters. by @bsteffensmeier in #564
New Contributors
- @hahn80 made their first contribution in #546
- @NavodPeiris made their first contribution in #548
Full Changelog: v4.2.0...v4.2.1
Jep 4.2.0
This is a minor version increment that mostly includes bug fixes and compatibility improvements. This release has been tested with Python versions from 3.6 to 3.12 and Java versions 8, 11, 17, and 21. Thanks to all the contributors who have submitted code to improve this release.
Below is a summary of changes, see the release notes for more information.
- Improved support for varargs
- Custom converters for Java Objects in Python
- PyJType for java.util.Map now implements keys() and items()
- Additions of PyBuiltins
- Java FunctionalInterfaces are automatically callable in Python
- Java Methods can be Annotated to accept Python kwargs
- Support for isolated SubInterpreter
Jep 4.1.1
What's Changed
- The Python builtin
isinstancefunction can be used with imported PyJClasses - Minor compatibility updates for older compilers.
Full Changelog: v4.1.0...v4.1.1
Jep 4.1.0
What's Changed
- Change Java fields and methods to type attributes instead of instance attributes by @bsteffensmeier in #386
- Improve libpython detection by @ctrueden in #394
- Switch build to setuptools. by @bsteffensmeier in #396
- Make most pyjtypes into heap types. by @bsteffensmeier in #395
- When VIRTUAL_ENV is set it can be used to locate libraries. by @bsteffensmeier in #398
- Fixes #401 - issue NullPointerException in ClassList.loadClassList by @Htarlov in #402
- Implement custom MRO for PyJType. by @bsteffensmeier in #407
- SharedInterpreters now share MemoryManager and java PyObjects. by @bsteffensmeier in #421
New Contributors
Full Changelog: v4.0.3...v4.1.0
Jep 4.0.3
Jep 4.0.2
What's Changed
- Fix conversion of readonly python buffer objects to java arrays. by @bsteffensmeier in #374
- Fixed library location for Python 3.10. by @node3112 in #375
Full Changelog: v4.0.1...v4.0.2
Jep 4.0.1
- Allow empty kwargs in calls to PyObjects
- Implement isatty method in StreamRedirect
- Resolve freeze on newer python from calling from sys.exit()
- Import hook uses newer import hook API