Chaquopy version 5.1.2

Posted on

This version adds the following features:

  • Add PyObject primitive conversion methods (toBooleantoInt, etc.).
  • Add PyObject container view methods (asListasMap and asSet).
  • Make APK build more reproducible.

And fixes the following bugs:

  • If pkg_resources is installed in your app, its “basic resource access” functions will now work.
  • Remove directory names when converting exception stack traces from Python to Java. This works around a bug in Google Play which was causing crash reports to be incomplete.
  • Change default character encoding from ASCII to UTF-8.

The following packages have been added to the repository since the previous version:

  • ephem
  • pycrypto
  • tensorflow

And the following packages have been updated:

  • chaquopy-openblas (fixed a build problem which caused a crash in SciPy)
  • scipy (1.1.0)

Chaquopy version 5.0.0

Posted on

From this version onwards, each Chaquopy version will include only one Python version, so the python.version setting is no longer required. Simply remove it to use the current version, 3.6.5.

Python 2 is no longer included. However, for existing Python 2 users, Chaquopy 4.x will continue to be maintained until the end of 2019 (#39).

Other changes:

  • The ABI arm64-v8a is now supported.
  • buildPython must now be at least Python 3.4.
  • minSdkVersion must now be at least API level 16. This still covers 99% of active devices.
  • Runtime components are now distributed as separate Maven artifacts. This fixes various intermittent build errors involving chaquopy_java.jar (#62).
  • If pkg_resources is installed in your app, it will now detect all pip-installed packages.

The following packages have been added to the repository since the previous version:

  • lru-dict
  • pycares
  • pycryptodome
  • pycryptodomex
  • ta-lib

Chaquopy version 4.0.0

Posted on

This version adds support for Android Gradle plugin version 3.2, and removes support for version 2.3.

Other changes:

The following packages have been added to the repository since the previous version:

  • cymem
  • cytoolz
  • lxml
  • murmurhash
  • obspy
  • preshed
  • spacy
  • thinc
  • twisted

Chaquopy version 3.3.2

Posted on

This version fixes the following bugs:

  • Fix pip issues involving packages with optional native components (e.g. websockets).
  • Work around inability of Android dynamic linker on API 22 and older to load multiple modules with the same basename (details here).
  • Fix ctypes.pythonapi and sys.abiflags, and provide partial implementation of sysconfig.get_config_vars.
  • Fix native crash in lrintf / feholdexcept / fegetenv (Crystax issue #1369).
  • Fix pkgutil.get_data when used with extractPackages, and improve extractPackages performance.

The following packages have been added to the repository since the previous version:

Chaquopy version 3.3.0

Posted on

This version adds the following feature:

  • Add fast conversions between Python bytes/bytearray and Java byte[] (#41).

And fixes the following pip-related issues:

  • Make pip evaluate environment markers (PEP 508) and data-requires-python attributes (PEP 503) against the target platform rather than the build platform.
  • Make pip only prioritize native wheels (not pure-Python wheels) over sdists of a newer version.
  • Fix pip issues when multiple packages provide the same directory or filename.
  • Improve pip error messages when packages attempt to build native code.

Also, the following packages have recently been added to the repository:

Chaquopy version 3.1.0

Posted on

This release adds support for installing pure-Python sdists. This means that all pure-Python packages on PyPI should now work with Chaquopy, whether they have wheels available or not. If you have any difficulty installing a package, please report it at our issue tracker.

Other changes:

  • The Python major version of buildPython is now required to be the same as that of the app itself when using pip, and the default value of buildPython has been changed accordingly.
  • Fix imp.find_module and imp.load_module.
  • Implement implicit namespace packages on Python 3 (PEP 420).
  • Add partial support for .pth files. Only the execution of lines starting with import is currently implemented: all other lines are ignored.
  • Add message explaining how to show full pip output in Android Studio 3.1’s new Build window.
  • Fix “registering invalid inputs” warning in Android Studio 3.1.

Chaquopy version 3.0.0

Posted on

This version adds support for Android Gradle plugin version 3.1, and removes support for version 2.2. If you’re still using Android Studio 2.2, then we highly recommend that you upgrade to version 3.1. Our testing shows that it builds apps more than twice as fast, whether you’re using Chaquopy or not.

Other changes:

  • Add Python versions 2.7.15 and 3.6.5, and fix a few lesser-used standard library modules.
  • Update to pip version 10.0.1.
  • Build reliability fixes, including one for over-strict metadata parsing.
  • Further build speed improvements.
  • Improve app startup speed where a requirement is reinstalled at the same version as before.

More data science packages now available

Posted on

We’re happy to announce that, due to popular demand, the following packages are now available for Chaquopy 2.1 and later:

NumPy has also been updated to the newest version, and is now built to work with OpenBLAS. As a result, many calculations are significantly faster than in the previous build.

For a full list of native packages currently available for Chaquopy, see the repository. In addition, Chaquopy of course supports all pure-Python packages which are available as wheels on PyPI.

If your favorite package still isn’t available, please let us know!

Chaquopy version 2.1.0

Posted on

This version is focused on improving support for Python requirements which are very large, or contain native code. Several new packages have been added to the repository as a result: see the next post for a list.

List of changes:

  • External shared library dependencies can now be loaded.
  • pip install performance has been improved.