Chaquopy version 1.4.0

Posted on

This version adds the following feature:

  • The Python standard library is now loaded from compiled .pyc files by default (see documentation). As a result, startup of a minimal app is now 20-30% faster with Python 2, and 50-60% faster with Python 3. (Python 3 startup is still slower than Python 2, but only by 15-20%.)

And fixes the following bugs:

  • sys.stdin now returns EOF rather than blocking. If you want to run some code which takes interactive text input, see below for the new console app template.
  • The write method of sys.stdout and sys.stderr now returns the character count.
  • Very long lines written to sys.stdout and sys.stderr are now split into slightly smaller fragments, to allow for the shorter Logcat message length limit in recent versions of Android.
  • Fix a multi-threading deadlock.

Other notes:

  • Apps built with an unlicensed copy of the SDK are now limited to a run-time of 5 minutes.
  • console app template is now available, providing a framework for running text-based Python programs in an Android app. The demo app has been rewritten to use this framework, giving the following improvements:
    • Code input in the REPL is now executed on a background thread.
    • The REPL can now be terminated by typing exit(), then restarted by pressing back and re-entering the activity.
    • Stderr is now shown in red.
    • Scrolling, rotation and state restoration are all more reliable.

Chaquopy version 1.3.0

Posted on

This version focuses on improving Python standard library functionality:

  • The following things now return reasonable values: sys.argvsys.executable, and platform.platform().
  • The following modules now work correctly: sqlite3, ssl (#23), and tempfile. (Requires python.version to be 2.7.14 or 3.6.3.)
  • sys.stdout and sys.stderr are now directed to the Android logcat.

It also adds the following feature:

  • extractPackages allows code which uses __file__ to work unchanged. It is used by default for certifi.

Chaquopy version 1.2.0

Posted on

This version adds the following features:

  • Python source directory locations can now be configured in the sourceSets block, just like Java.
  • Python 2.7.14 is now available.

And fixes the following bugs:

  • getClass, when called on a Java object, now returns the Java object class rather than the
    proxy object class.
  • Generated static_proxy Java files no longer produce build warnings.
  • Pip is now re-run if a local requirements or wheel file changes.
  • Missing stdlib modules distutils and doctest have been added (#20). For Python 2 apps, this also requires
    upgrading to Python 2.7.14.

The following packages have been added to the repository:

Chaquopy version 0.6.1

Posted on

This version adds the following features:

  • Apps can now use certain native packages, including NumPy (#14), as well as pure-Python packages which aren’t available from PyPI in wheel format.
  • Zero-initialized Java arrays can now be created in Python, by passing an integer to the array constructor rather than a sequence.

And fixes the following bugs:

Chaquopy version 0.5.0

Posted on

This version adds the following features:

And fixes the following bugs:

This version also increases the minimum API level for Chaquopy-based apps from 9 to 15. This is the default for new apps in Android Studio 3.0, and covers 99% of active devices.