From ae5e282e2f2a8ce6e523de5105ceb7aa10294c14 Mon Sep 17 00:00:00 2001 From: heartsucker Date: Sat, 30 Mar 2019 16:58:02 +0100 Subject: [PATCH] update raise syntax for python3 compatibility --- misc/build_helpers/test-git-ignore.py | 4 +--- newsfragments/3014.other | 1 + py3_valid_syntax.txt | 20 ++++++++++---------- src/allmydata/__init__.py | 8 ++++++-- src/allmydata/util/assertutil.py | 6 +++--- src/allmydata/util/fileutil.py | 16 ++++++++++------ src/allmydata/util/time_format.py | 2 +- src/allmydata/windows/registry.py | 4 ++-- 8 files changed, 34 insertions(+), 27 deletions(-) create mode 100644 newsfragments/3014.other diff --git a/misc/build_helpers/test-git-ignore.py b/misc/build_helpers/test-git-ignore.py index 832f775d9..66ffece4e 100644 --- a/misc/build_helpers/test-git-ignore.py +++ b/misc/build_helpers/test-git-ignore.py @@ -6,9 +6,7 @@ from subprocess import Popen, PIPE cmd = ["git", "status", "--porcelain"] p = Popen(cmd, stdout=PIPE) output = p.communicate()[0] -print output +print(output) if output == "": sys.exit(0) sys.exit(1) - - diff --git a/newsfragments/3014.other b/newsfragments/3014.other new file mode 100644 index 000000000..7be507e14 --- /dev/null +++ b/newsfragments/3014.other @@ -0,0 +1 @@ +Update raise syntax for Python3 compatibility. diff --git a/py3_valid_syntax.txt b/py3_valid_syntax.txt index 5a1191f57..30c1d4405 100644 --- a/py3_valid_syntax.txt +++ b/py3_valid_syntax.txt @@ -1,14 +1,6 @@ docs/ integration/ -misc/build_helpers/check-build.py -misc/build_helpers/gen-package-table.py -misc/build_helpers/run-deprecations.py -misc/build_helpers/show-tool-versions.py -misc/build_helpers/test-osx-pkg.py -misc/coding_tools/ -misc/incident-gatherer/ -misc/operations_helpers/ -misc/simulators/ +misc/ release-tools/ setup.py src/allmydata/_auto_deps.py @@ -20,6 +12,7 @@ src/allmydata/control.py src/allmydata/deep_stats.py src/allmydata/frontends/auth.py src/allmydata/frontends/__init__.py +src/allmydata/frontends/magic_folder.py src/allmydata/hashtree.py src/allmydata/history.py src/allmydata/immutable/checker.py @@ -35,6 +28,7 @@ src/allmydata/immutable/layout.py src/allmydata/immutable/literal.py src/allmydata/immutable/offloaded.py src/allmydata/immutable/repairer.py +src/allmydata/__init__.py src/allmydata/interfaces.py src/allmydata/introducer/ src/allmydata/magicfolderdb.py @@ -125,6 +119,7 @@ src/allmydata/test/test_client.py src/allmydata/test/test_configutil.py src/allmydata/test/test_connections.py src/allmydata/test/test_crawler.py +src/allmydata/test/test_dirnode.py src/allmydata/test/test_eliotutil.py src/allmydata/test/test_encode.py src/allmydata/test/test_encodingutil.py @@ -168,6 +163,7 @@ src/allmydata/test/web/test_util.py src/allmydata/unknown.py src/allmydata/uri.py src/allmydata/util/abbreviate.py +src/allmydata/util/assertutil.py src/allmydata/util/base32.py src/allmydata/util/base62.py src/allmydata/util/cachedir.py @@ -178,6 +174,8 @@ src/allmydata/util/dbutil.py src/allmydata/util/deferredutil.py src/allmydata/util/dictutil.py src/allmydata/util/eliotutil.py +src/allmydata/util/fake_inotify.py +src/allmydata/util/fileutil.py src/allmydata/util/hashutil.py src/allmydata/util/i2p_provider.py src/allmydata/util/idlib.py @@ -199,6 +197,7 @@ src/allmydata/util/repeatable_random.py src/allmydata/util/rrefutil.py src/allmydata/util/sibpath.py src/allmydata/util/statistics.py +src/allmydata/util/time_format.py src/allmydata/util/tor_provider.py src/allmydata/util/verlib.py src/allmydata/util/yamlutil.py @@ -206,7 +205,8 @@ src/allmydata/_version.py src/allmydata/watchdog/ src/allmydata/web/ src/allmydata/windows/__init__.py +src/allmydata/windows/inotify.py +src/allmydata/windows/registry.py src/allmydata/windows/tahoesvc.py static/ -static/tahoe.py ws_client.py diff --git a/src/allmydata/__init__.py b/src/allmydata/__init__.py index 485abfa5f..195a92113 100644 --- a/src/allmydata/__init__.py +++ b/src/allmydata/__init__.py @@ -3,6 +3,8 @@ Decentralized storage grid. community web site: U{https://tahoe-lafs.org/} """ +import six + class PackagingError(EnvironmentError): """ @@ -146,8 +148,10 @@ def normalized_version(verstr, what=None): raise except StandardError: cls, value, trace = sys.exc_info() - raise PackagingError, ("could not parse %s due to %s: %s" - % (what or repr(verstr), cls.__name__, value)), trace + new_exc = PackagingError("could not parse %s due to %s: %s" + % (what or repr(verstr), cls.__name__, value)) + six.reraise(cls, new_exc, trace) + def get_openssl_version(): try: diff --git a/src/allmydata/util/assertutil.py b/src/allmydata/util/assertutil.py index 735f534cd..5c48500c3 100644 --- a/src/allmydata/util/assertutil.py +++ b/src/allmydata/util/assertutil.py @@ -18,7 +18,7 @@ def _assert(___cond=False, *___args, **___kwargs): msgbuf.append("%s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),))))) msgbuf.extend([", %s: %s %s" % tuple(map(hr, (k, v, type(v),))) for k, v in ___kwargs.items()[1:]]) - raise AssertionError, "".join(msgbuf) + raise AssertionError("".join(msgbuf)) def precondition(___cond=False, *___args, **___kwargs): if ___cond: @@ -36,7 +36,7 @@ def precondition(___cond=False, *___args, **___kwargs): msgbuf.append("%s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),))))) msgbuf.extend([", %s: %s %s" % tuple(map(hr, (k, v, type(v),))) for k, v in ___kwargs.items()[1:]]) - raise AssertionError, "".join(msgbuf) + raise AssertionError("".join(msgbuf)) def postcondition(___cond=False, *___args, **___kwargs): if ___cond: @@ -54,4 +54,4 @@ def postcondition(___cond=False, *___args, **___kwargs): msgbuf.append("%s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),))))) msgbuf.extend([", %s: %s %s" % tuple(map(hr, (k, v, type(v),))) for k, v in ___kwargs.items()[1:]]) - raise AssertionError, "".join(msgbuf) + raise AssertionError("".join(msgbuf)) diff --git a/src/allmydata/util/fileutil.py b/src/allmydata/util/fileutil.py index 1a3412050..0bb38e776 100644 --- a/src/allmydata/util/fileutil.py +++ b/src/allmydata/util/fileutil.py @@ -5,6 +5,7 @@ Futz with files like a pro. """ import sys, exceptions, os, stat, tempfile, time, binascii +import six from collections import namedtuple from errno import ENOENT @@ -189,7 +190,7 @@ def make_dirs(dirname, mode=0o777): if not os.path.isdir(dirname): if tx: raise tx - raise exceptions.IOError, "unknown error prevented creation of directory, or deleted the directory immediately after creation: %s" % dirname # careful not to construct an IOError with a 2-tuple, as that has a special meaning... + raise exceptions.IOError("unknown error prevented creation of directory, or deleted the directory immediately after creation: %s" % dirname) # careful not to construct an IOError with a 2-tuple, as that has a special meaning... def rm_dir(dirname): """ @@ -222,8 +223,8 @@ def rm_dir(dirname): if len(excs) == 1: raise excs[0] if len(excs) == 0: - raise OSError, "Failed to remove dir for unknown reason." - raise OSError, excs + raise OSError("Failed to remove dir for unknown reason.") + raise OSError(excs) def remove_if_possible(f): @@ -594,13 +595,16 @@ else: class ConflictError(Exception): pass + class UnableToUnlinkReplacementError(Exception): pass + def reraise(wrapper): - _, exc, tb = sys.exc_info() - wrapper_exc = wrapper("%s: %s" % (exc.__class__.__name__, exc)) - raise wrapper_exc.__class__, wrapper_exc, tb + cls, exc, tb = sys.exc_info() + wrapper_exc = wrapper("%s: %s" % (cls.__name__, exc)) + six.reraise(wrapper, wrapper_exc, tb) + if sys.platform == "win32": # diff --git a/src/allmydata/util/time_format.py b/src/allmydata/util/time_format.py index a6fe3ec72..eb3434c47 100644 --- a/src/allmydata/util/time_format.py +++ b/src/allmydata/util/time_format.py @@ -25,7 +25,7 @@ def iso_utc_time_to_seconds(isotime, _conversion_re=re.compile(r"(?P\d{4}) """ m = _conversion_re.match(isotime) if not m: - raise ValueError, (isotime, "not a complete ISO8601 timestamp") + raise ValueError(isotime, "not a complete ISO8601 timestamp") year, month, day = int(m.group('year')), int(m.group('month')), int(m.group('day')) hour, minute, second = int(m.group('hour')), int(m.group('minute')), int(m.group('second')) subsecstr = m.group('subsecond') diff --git a/src/allmydata/windows/registry.py b/src/allmydata/windows/registry.py index 4801310d3..c1f695d2b 100644 --- a/src/allmydata/windows/registry.py +++ b/src/allmydata/windows/registry.py @@ -40,7 +40,7 @@ def get_registry_setting(key, name, _topkey=None): except WindowsError: continue # We didn't find the key: - raise KeyError, (key, name, "registry setting not found") + raise KeyError(key, name, "registry setting not found") def set_registry_setting(key, name, data, reg_type=_winreg.REG_SZ, _topkey=_winreg.HKEY_LOCAL_MACHINE, create_key_if_missing=True): @@ -55,7 +55,7 @@ def set_registry_setting(key, name, data, reg_type=_winreg.REG_SZ, if create_key_if_missing: regkey = _winreg.CreateKey(_topkey, key) else: - raise KeyError, (key, "registry key not found") + raise KeyError(key, "registry key not found") try: _winreg.DeleteValue(regkey, name)