From 1f6a4111b09651d2af606691290a1c1823431e3d Mon Sep 17 00:00:00 2001 From: Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:16:46 +0100 Subject: [PATCH 1/3] Apply ruff/flake8-simplify rule SIM101 SIM101 Multiple `isinstance` calls for expression, merge into a single call --- xarray/core/dataset.py | 8 ++------ xarray/core/utils.py | 3 +-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index 4593fd62730..4360a310f72 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -1727,7 +1727,7 @@ def _setitem_check(self, key, value): new_value[name] = duck_array_ops.astype(val, dtype=var_k.dtype, copy=False) # check consistency of dimension sizes and dimension coordinates - if isinstance(value, DataArray) or isinstance(value, Dataset): + if isinstance(value, DataArray | Dataset): align(self[key], value, join="exact", copy=False) return new_value @@ -10036,11 +10036,7 @@ def curvefit( else: reduce_dims_ = list(reduce_dims) - if ( - isinstance(coords, str) - or isinstance(coords, DataArray) - or not isinstance(coords, Iterable) - ): + if isinstance(coords, str | DataArray) or not isinstance(coords, Iterable): coords = [coords] coords_: Sequence[DataArray] = [ self[coord] if isinstance(coord, str) else coord for coord in coords diff --git a/xarray/core/utils.py b/xarray/core/utils.py index 640708ace45..f5e9d25725f 100644 --- a/xarray/core/utils.py +++ b/xarray/core/utils.py @@ -1073,8 +1073,7 @@ def contains_only_chunked_or_numpy(obj) -> bool: return all( [ - isinstance(var._data, ExplicitlyIndexed) - or isinstance(var._data, np.ndarray) + isinstance(var._data, ExplicitlyIndexed | np.ndarray) or is_chunked_array(var._data) for var in obj._variables.values() ] From bada811c42f5145f671fe95e059d499fbb38cc85 Mon Sep 17 00:00:00 2001 From: Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:17:40 +0100 Subject: [PATCH 2/3] Apply ruff/flake8-simplify rule SIM110 SIM110 Use `return any()` instead of `for` loop --- xarray/core/utils.py | 5 +---- xarray/tests/test_plot.py | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/xarray/core/utils.py b/xarray/core/utils.py index f5e9d25725f..0be1b23ace5 100644 --- a/xarray/core/utils.py +++ b/xarray/core/utils.py @@ -187,10 +187,7 @@ def equivalent(first: T, second: T) -> bool: def list_equiv(first: Sequence[T], second: Sequence[T]) -> bool: if len(first) != len(second): return False - for f, s in zip(first, second, strict=True): - if not equivalent(f, s): - return False - return True + return all(equivalent(f, s) for f, s in zip(first, second, strict=True)) def peek_at(iterable: Iterable[T]) -> tuple[T, Iterator[T]]: diff --git a/xarray/tests/test_plot.py b/xarray/tests/test_plot.py index 2605e387360..7b956177a9c 100644 --- a/xarray/tests/test_plot.py +++ b/xarray/tests/test_plot.py @@ -102,10 +102,7 @@ def substring_in_axes(substring: str, ax: mpl.axes.Axes) -> bool: Return True if a substring is found anywhere in an axes """ alltxt: set[str] = {t.get_text() for t in ax.findobj(mpl.text.Text)} # type: ignore[attr-defined] # mpl error? - for txt in alltxt: - if substring in txt: - return True - return False + return any(substring in txt for txt in alltxt) def substring_not_in_axes(substring: str, ax: mpl.axes.Axes) -> bool: From 865a0068ed1c7d51995c4cbe8f46c1dea5923633 Mon Sep 17 00:00:00 2001 From: Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:18:32 +0100 Subject: [PATCH 3/3] Apply ruff/flake8-simplify rule SIM910 SIM910 Use `.get(...)` instead of `.get(..., None)` --- xarray/backends/common.py | 2 +- xarray/backends/plugins.py | 2 +- xarray/core/coordinates.py | 2 +- xarray/core/dataset.py | 2 +- xarray/core/missing.py | 2 +- xarray/core/nputils.py | 2 +- xarray/plot/dataarray_plot.py | 2 +- xarray/plot/facetgrid.py | 12 ++++++------ xarray/plot/utils.py | 4 ++-- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/xarray/backends/common.py b/xarray/backends/common.py index 9563409d7fa..57542a8e8f4 100644 --- a/xarray/backends/common.py +++ b/xarray/backends/common.py @@ -104,7 +104,7 @@ def _find_absolute_paths( ['common.py'] """ if isinstance(paths, str): - if is_remote_uri(paths) and kwargs.get("engine", None) == "zarr": + if is_remote_uri(paths) and kwargs.get("engine") == "zarr": try: from fsspec.core import get_fs_token_paths except ImportError as e: diff --git a/xarray/backends/plugins.py b/xarray/backends/plugins.py index dc12982d103..e1ad6c5c4a3 100644 --- a/xarray/backends/plugins.py +++ b/xarray/backends/plugins.py @@ -93,7 +93,7 @@ def sort_backends( ) -> dict[str, type[BackendEntrypoint]]: ordered_backends_entrypoints = {} for be_name in STANDARD_BACKENDS_ORDER: - if backend_entrypoints.get(be_name, None) is not None: + if backend_entrypoints.get(be_name) is not None: ordered_backends_entrypoints[be_name] = backend_entrypoints.pop(be_name) ordered_backends_entrypoints.update( {name: backend_entrypoints[name] for name in sorted(backend_entrypoints)} diff --git a/xarray/core/coordinates.py b/xarray/core/coordinates.py index c4a082f22b7..29ce5eceb28 100644 --- a/xarray/core/coordinates.py +++ b/xarray/core/coordinates.py @@ -1108,7 +1108,7 @@ def create_coords_with_default_indexes( # extract and merge coordinates and indexes from input DataArrays if dataarray_coords: - prioritized = {k: (v, indexes.get(k, None)) for k, v in variables.items()} + prioritized = {k: (v, indexes.get(k)) for k, v in variables.items()} variables, indexes = merge_coordinates_without_align( dataarray_coords + [new_coords], prioritized=prioritized, diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index 4360a310f72..836c24b1f3f 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -7002,7 +7002,7 @@ def reduce( math_scores (student) float64 24B 91.0 82.5 96.5 english_scores (student) float64 24B 91.0 80.5 94.5 """ - if kwargs.get("axis", None) is not None: + if kwargs.get("axis") is not None: raise ValueError( "passing 'axis' to Dataset reduce methods is ambiguous." " Please use 'dim' instead." diff --git a/xarray/core/missing.py b/xarray/core/missing.py index 4523e4f8232..7ea171fbe1b 100644 --- a/xarray/core/missing.py +++ b/xarray/core/missing.py @@ -485,7 +485,7 @@ def _get_interpolator( # take higher dimensional data but scipy.interp1d can. if ( method == "linear" - and not kwargs.get("fill_value", None) == "extrapolate" + and not kwargs.get("fill_value") == "extrapolate" and not vectorizeable_only ): kwargs.update(method=method) diff --git a/xarray/core/nputils.py b/xarray/core/nputils.py index 70ddeb813f3..a667f390fea 100644 --- a/xarray/core/nputils.py +++ b/xarray/core/nputils.py @@ -176,7 +176,7 @@ def __setitem__(self, key, value): def _create_method(name, npmodule=np) -> Callable: def f(values, axis=None, **kwargs): - dtype = kwargs.get("dtype", None) + dtype = kwargs.get("dtype") bn_func = getattr(bn, name, None) if ( diff --git a/xarray/plot/dataarray_plot.py b/xarray/plot/dataarray_plot.py index b759f0bb944..adf0f2e9906 100644 --- a/xarray/plot/dataarray_plot.py +++ b/xarray/plot/dataarray_plot.py @@ -1030,7 +1030,7 @@ def newplotfunc( cbar_kwargs["label"] = label_from_attrs(hueplt_norm.data) _add_colorbar( - primitive, ax, kwargs.get("cbar_ax", None), cbar_kwargs, cmap_params + primitive, ax, kwargs.get("cbar_ax"), cbar_kwargs, cmap_params ) if add_legend_: diff --git a/xarray/plot/facetgrid.py b/xarray/plot/facetgrid.py index c98d318923e..b83f05a35a5 100644 --- a/xarray/plot/facetgrid.py +++ b/xarray/plot/facetgrid.py @@ -337,7 +337,7 @@ def map_dataarray( """ - if kwargs.get("cbar_ax", None) is not None: + if kwargs.get("cbar_ax") is not None: raise ValueError("cbar_ax not supported by FacetGrid.") cmap_params, cbar_kwargs = _process_cmap_cbar_kwargs( @@ -363,7 +363,7 @@ def map_dataarray( x=x, y=y, imshow=func.__name__ == "imshow", - rgb=kwargs.get("rgb", None), + rgb=kwargs.get("rgb"), ) for d, ax in zip(self.name_dicts.flat, self.axs.flat, strict=True): @@ -421,7 +421,7 @@ def map_plot1d( # not sure how much that is used outside these tests. self.data = self.data.copy() - if kwargs.get("cbar_ax", None) is not None: + if kwargs.get("cbar_ax") is not None: raise ValueError("cbar_ax not supported by FacetGrid.") if func.__name__ == "scatter": @@ -537,8 +537,8 @@ def map_plot1d( add_colorbar, add_legend = _determine_guide( hueplt_norm, sizeplt_norm, - kwargs.get("add_colorbar", None), - kwargs.get("add_legend", None), + kwargs.get("add_colorbar"), + kwargs.get("add_legend"), # kwargs.get("add_guide", None), # kwargs.get("hue_style", None), ) @@ -622,7 +622,7 @@ def map_dataset( kwargs["add_guide"] = False - if kwargs.get("markersize", None): + if kwargs.get("markersize"): kwargs["size_mapping"] = _parse_size( self.data[kwargs["markersize"]], kwargs.pop("size_norm", None) ) diff --git a/xarray/plot/utils.py b/xarray/plot/utils.py index 1d61c5afc74..7727ff5060a 100644 --- a/xarray/plot/utils.py +++ b/xarray/plot/utils.py @@ -917,7 +917,7 @@ def _process_cmap_cbar_kwargs( # Leave user to specify cmap settings for surface plots kwargs["cmap"] = cmap return { - k: kwargs.get(k, None) + k: kwargs.get(k) for k in ["vmin", "vmax", "cmap", "extend", "levels", "norm"] }, {} @@ -1828,7 +1828,7 @@ def _guess_coords_to_plot( default_guess, available_coords, ignore_guess_kwargs, strict=False ): if coords_to_plot.get(k, None) is None and all( - kwargs.get(ign_kw, None) is None for ign_kw in ign_kws + kwargs.get(ign_kw) is None for ign_kw in ign_kws ): coords_to_plot[k] = dim