diff --git a/tools/exec_util.py b/tools/exec_util.py index 6d7677d1c..b644bb4a8 100644 --- a/tools/exec_util.py +++ b/tools/exec_util.py @@ -2,6 +2,7 @@ # reserved. Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file +from __future__ import absolute_import from subprocess import Popen, PIPE import sys @@ -32,8 +33,9 @@ def exec_cmd(cmd, path, input_string=None): shell=(sys.platform == 'win32')) out, err = process.communicate(input=input_string) ret = process.returncode - except IOError, (errno, strerror): + except IOError as e: + (errno, strerror) = e.args raise except: raise - return {'out': out, 'err': err, 'ret': ret} + return {'out': out.decode(), 'err': err.decode(), 'ret': ret} diff --git a/tools/file_util.py b/tools/file_util.py index edc382ba2..3c55a9924 100644 --- a/tools/file_util.py +++ b/tools/file_util.py @@ -2,6 +2,7 @@ # reserved. Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file. +from __future__ import absolute_import from glob import iglob import os import shutil @@ -19,7 +20,8 @@ def read_file(name, normalize=True): # normalize line endings data = data.replace("\r\n", "\n") return data - except IOError, (errno, strerror): + except IOError as e: + (errno, strerror) = e.args sys.stderr.write('Failed to read file ' + name + ': ' + strerror) raise else: @@ -32,7 +34,8 @@ def write_file(name, data): f = open(name, 'w') # write the data f.write(data) - except IOError, (errno, strerror): + except IOError as e: + (errno, strerror) = e.args sys.stderr.write('Failed to write file ' + name + ': ' + strerror) raise else: @@ -55,7 +58,8 @@ def copy_file(src, dst, quiet=True): shutil.copy2(src, dst) if not quiet: sys.stdout.write('Transferring ' + src + ' file.\n') - except IOError, (errno, strerror): + except IOError as e: + (errno, strerror) = e.args sys.stderr.write('Failed to copy file from ' + src + ' to ' + dst + ': ' + strerror) raise @@ -67,7 +71,8 @@ def move_file(src, dst, quiet=True): shutil.move(src, dst) if not quiet: sys.stdout.write('Moving ' + src + ' file.\n') - except IOError, (errno, strerror): + except IOError as e: + (errno, strerror) = e.args sys.stderr.write('Failed to move file from ' + src + ' to ' + dst + ': ' + strerror) raise @@ -90,7 +95,8 @@ def remove_file(name, quiet=True): os.remove(name) if not quiet: sys.stdout.write('Removing ' + name + ' file.\n') - except IOError, (errno, strerror): + except IOError as e: + (errno, strerror) = e.args sys.stderr.write('Failed to remove file ' + name + ': ' + strerror) raise @@ -102,7 +108,8 @@ def copy_dir(src, dst, quiet=True): shutil.copytree(src, dst) if not quiet: sys.stdout.write('Transferring ' + src + ' directory.\n') - except IOError, (errno, strerror): + except IOError as e: + (errno, strerror) = e.args sys.stderr.write('Failed to copy directory from ' + src + ' to ' + dst + ': ' + strerror) raise @@ -115,7 +122,8 @@ def remove_dir(name, quiet=True): shutil.rmtree(name) if not quiet: sys.stdout.write('Removing ' + name + ' directory.\n') - except IOError, (errno, strerror): + except IOError as e: + (errno, strerror) = e.args sys.stderr.write('Failed to remove directory ' + name + ': ' + strerror) raise @@ -127,7 +135,8 @@ def make_dir(name, quiet=True): if not quiet: sys.stdout.write('Creating ' + name + ' directory.\n') os.makedirs(name) - except IOError, (errno, strerror): + except IOError as e: + (errno, strerror) = e.args sys.stderr.write('Failed to create directory ' + name + ': ' + strerror) raise diff --git a/tools/git_util.py b/tools/git_util.py index 79db0455e..3a3abb441 100644 --- a/tools/git_util.py +++ b/tools/git_util.py @@ -2,6 +2,7 @@ # reserved. Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file +from __future__ import absolute_import from exec_util import exec_cmd import os import sys @@ -130,7 +131,7 @@ def git_apply_patch_file(patch_path, patch_dir): if sys.platform == 'win32': # Convert the patch to Unix line endings. This is necessary to avoid # whitespace errors with git apply. - patch_string = patch_string.replace('\r\n', '\n') + patch_string = patch_string.replace(b'\r\n', b'\n') # Git apply fails silently if not run relative to a respository root. if not is_checkout(patch_dir): diff --git a/tools/patcher.py b/tools/patcher.py index 942d21160..0ac98ea91 100644 --- a/tools/patcher.py +++ b/tools/patcher.py @@ -2,6 +2,7 @@ # reserved. Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file. +from __future__ import absolute_import import pickle from optparse import OptionParser import os @@ -54,7 +55,7 @@ def apply_patch_config(): # Parse the configuration file. scope = {} - execfile(config_file, scope) + exec (compile(open(config_file, "rb").read(), config_file, 'exec'), scope) patches = scope["patches"] results = {'apply': 0, 'skip': 0, 'fail': 0}