New
v0.5.0
Highlights :tada:
- Significantly optimize transfers from Scala to Python, which are now up to 5x faster on the JVM and 4x faster on Scala Native (PR #179)
- Optimize transfers from Python to Scala, which are now up to 4x faster on the JVM and 3x faster on Scala Native (PR #183)
- Introduce a pre-alpha type facade generator that generates Scala types through mypy (PR #110)
- This is pre-alpha in the sense that types generated for any module, including Python builtins, are likely to require manual patching to compile
- However, with a bit of patching, the types for many libraries are good enough to use directly without having to fall back to dynamic interfaces
- The current type generator has been merged as a very experimental feature just so that others in the community can try it out. It will be rewritten in the near future with a cleaner architecture that will enable generation of more complex types correctly.
- Python values can now be loaded into any immutable Scala collection type as a copy, not just
Seq(PR #179) - Allow converting nested sequences to Python using a single call to
toPythonCopyortoPythonProxy(PR #178) - Add API equivalents for the Python
delkeyword (del foo.bar,del foo["key"], anddel foo) (PR #175, PR #177) - Support referential equality of Python values with a corresponding hash-code implementation (PR #110)
Breaking Changes :warning:
- Reading a Python collection as an immutable sequence will now load a copy. To load a proxy that can observe changes, load sequences with
.as[mutable.Seq[...]](PR #179) - Calling the
applymethod on apy.Dynamicvalue will now directly call the original value as-is instead of theapplymethod of the value in Python (PR #177)- To call the original value with keyword arguments, you can use the new
applyNamedAPI, passing in tuples of keyword arguments and values - To call the original
applymethod in Python, useapplyDynamicexplicitly (myValue.applyDynamic("apply")(arg1, arg2, ...))
- To call the original value with keyword arguments, you can use the new
v0.4.2
Highlights :tada:
- Upgrade Scala Native to 0.4.0, which brings support for Scala 2.12 and 2.13 (PR #147)
- Add support for Python 3.8 and 3.9 (PR #139)
Breaking Changes :warning:
- Support for Scala 2.11 has been dropped in order to focus efforts on 2.12/2.13 (PR #147)