Chaquopy version 8.0.0

Posted on

Changes:

  • Android Gradle plugin version 4.0 is now supported, and version 3.2 is no longer supported.
  • Runtime Python version is now 3.8.3.
  • Using Chaquopy in an Android library module (AAR) is now supported (#94).
  • Java primitive arrays now support the Python buffer protocol, allowing high-performance data transfer between the two languages.
  • Data files in top-level non-package directories are now extracted from the APK the first time the app is started, so they can be accessed using a path relative to __file__.

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

  • torchvision

Chaquopy version 7.0.3

Posted on

Changes:

  • Fix “This platform lacks a functioning sem_open implementation” error when using multiprocessing.dummy.Pool (aka multiprocessing.pool.ThreadPool). This affected many common uses of TensorFlow.
  • Work around dynamic linker bug on 64-bit ABIs before API level 23 (#228).
  • Fix out of memory error when running Gradle with a small heap size.
  • Fix incompatibility with external package importlib_metadata (#276).
  • Fix NoClassDefFoundError when using Python to access certain androidx classes, including AppCompatTextView.
  • Fix conversion of Java byte[] array to Python bytearray.
  • Improve startup speed by deferring pkg_resources initialization until the module is first imported.
  • Update CA bundle to certifi 2020.4.5.1.

The following packages have been updated since the previous version:

  • pillow (7.1.2)

Chaquopy version 7.0.2

Posted on

Changes:

  • Runtime Python version is now 3.8.1.
    • See compatibility notes for Python 3.7 and Python 3.8.
    • Most native packages have been updated to a more recent version. If you’ve used specific version numbers in a build.gradle or requirements.txt file, you may need to change them. See the repository index for a complete list.
    • All Python standard library modules are now supported except those in this list. In particular, support has been added for bz2importlib.metadataimportlib.resources and lzma.
  • Android Gradle plugin version 3.6 is now supported, and version 3.1 is no longer supported.
  • buildPython must now be at least Python 3.5.
  • Expose Java API using api configuration so it’s available to dynamic feature modules.
  • Update CA bundle to certifi 2019.9.11.
  • Fix “cannot create a consistent method resolution order” error when using androidx.
  • Fix a deadlock involving the Java API.
  • Improve local caching of packages which aren’t available as wheels.
  • Reduce some temporary filename lengths to avoid the Windows 260-character limit.
  • Improve startup speed.

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

  • llvmlite
  • multidict
  • numba
  • opencv-contrib-python
  • opencv-contrib-python-headless
  • opencv-python-headless
  • torch
  • yarl

Chaquopy version 6.3.0

Posted on

Changes:

  • Android Gradle plugin version 3.5 is now supported.
  • Pre-compile Python code to .pyc format by default, so it doesn’t have to be compiled on the device. This significantly improves app startup speed and storage usage.
  • Remove the extractPackages setting, as data files are now extracted automatically. See the documentation for details.
  • Change data file location from cache to files directory, to prevent the user from clearing it while the app is running.
  • Hide importer frames in stack traces, unless the exception originated from the importer itself.
  • Fix another metadata parsing issue, this one affecting the package astroid.
  • Fix “has no DT_SONAME” warning (#112).

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

  • bcrypt
  • coincurve
  • gevent
  • greenlet
  • srsly
  • typed-ast

And the following packages have been updated:

  • cymem (2.0.2)
  • preshed (2.0.1)
  • scikit-learn (0.21.2)

Chaquopy version 6.2.1

Posted on

Changes:

  • Android Gradle plugin version 3.4 is now supported.
  • Update to OpenSSL 1.1.1b. This enables the BLAKE2 and SHA-3 algorithms in hashlib.
  • Update CA bundle to certifi 2019.3.9.
  • Implement pkgutil.iter_modules.
  • Build pkg_resources into all apps. Many packages require this but don’t declare a dependency on setuptools.

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

  • dlib
  • editdistance
  • psutil
  • pysha3
  • pywavelets
  • scikit-image

And the following packages have been updated:

  • cryptography (2.6.1)

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: