From a23b66a6b1811db04ce886b6fecf0e6d6f0010b9 Mon Sep 17 00:00:00 2001 From: Bill Little Date: Fri, 2 Aug 2019 07:51:17 +0100 Subject: [PATCH 1/3] dress naked excepts --- lib/iris/_constraints.py | 2 +- lib/iris/analysis/__init__.py | 2 +- lib/iris/coords.py | 2 +- lib/iris/cube.py | 2 +- lib/iris/fileformats/cf.py | 2 +- lib/iris/io/format_picker.py | 2 +- lib/iris/iterate.py | 2 +- lib/iris/tests/test_merge.py | 2 +- lib/iris/util.py | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/iris/_constraints.py b/lib/iris/_constraints.py index e0fcc7b737..18b7fb1f54 100644 --- a/lib/iris/_constraints.py +++ b/lib/iris/_constraints.py @@ -25,7 +25,7 @@ try: # Python 3 from collections.abc import Iterable, Mapping -except: # Python 2.7 +except ImportError: # Python 2.7 from collections import Iterable, Mapping import operator diff --git a/lib/iris/analysis/__init__.py b/lib/iris/analysis/__init__.py index bfb9f9b5d5..fda54531e4 100644 --- a/lib/iris/analysis/__init__.py +++ b/lib/iris/analysis/__init__.py @@ -53,7 +53,7 @@ from collections import OrderedDict try: # Python 3 from collections.abc import Iterable -except: # Python 2.7 +except ImportError: # Python 2.7 from collections import Iterable from functools import wraps diff --git a/lib/iris/coords.py b/lib/iris/coords.py index 05c9920654..ac666736e8 100644 --- a/lib/iris/coords.py +++ b/lib/iris/coords.py @@ -27,7 +27,7 @@ from collections import namedtuple try: # Python 3 from collections.abc import Iterator -except: # Python 2.7 +except ImportError: # Python 2.7 from collections import Iterator import copy from itertools import chain diff --git a/lib/iris/cube.py b/lib/iris/cube.py index 3f21c1a8cf..137aa68586 100644 --- a/lib/iris/cube.py +++ b/lib/iris/cube.py @@ -31,7 +31,7 @@ Mapping, MutableMapping, Iterator) -except: # Python 2.7 +except ImportError: # Python 2.7 from collections import (Iterable, Container, Mapping, diff --git a/lib/iris/fileformats/cf.py b/lib/iris/fileformats/cf.py index 4c5166542a..b9f08ef5d7 100644 --- a/lib/iris/fileformats/cf.py +++ b/lib/iris/fileformats/cf.py @@ -33,7 +33,7 @@ try: # Python 3 from collections.abc import Iterable, MutableMapping -except: # Python 2.7 +except ImportError: # Python 2.7 from collections import Iterable, MutableMapping import os import re diff --git a/lib/iris/io/format_picker.py b/lib/iris/io/format_picker.py index e2c46b15bb..c96fbfa6f6 100644 --- a/lib/iris/io/format_picker.py +++ b/lib/iris/io/format_picker.py @@ -57,7 +57,7 @@ try: # Python 3 from collections.abc import Callable -except: # Python 2.7 +except ImportError: # Python 2.7 from collections import Callable import functools import os diff --git a/lib/iris/iterate.py b/lib/iris/iterate.py index 9a01c54991..37adebc1f5 100644 --- a/lib/iris/iterate.py +++ b/lib/iris/iterate.py @@ -24,7 +24,7 @@ try: # Python 3 from collections.abc import Iterator -except: # Python 2.7 +except ImportError: # Python 2.7 from collections import Iterator import itertools import warnings diff --git a/lib/iris/tests/test_merge.py b/lib/iris/tests/test_merge.py index 1e8cb08646..04b0c3ce2c 100644 --- a/lib/iris/tests/test_merge.py +++ b/lib/iris/tests/test_merge.py @@ -28,7 +28,7 @@ try: # Python 3 from collections.abc import Iterable -except: # Python 2.7 +except ImportError: # Python 2.7 from collections import Iterable import datetime import itertools diff --git a/lib/iris/util.py b/lib/iris/util.py index 2502c19f8d..19d50ebc62 100644 --- a/lib/iris/util.py +++ b/lib/iris/util.py @@ -25,7 +25,7 @@ try: # Python 3 from collections.abc import Hashable -except: # Python 2.7 +except ImportError: # Python 2.7 from collections import Hashable import abc from contextlib import contextmanager From f1d808c339cfc36d612364f004036a2d3afa9d0e Mon Sep 17 00:00:00 2001 From: Bill Little Date: Fri, 9 Aug 2019 11:12:06 +0100 Subject: [PATCH 2/3] fix tests --- lib/iris/analysis/maths.py | 19 +++++++++++++------ lib/iris/tests/test_basic_maths.py | 3 +-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/iris/analysis/maths.py b/lib/iris/analysis/maths.py index abd6e3a633..0e0fe540ff 100644 --- a/lib/iris/analysis/maths.py +++ b/lib/iris/analysis/maths.py @@ -1,4 +1,4 @@ -# (C) British Crown Copyright 2010 - 2017, Met Office +# (C) British Crown Copyright 2010 - 2019, Met Office # # This file is part of Iris. # @@ -22,10 +22,11 @@ from __future__ import (absolute_import, division, print_function) from six.moves import (filter, input, map, range, zip) # noqa -import warnings +import inspect import math import operator -import inspect +import six +import warnings import cf_units import numpy as np @@ -917,9 +918,15 @@ def ws_units_func(u_cube, v_cube): if hasattr(data_func, 'nin'): self.nin = data_func.nin else: - (args, varargs, keywords, defaults) = inspect.getargspec(data_func) - self.nin = len(args) - ( - len(defaults) if defaults is not None else 0) + if six.PY2: + (args, _, _, defaults) = inspect.getargspec(data_func) + self.nin = len(args) - ( + len(defaults) if defaults is not None else 0) + else: + sig = inspect.signature(data_func) + args = [param for param in sig.parameters.values() + if '=' not in str(param)] + self.nin = len(args) if self.nin not in [1, 2]: msg = ('{} requires {} input data arrays, the IFunc class ' diff --git a/lib/iris/tests/test_basic_maths.py b/lib/iris/tests/test_basic_maths.py index b7004bc87f..1bf88d184a 100644 --- a/lib/iris/tests/test_basic_maths.py +++ b/lib/iris/tests/test_basic_maths.py @@ -602,8 +602,7 @@ def vec_mag_data_func(u_data, v_data): self.assertArrayAlmostEqual(b.data, b2.data) cs_ifunc = iris.analysis.maths.IFunc(np.cumsum, - lambda a: a.units - ) + lambda a: a.units) b = cs_ifunc(a, axis=1) ans = a.data.copy() From 788b967d5d8e2f3d5b4913fbeac4ef3f0e183d9e Mon Sep 17 00:00:00 2001 From: Bill Little Date: Fri, 9 Aug 2019 11:53:01 +0100 Subject: [PATCH 3/3] keep sticker happy --- lib/iris/tests/test_basic_maths.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/iris/tests/test_basic_maths.py b/lib/iris/tests/test_basic_maths.py index 1bf88d184a..4ed4a08fea 100644 --- a/lib/iris/tests/test_basic_maths.py +++ b/lib/iris/tests/test_basic_maths.py @@ -596,13 +596,13 @@ def vec_mag(u, v): def vec_mag_data_func(u_data, v_data): return np.sqrt( u_data**2 + v_data**2 ) - vec_mag_ifunc = iris.analysis.maths.IFunc(vec_mag_data_func, lambda a,b: (a + b).units) + vec_mag_ifunc = iris.analysis.maths.IFunc(vec_mag_data_func, + lambda a, b: (a + b).units) b2 = vec_mag_ifunc(a, c) self.assertArrayAlmostEqual(b.data, b2.data) - cs_ifunc = iris.analysis.maths.IFunc(np.cumsum, - lambda a: a.units) + cs_ifunc = iris.analysis.maths.IFunc(np.cumsum, lambda a: a.units) b = cs_ifunc(a, axis=1) ans = a.data.copy()