Move Python version checking to a separate module

Add a new module with methods for checking the Python version.

Instead of handling Python3 imports with try...except blocks, first
check the python version and then import the relevant modules.  This
makes the code a bit cleaner and will result in less diff when/if we
remove support for Python < 3 later.

Use the same mechanism to handle `input` vs. `raw_input` and add
suppression of pylint warnings caused by redefinition of the built-in
method `input`.

Change-Id: Ia403e525b88d77640a741ac50382146e7d635924
Also-by: Chirayu Desai <cdesai@cyanogenmod.org>
Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
This commit is contained in:
David Pursehouse
2013-05-17 10:49:33 +09:00
parent da45e5d884
commit 59bbb580e3
10 changed files with 62 additions and 49 deletions

View File

@ -19,11 +19,11 @@ import platform
import re
import shutil
import sys
try:
# For python3
from pyversion import is_python3
if is_python3():
import urllib.parse
except ImportError:
# For python2
else:
import imp
import urlparse
urllib = imp.new_module('urllib')

View File

@ -21,12 +21,13 @@ except ImportError:
import dummy_threading as _threading
import glob
try:
# For python2
import StringIO as io
except ImportError:
# For python3
from pyversion import is_python3
if is_python3():
import io
else:
import StringIO as io
import itertools
import os
import sys

View File

@ -24,22 +24,17 @@ import socket
import subprocess
import sys
import time
try:
# For python3
from pyversion import is_python3
if is_python3():
import urllib.parse
except ImportError:
# For python2
import xmlrpc.client
else:
import imp
import urlparse
import xmlrpclib
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

View File

@ -23,10 +23,11 @@ from editor import Editor
from error import HookError, UploadError
from project import RepoHook
try:
from pyversion import is_python3
if not is_python3():
# pylint:disable=W0622
input = raw_input
except NameError:
pass
# pylint:enable=W0622
UNUSUAL_COMMIT_THRESHOLD = 5