Make code Py33 compatible

Registered by Ilya Shakhat

Make Stackalytics code compatible with Python 3.3:
 * check all dependencies
 * fix all compatibility issues
 * make tests pass
 * enable tests in Jenkins

Blueprint information

Status:
Complete
Approver:
None
Priority:
Low
Drafter:
None
Direction:
Approved
Assignee:
ChangBo Guo(gcb)
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
milestone icon 0.7
Started by
Ilya Shakhat
Completed by
Ilya Shakhat

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/py33,n,z

Addressed by: https://review.openstack.org/66097
    Use six constants to make code Python 3 compatible

Addressed by: https://review.openstack.org/66098
    Use six.iteritems to make dict work on Python2/3

Addressed by: https://review.openstack.org/66099
    Sync module timeutils from Oslo

Addressed by: https://review.openstack.org/66162
    Replace urllib with py3kcompat.urlutils

Addressed by: https://review.openstack.org/66163
    Replace urlparse with py3kcompat.urlutils

The main blocker of enabling Py33 is python-memcached library. The version for Py33 is called differently -- python3-memcached - so it requires a separate requirements.txt file. It is possible to use separate file in tox configuration, but for runtime we depend on pbr. Appropriate patch to pbr is posted (https://review.openstack.org/#/c/63236/) but is still in work.

Addressed by: https://review.openstack.org/66100
    Use Oslo module py3kcompat

Addressed by: https://review.openstack.org/75611
    Use six.moves.http_client instead of httplib

Addressed by: https://review.openstack.org/103210
    Fix py33 compatibility errors

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.