Idea #11308
closedSupport Python3 for arvados-python-client & command line utilities
Description
Python 3 has been available for many years and the Python 2/3 migration is reaching its final stages. As a first step, Arvados Python SDK + command line needs to run on both Python 3 and Python 2.
run-tests.sh needs to run tests using both Python 2.7 and Python 3.4+
Dependencies must support Python 3. May require updating dependencies and related side effects (API/behavior changes).
Use "__future__" to adopt Python 3 behavior on Python 2.7:
from __future__ import division, absolute_import, print_function, unicode_literals
Clean up usage of strings to conform to Python 3 unicode/bytes distinction.
Existing Arvados Python packages including FUSE, Node manager, arvados-cwl-runner (+ its dependencies, e.g. cwltool), and crunchstat-summary must continue to work on Python 2.7 (they will be ported in future stories). Ideally this can be resolved without divergent behavior between Py2 and Py3, however if there is a conflict between Py2 and Py3 behavior it needs to be resolved in favor of maintaining compatibility with existing dependencies on Py2.
Packages should be published to PyPi advertising compatibility with both Py2+Py3 .
Will need to build and publish separate Py2 and Py3 deb/rpm packages (due to hard dependency on Python interpreter).