From dbd998bd0525d88d8522d1b1a2784f462f59443d Mon Sep 17 00:00:00 2001 From: Brendan Collins Date: Sat, 20 Jun 2026 03:09:45 -0700 Subject: [PATCH] diffusion: drop unused import, sort imports (#3421) Remove the unused not_implemented_func import (flake8 F401) and re-sort the import block to the configured isort line_length=100. The symbol was never referenced and is not re-exported (xrspatial exposes only diffuse), so removing it changes no behaviour. Records the style-sweep state for diffusion in .claude/sweep-style-state.csv. flake8 and isort both clean; test_diffusion.py 25 passed. --- .claude/sweep-style-state.csv | 1 + xrspatial/diffusion.py | 21 ++++----------------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/.claude/sweep-style-state.csv b/.claude/sweep-style-state.csv index affc22392..704f1e737 100644 --- a/.claude/sweep-style-state.csv +++ b/.claude/sweep-style-state.csv @@ -2,6 +2,7 @@ module,last_inspected,issue,severity_max,categories_found,notes aspect,2026-05-29,2683,MEDIUM,1,E402+E305 line 38: from xrspatial.geodesic import block sat below _geodesic_cuda_dims; moved up with top-of-file imports. E501 lines 219/263: wrapped two _run_gpu_geodesic_aspect kernel-launch calls (101/109 chars). Cat 4 isort reviewed but NOT applied: slope.py/curvature.py use one-import-per-line for xrspatial.utils so raw isort would make aspect inconsistent. Cat 2/3/5 grep clean. PR #2740. 82 aspect+geodesic tests pass. contour,2026-05-29,2698,HIGH,3,"F821 line 557: contours() return annotation ""gpd.GeoDataFrame"" referenced gpd not bound at module scope (only imported inside _to_geopandas). Fixed via TYPE_CHECKING-guarded import geopandas as gpd, matching polygonize.py. No runtime change; geopandas stays optional. isort clean. Cat 1/2/4/5 clean. 24 contour tests pass. PR open." cost_distance,2026-06-15,3339,HIGH,1;3;4;5,"Cat 3 F401: removed unused 'from functools import partial' (L32, refactor leftover, not re-exported). Cat 5 mutable default target_values: list = [] was found here too, but the parallel api-consistency PR #3348 fixed it first (same None-sentinel normalization, merged to main); on reconciliation this PR's duplicate source change and its two target_values tests were dropped, so PR #3350 is now lint-only. Cat 1: E302 L63 (1->2 blank lines before @ngjit _heap_push; placed blanks between comment divider and decorator to satisfy both E302 and isort) + E127 x5 (_cost_distance_dask_cupy L461-462, _cost_distance_dask_iterative L1005-1007 signature continuation over-indent). Cat 4 isort: dataset_support before utils, utils from-import reflowed to 100 cols. Cat 2 grep clean. flake8+isort clean on module after fix; cost_distance tests pass (CUDA available). Pre-existing test-file lint (F401 L314/L504, E201 L449, isort drift) left untouched - out of module scope. PR open." +diffusion,2026-06-20,3421,HIGH,3;4,F401 unused not_implemented_func (HIGH); isort import-ordering drift (MEDIUM); no Cat1/2/5. Fixed in PR off issue 3421. fire,2026-06-19,3395,HIGH,3;4,Cat3 F401 math.log unused + F841 S_T unused local; Cat4 isort utils import reorder. No Cat1/2/5. Fixed in #3395 rockout. focal,2026-05-29,2731,HIGH,3;4;5,"F401 not_implemented_func (import line 36, unused, not re-exported). isort: stdlib reorder (import math before from-imports), dropped stray blank lines in import groups, alphabetised+rewrapped convolution/utils from-imports, moved dataset_support import into order. Cat 5: mutable default excludes=[np.nan] in mean() (line 238) -> None sentinel, resolved to [np.nan] in body; never mutated so behaviour preserved; regression test test_mean_default_excludes_does_not_leak added. Cat 1/2 clean. 115 focal tests pass. PR pending." geotiff,2026-06-14,3329,MEDIUM,4,"Re-sweep after #3259: flake8 baseline 0 across all 33 production files (flake8 7.3.0). Cat 4 only: isort (line_length=100) drift in _writers/eager.py (the from .._validation import block wrapped at ~80 cols, not 100); rewrapped, no behavioural change. Cat 1/2/3/5 clean: no E/W/F codes; grep hits for == False (comment), ': dict'/': list' annotations, and type=getaddrinfo kwarg are all false positives, not shadowed builtins or comparisons. isort+flake8 clean after fix; import smoke test ok. PR via #3329." diff --git a/xrspatial/diffusion.py b/xrspatial/diffusion.py index 2179153ac..e1e99eb67 100644 --- a/xrspatial/diffusion.py +++ b/xrspatial/diffusion.py @@ -15,9 +15,8 @@ import numpy as np import xarray as xr -from xarray import DataArray - from numba import cuda, prange +from xarray import DataArray try: import cupy @@ -30,21 +29,9 @@ class cupy: except ImportError: da = None -from xrspatial.utils import ( - ArrayTypeFunctionMapping, - _boundary_to_dask, - _dask_task_name_kwargs, - _pad_array, - _validate_boundary, - _validate_raster, - _validate_scalar, - calc_cuda_dims, - has_cuda_and_cupy, - is_cupy_array, - ngjit, - not_implemented_func, -) - +from xrspatial.utils import (ArrayTypeFunctionMapping, _boundary_to_dask, _dask_task_name_kwargs, + _pad_array, _validate_boundary, _validate_raster, _validate_scalar, + calc_cuda_dims, has_cuda_and_cupy, is_cupy_array, ngjit) # --------------------------------------------------------------------------- # Memory guard