Py4J 0.9.2 Released

Py4J 0.9.2 has just been released on pypi and maven central.

This is a backward-compatible release with a few bugfixes:

  • Python side: added a guard condition in object finalization to
    prevent exceptions when the program exits (long standing bug!).
  • Python side: The daemonize_redirect flag is not set to True by default to preserve backward compatibility prior to 0.9.
  • Java side: Py4J will use the current thread’s classloader instead of
    the root classloader to load a class from a fully qualified name. This
    behavior is configurable globally in py4j.reflection.ReflectionUtil.
    Thanks to @JoshRosen.
  • Documentation: made a simpler and easier to understand example of
    callback (Java calling Python)
  • Github 0.9.2 milestone

If you see any backward-incompatible changes, do not hesitate to fill a bug report.

This release has been made possible by the generous contributions from many users. Every bug reports, patches, pull requests, ideas or help on the mailing list is greatly appreciated.

The next release major release, 0.10, will bring two exciting features
to Py4J: a new optional threading model that is more efficient with
recursion and callbacks and support for reading a byte stream from
Java by a Python client.

Unfortunately, the 0.10 release will break backward compatibility if
you extend Py4J (custom commands, GatewayServer listener,
GatewayServer extension), but it will be easy to adapt your code. If
you simply use Py4J by creating instances of GatewayServer and
JavaGateway, your code will work without any changes.

Leave a Reply

Your email address will not be published. Required fields are marked *