Project

General

Profile

Idea #11308

Updated by Peter Amstutz about 7 years ago

Python 3 has been available for many years and the Python 2/3 migration is reaching its final stages. All Arvados Python programs need to run on both Python 3 and Python 2. 

 Things to consider: 

 Need to pass test suites using both Python 2.7 and Python 3.4+ 

 Arvados Python packages to port are: 

 * Arvados Python SDK + command line tools 
 * FUSE 
 * Node manager 
 * arvados-cwl-runner (+ its dependencies, e.g. cwltool) 

 arvados-docker-cleaner already targets Python 3! 

 Dependencies must support Python 3.    May require updating dependencies and related side effects. 

 Use "__future__" to adopt Python 3 behavior on Python 2.7: 

 <pre> 
 from __future__ import division, absolute_import, print_function, unicode_literals 
 </pre> 

 Will need to clean up usage of strings to conform to Python 3 unicode/bytes distinction. 

 Also consider backports such as @subprocess32@ and compatibility libraries such as @six@. 

 PyPi packages should be published as combined Py2+Py3 compatible. 

 May need to publish separate Py2 and Py3 operating system packages (due to hard dependency on Python interpreter). 


Back