From 217ea7d2747e3098009afe0b389fc4b45f55ea5a Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Fri, 1 Mar 2013 19:14:38 +0530 Subject: Some fixes for supporting python3 * Fix imports. * Use python3 syntax. * Wrap map() calls with list(). * Use list() only wherever needed. (Thanks Conley!) * Fix dictionary iteration methods (s/iteritems/items/). * Make use of sorted() in appropriate places * Use iterators directly in the loop. * Don't use .keys() wherever it isn't needed. * Use sys.maxsize instead of sys.maxint TODO: * Make repo work fully with python3. :) Some of this was done by the '2to3' tool [1], by applying the needed fixes in a way that doesn't break compatibility with python2. Links: [1]: http://docs.python.org/2/library/2to3.html Change-Id: Ibdf3bf9a530d716db905733cb9bfef83a48820f7 Signed-off-by: Chirayu Desai --- subcmds/sync.py | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) (limited to 'subcmds/sync.py') diff --git a/subcmds/sync.py b/subcmds/sync.py index 42c5f915..8fb94885 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -24,8 +24,24 @@ import socket import subprocess import sys import time -import urlparse -import xmlrpclib +try: + # For python3 + import urllib.parse +except ImportError: + # For python2 + import imp + import urlparse + urllib = imp.new_module('urllib') + urllib.parse = urlparse +try: + # For python3 + import xmlrpc.client +except ImportError: + # For python2 + import imp + import xmlrpclib + xmlrpc = imp.new_module('xmlrpc') + xmlrpc.client = xmlrpclib try: import threading as _threading @@ -498,7 +514,7 @@ later is required to fix a server side protocol bug. file=sys.stderr) else: try: - parse_result = urlparse.urlparse(manifest_server) + parse_result = urllib.parse(manifest_server) if parse_result.hostname: username, _account, password = \ info.authenticators(parse_result.hostname) @@ -516,7 +532,7 @@ later is required to fix a server side protocol bug. 1) try: - server = xmlrpclib.Server(manifest_server) + server = xmlrpc.client.Server(manifest_server) if opt.smart_sync: p = self.manifest.manifestProject b = p.GetBranch(p.CurrentBranch) @@ -525,8 +541,7 @@ later is required to fix a server side protocol bug. branch = branch[len(R_HEADS):] env = os.environ.copy() - if (env.has_key('TARGET_PRODUCT') and - env.has_key('TARGET_BUILD_VARIANT')): + if 'TARGET_PRODUCT' in env and 'TARGET_BUILD_VARIANT' in env: target = '%s-%s' % (env['TARGET_PRODUCT'], env['TARGET_BUILD_VARIANT']) [success, manifest_str] = server.GetApprovedManifest(branch, target) @@ -554,11 +569,11 @@ later is required to fix a server side protocol bug. else: print('error: %s' % manifest_str, file=sys.stderr) sys.exit(1) - except (socket.error, IOError, xmlrpclib.Fault) as e: + except (socket.error, IOError, xmlrpc.client.Fault) as e: print('error: cannot connect to manifest server %s:\n%s' % (self.manifest.manifest_server, e), file=sys.stderr) sys.exit(1) - except xmlrpclib.ProtocolError as e: + except xmlrpc.client.ProtocolError as e: print('error: cannot connect to manifest server %s:\n%d %s' % (self.manifest.manifest_server, e.errcode, e.errmsg), file=sys.stderr) -- cgit v1.2.3-54-g00ecf