From d6e91f7ca06a89a79f73eeef7322e2d7af51c640 Mon Sep 17 00:00:00 2001 From: Bill Little Date: Mon, 18 Dec 2023 11:50:30 +0000 Subject: [PATCH] ruff ICN rule compliance --- .ruff.toml | 6 +-- benchmarks/benchmarks/plot.py | 4 +- lib/iris/pandas.py | 22 ++++----- lib/iris/tests/graphics/__init__.py | 8 ++-- lib/iris/tests/unit/pandas/test_pandas.py | 56 +++++++++++------------ 5 files changed, 48 insertions(+), 48 deletions(-) diff --git a/.ruff.toml b/.ruff.toml index fb5c9cd96a..966a720654 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -106,9 +106,9 @@ lint.ignore = [ # https://docs.astral.sh/ruff/rules/#flake8-future-annotations-fa "FA", - # flake8-import-conventions (ICN) - # https://docs.astral.sh/ruff/rules/#flake8-import-conventions-icn - "ICN", + # flake8-implicit-str-concat (ISC) + # https://docs.astral.sh/ruff/rules/#flake8-implicit-str-concat-isc + "ISC", # flake8-logging-format (G) # https://docs.astral.sh/ruff/rules/#flake8-logging-format-g diff --git a/benchmarks/benchmarks/plot.py b/benchmarks/benchmarks/plot.py index 7942361295..b5bc064e84 100644 --- a/benchmarks/benchmarks/plot.py +++ b/benchmarks/benchmarks/plot.py @@ -5,14 +5,14 @@ """Plot benchmark tests. """ -import matplotlib +import matplotlib as mpl import numpy as np from iris import coords, cube, plot from . import ARTIFICIAL_DIM_SIZE -matplotlib.use("agg") +mpl.use("agg") class AuxSort: diff --git a/lib/iris/pandas.py b/lib/iris/pandas.py index fa12f087e4..a30c855fc0 100644 --- a/lib/iris/pandas.py +++ b/lib/iris/pandas.py @@ -16,7 +16,7 @@ import cftime import numpy as np import numpy.ma as ma -import pandas +import pandas as pd try: from pandas.core.indexes.datetimes import DatetimeIndex # pandas >=0.20 @@ -44,7 +44,7 @@ def _get_dimensional_metadata(name, values, calendar=None, dm_class=None): # Convert out of NumPy's own datetime format. if np.issubdtype(values.dtype, np.datetime64): - values = pandas.to_datetime(values) + values = pd.to_datetime(values) # Convert pandas datetime objects to python datetime objects. if isinstance(values, DatetimeIndex): @@ -87,7 +87,7 @@ def _add_iris_coord(cube, name, points, dim, calendar=None): cube.add_aux_coord(coord, dim) -def _series_index_unique(pandas_series: pandas.Series): +def _series_index_unique(pandas_series: pd.Series): """Find an index grouping of a :class:`pandas.Series` that has just one Series value per group. Iterates through grouping single index levels, then combinations of 2 @@ -357,7 +357,7 @@ def as_cubes( cell_measure_cols = cell_measure_cols or [] ancillary_variable_cols = ancillary_variable_cols or [] - is_series = isinstance(pandas_structure, pandas.Series) + is_series = isinstance(pandas_structure, pd.Series) if copy: pandas_structure = pandas_structure.copy() @@ -604,7 +604,7 @@ def as_series(cube, copy=True): index = None if cube.dim_coords: index = _as_pandas_coord(cube.dim_coords[0]) - series = pandas.Series(data, index) + series = pd.Series(data, index) if not copy: _assert_shared(data, series) return series @@ -811,16 +811,16 @@ def merge_metadata(meta_var_list): # dimension over the whole DataFrame data_frame[meta_var_name] = meta_var.squeeze() else: - meta_df = pandas.DataFrame( + meta_df = pd.DataFrame( meta_var.ravel(), columns=[meta_var_name], - index=pandas.MultiIndex.from_product( + index=pd.MultiIndex.from_product( [coords[i] for i in meta_var_index], names=[coord_names[i] for i in meta_var_index], ), ) # Merge to main data frame - data_frame = pandas.merge( + data_frame = pd.merge( data_frame, meta_df, left_index=True, @@ -847,8 +847,8 @@ def merge_metadata(meta_var_list): # Extract dim coord information: separate lists for dim names and dim values coord_names, coords = _make_dim_coord_list(cube) # Make base DataFrame - index = pandas.MultiIndex.from_product(coords, names=coord_names) - data_frame = pandas.DataFrame(data.ravel(), columns=[cube.name()], index=index) + index = pd.MultiIndex.from_product(coords, names=coord_names) + data_frame = pd.DataFrame(data.ravel(), columns=[cube.name()], index=index) if add_aux_coords: data_frame = merge_metadata(_make_aux_coord_list(cube)) @@ -889,7 +889,7 @@ def merge_metadata(meta_var_list): if cube.coords(dimensions=[1]): columns = _as_pandas_coord(cube.coord(dimensions=[1])) - data_frame = pandas.DataFrame(data, index, columns) + data_frame = pd.DataFrame(data, index, columns) if not copy: _assert_shared(data, data_frame) diff --git a/lib/iris/tests/graphics/__init__.py b/lib/iris/tests/graphics/__init__.py index c62ac1bf0e..916cabd080 100755 --- a/lib/iris/tests/graphics/__init__.py +++ b/lib/iris/tests/graphics/__init__.py @@ -27,15 +27,15 @@ # Test for availability of matplotlib. # (And remove matplotlib as an iris.tests dependency.) try: - import matplotlib + import matplotlib as mpl # Override any user settings e.g. from matplotlibrc file. - matplotlib.rcdefaults() + mpl.rcdefaults() # Set backend *after* rcdefaults, as we don't want that overridden (#3846). - matplotlib.use("agg") + mpl.use("agg") # Standardise the figure size across matplotlib versions. # This permits matplotlib png image comparison. - matplotlib.rcParams["figure.figsize"] = [8.0, 6.0] + mpl.rcParams["figure.figsize"] = [8.0, 6.0] import matplotlib.pyplot as plt except ImportError: MPL_AVAILABLE = False diff --git a/lib/iris/tests/unit/pandas/test_pandas.py b/lib/iris/tests/unit/pandas/test_pandas.py index c0785459ca..34d1564c1d 100644 --- a/lib/iris/tests/unit/pandas/test_pandas.py +++ b/lib/iris/tests/unit/pandas/test_pandas.py @@ -26,18 +26,18 @@ # used by matplotlib for handling dates. default_units_registry = copy.copy(matplotlib.units.registry) try: - import pandas + import pandas as pd except ImportError: # Disable all these tests if pandas is not installed. - pandas = None + pd = None matplotlib.units.registry = default_units_registry skip_pandas = pytest.mark.skipif( - pandas is None, + pd is None, reason='Test(s) require "pandas", ' "which is not available.", ) -if pandas is not None: +if pd is not None: from iris.coords import AncillaryVariable, AuxCoord, CellMeasure, DimCoord from iris.cube import Cube, CubeList import iris.pandas @@ -234,7 +234,7 @@ def test_time_standard(self): days_to_2000 = 365 * 30 + 7 # pandas Timestamp class cannot handle floats in pandas 1: - index = pandas.MultiIndex.from_product(index_values, names=index_names) + index = pd.MultiIndex.from_product(index_values, names=index_names) data_length = index.nunique() else: index = None @@ -806,9 +806,9 @@ def _create_pandas(index_levels=0, is_series=False): data = np.arange(data_length) * 10 if is_series: - class_ = pandas.Series + class_ = pd.Series else: - class_ = pandas.DataFrame + class_ = pd.DataFrame return class_(data, index=index) @@ -1013,13 +1013,13 @@ def test_multi_phenom(self): assert result == [expected_cube_0, expected_cube_1] def test_empty_series(self): - series = pandas.Series(dtype=object) + series = pd.Series(dtype=object) result = iris.pandas.as_cubes(series) assert result == CubeList() def test_empty_dataframe(self): - df = pandas.DataFrame() + df = pd.DataFrame() result = iris.pandas.as_cubes(df) assert result == CubeList() @@ -1165,7 +1165,7 @@ def _test_dates_common(self, mode=None, alt_calendar=False): datetime_args = [(1971, 1, 1, i, 0, 0) for i in df.index.values] if mode == "index": values = [datetime.datetime(*a) for a in datetime_args] - df.index = pandas.Index(values, name=coord_name) + df.index = pd.Index(values, name=coord_name) elif mode == "numpy": values = [datetime.datetime(*a) for a in datetime_args] df[coord_name] = values