From 31a2f1fe0633312dc5d7bba109cd1058c09898d5 Mon Sep 17 00:00:00 2001 From: Brendan Collins Date: Thu, 25 Jun 2026 11:44:31 -0700 Subject: [PATCH 1/2] Style: join backslash-continued import in geotiff test (isort) The deferred reader re-export import in xrspatial/geotiff/tests/unit/test_exception_exports_3265.py used a backslash continuation but joins to 83 chars, under the configured line_length=100, so isort wants it on one line. Formatting only, no behaviour change. flake8 and isort are clean across the geotiff subpackage after this change. Also records the geotiff row in the style-sweep state CSV. --- .claude/sweep-style-state.csv | 2 +- xrspatial/geotiff/tests/unit/test_exception_exports_3265.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.claude/sweep-style-state.csv b/.claude/sweep-style-state.csv index 693c95413..0084f3d0b 100644 --- a/.claude/sweep-style-state.csv +++ b/.claude/sweep-style-state.csv @@ -7,7 +7,7 @@ dasymetric,2026-06-20,3411,HIGH,1;3;4,"F401 is_dask_cupy unused (HIGH); E128 lin 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." +geotiff,2026-06-25,,MEDIUM,4,"Re-sweep 2026-06-25 (file last modified 2026-06-24). flake8 baseline 0 across all 35 production files AND all tests (flake8 7.x, max-line-length=100). Cat 4 only: one isort (line_length=100) finding in tests/unit/test_exception_exports_3265.py - the deferred 'from xrspatial.geotiff._reader import PixelSafetyLimitError as reader_pixel_err' was written with a backslash continuation but joins to 83 chars, so isort wants it on one line. Joined it; formatting only, no behaviour change. Cat 1/2/3/5 clean: no E/W/F codes; grep hits for == False (a comment), ': dict'/': list' annotations, and type=getaddrinfo kwarg are false positives (not shadowed builtins or comparisons). isort+flake8 clean after fix; tests collect ok. Issue-create denied by auto-mode classifier; fix committed to deep-sweep branch; PR attempted." hydro-d8,2026-05-29,2705,HIGH,1;3;4,"flake8+isort over the 13 D8 files only (dinf/mfd out of scope). Cat 3 HIGH: F401 x2 (flow_length_d8 function-local _compute_accum_seeds never called; snap_pour_point_d8 module-level cuda_args unused) - both confirmed dead, no re-export. Cat 1: E127/E128 continuation-indent x90 (mostly multi-line def signatures); E302/E303 blank-line cluster in watershed_d8; E501 x4 (flow_path_d8 + snap_pour_point_d8, wrapped ternaries). Cat 4: isort import-block reordering on all 13 files. No Cat 2 (W-codes), no Cat 5 (grep clean: no bare except, mutable defaults, ==None/==True, or shadowed builtins). flake8+isort clean after fix; 385 D8 tests pass. flow_direction_d8 needed manual blank-line placement to satisfy both isort and E302." interpolate,2026-06-12,3286,HIGH,3;4,"Full subpackage sweep (_idw, _kriging, _spline, _validation). Cat 3 F401: unused 'import math' in _idw.py L5 (IDW kernels are pure arithmetic; _spline.py keeps math for math.log in TPS kernels; not re-exported, __init__ exports only idw/kriging/spline). Cat 4 isort: _idw.py + _spline.py 5-line xrspatial.utils from-import reflowed to 2 lines under line_length=100, matching _kriging.py from #2916. Cat 1/2/5 clean (no E/W codes; grep: no bare except, mutable defaults, ==None/True, shadowed builtins). flake8+isort clean after fix; 66 interpolation tests pass (CUDA available). PR open." interpolate-kriging,2026-06-04,2916,MEDIUM,1;4,"flake8 E128 x2: continuation-line under-indent at the _chunk_var kriging-predict calls in _kriging_dask_numpy (L234) and _kriging_dask_cupy (L324); re-indented to visual-indent column. Cat 4 isort: 5-line from xrspatial.utils (...) block collapses to one 88-char line under line_length=100. Cat 2/3/5 grep clean (no W-codes, F-codes, bare except, mutable defaults, ==None/True, or shadowed builtins). flake8+isort clean after fix; 14 kriging tests pass. PR open." diff --git a/xrspatial/geotiff/tests/unit/test_exception_exports_3265.py b/xrspatial/geotiff/tests/unit/test_exception_exports_3265.py index 4b4c937cf..6bda37214 100644 --- a/xrspatial/geotiff/tests/unit/test_exception_exports_3265.py +++ b/xrspatial/geotiff/tests/unit/test_exception_exports_3265.py @@ -38,8 +38,7 @@ def test_public_names_are_the_private_definitions_3265(): assert g.PixelSafetyLimitError is PixelSafetyLimitError assert g.CloudSizeLimitError is CloudSizeLimitError # The historical _reader re-export surface is unchanged too. - from xrspatial.geotiff._reader import \ - PixelSafetyLimitError as reader_pixel_err + from xrspatial.geotiff._reader import PixelSafetyLimitError as reader_pixel_err assert g.PixelSafetyLimitError is reader_pixel_err From 13a6f07dc79e26a9a5d97db9ab22689dc1fdeea9 Mon Sep 17 00:00:00 2001 From: Brendan Collins Date: Thu, 25 Jun 2026 11:45:01 -0700 Subject: [PATCH 2/2] Record PR #3517 in geotiff style-sweep state row --- .claude/sweep-style-state.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.claude/sweep-style-state.csv b/.claude/sweep-style-state.csv index 0084f3d0b..1d4498afd 100644 --- a/.claude/sweep-style-state.csv +++ b/.claude/sweep-style-state.csv @@ -7,7 +7,7 @@ dasymetric,2026-06-20,3411,HIGH,1;3;4,"F401 is_dask_cupy unused (HIGH); E128 lin 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-25,,MEDIUM,4,"Re-sweep 2026-06-25 (file last modified 2026-06-24). flake8 baseline 0 across all 35 production files AND all tests (flake8 7.x, max-line-length=100). Cat 4 only: one isort (line_length=100) finding in tests/unit/test_exception_exports_3265.py - the deferred 'from xrspatial.geotiff._reader import PixelSafetyLimitError as reader_pixel_err' was written with a backslash continuation but joins to 83 chars, so isort wants it on one line. Joined it; formatting only, no behaviour change. Cat 1/2/3/5 clean: no E/W/F codes; grep hits for == False (a comment), ': dict'/': list' annotations, and type=getaddrinfo kwarg are false positives (not shadowed builtins or comparisons). isort+flake8 clean after fix; tests collect ok. Issue-create denied by auto-mode classifier; fix committed to deep-sweep branch; PR attempted." +geotiff,2026-06-25,,MEDIUM,4,"Re-sweep 2026-06-25 (file last modified 2026-06-24). flake8 baseline 0 across all 35 production files AND all tests (flake8 7.x, max-line-length=100). Cat 4 only: one isort (line_length=100) finding in tests/unit/test_exception_exports_3265.py - the deferred 'from xrspatial.geotiff._reader import PixelSafetyLimitError as reader_pixel_err' was written with a backslash continuation but joins to 83 chars, so isort wants it on one line. Joined it; formatting only, no behaviour change. Cat 1/2/3/5 clean: no E/W/F codes; grep hits for == False (a comment), ': dict'/': list' annotations, and type=getaddrinfo kwarg are false positives (not shadowed builtins or comparisons). isort+flake8 clean after fix; tests collect ok. Issue-create denied by auto-mode classifier; fix committed to deep-sweep branch; PR #3517 opened." hydro-d8,2026-05-29,2705,HIGH,1;3;4,"flake8+isort over the 13 D8 files only (dinf/mfd out of scope). Cat 3 HIGH: F401 x2 (flow_length_d8 function-local _compute_accum_seeds never called; snap_pour_point_d8 module-level cuda_args unused) - both confirmed dead, no re-export. Cat 1: E127/E128 continuation-indent x90 (mostly multi-line def signatures); E302/E303 blank-line cluster in watershed_d8; E501 x4 (flow_path_d8 + snap_pour_point_d8, wrapped ternaries). Cat 4: isort import-block reordering on all 13 files. No Cat 2 (W-codes), no Cat 5 (grep clean: no bare except, mutable defaults, ==None/==True, or shadowed builtins). flake8+isort clean after fix; 385 D8 tests pass. flow_direction_d8 needed manual blank-line placement to satisfy both isort and E302." interpolate,2026-06-12,3286,HIGH,3;4,"Full subpackage sweep (_idw, _kriging, _spline, _validation). Cat 3 F401: unused 'import math' in _idw.py L5 (IDW kernels are pure arithmetic; _spline.py keeps math for math.log in TPS kernels; not re-exported, __init__ exports only idw/kriging/spline). Cat 4 isort: _idw.py + _spline.py 5-line xrspatial.utils from-import reflowed to 2 lines under line_length=100, matching _kriging.py from #2916. Cat 1/2/5 clean (no E/W codes; grep: no bare except, mutable defaults, ==None/True, shadowed builtins). flake8+isort clean after fix; 66 interpolation tests pass (CUDA available). PR open." interpolate-kriging,2026-06-04,2916,MEDIUM,1;4,"flake8 E128 x2: continuation-line under-indent at the _chunk_var kriging-predict calls in _kriging_dask_numpy (L234) and _kriging_dask_cupy (L324); re-indented to visual-indent column. Cat 4 isort: 5-line from xrspatial.utils (...) block collapses to one 88-char line under line_length=100. Cat 2/3/5 grep clean (no W-codes, F-codes, bare except, mutable defaults, ==None/True, or shadowed builtins). flake8+isort clean after fix; 14 kriging tests pass. PR open."