From 300560e21ea15bfc29f00a07bba81add64b3e0eb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 May 2026 13:52:09 +0000 Subject: [PATCH 1/3] Initial plan From 8213977417a2e910555c3b95fe6f88a06bc5b670 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 May 2026 13:54:17 +0000 Subject: [PATCH 2/3] chore: outline plan for pre-commit update workflow change Agent-Logs-Url: https://github.com/MPAS-Dev/geometric_features/sessions/14581662-83c8-46cd-8622-fa1f5c043d50 Co-authored-by: xylar <4179064+xylar@users.noreply.github.com> --- .../extract_bedmachine_coastlines.py | 7 ++++-- .../iceshelves/ice_vel_to_bedmap2.py | 1 - .../iceshelves/write_expanded_overlaps.py | 1 - .../iceshelves/write_iceshelf_distance.py | 1 - .../basin_masks_to_geojson_regions.py | 2 +- geometric_features/__main__.py | 6 +++-- geometric_features/feature_collection.py | 7 ++++-- geometric_features/test/test_aggregation.py | 23 +++++++++++++------ 8 files changed, 31 insertions(+), 17 deletions(-) diff --git a/feature_creation_scripts/extract_bedmachine_coastlines/extract_bedmachine_coastlines.py b/feature_creation_scripts/extract_bedmachine_coastlines/extract_bedmachine_coastlines.py index 7590f087..c8727344 100755 --- a/feature_creation_scripts/extract_bedmachine_coastlines/extract_bedmachine_coastlines.py +++ b/feature_creation_scripts/extract_bedmachine_coastlines/extract_bedmachine_coastlines.py @@ -13,8 +13,11 @@ from shapely.ops import unary_union from skimage import measure -from geometric_features import (FeatureCollection, GeometricFeatures, - read_feature_collection) +from geometric_features import ( + FeatureCollection, + GeometricFeatures, + read_feature_collection, +) from geometric_features.utils import write_feature_names_and_tags """ diff --git a/feature_creation_scripts/iceshelves/ice_vel_to_bedmap2.py b/feature_creation_scripts/iceshelves/ice_vel_to_bedmap2.py index 35818362..728fecc2 100755 --- a/feature_creation_scripts/iceshelves/ice_vel_to_bedmap2.py +++ b/feature_creation_scripts/iceshelves/ice_vel_to_bedmap2.py @@ -5,7 +5,6 @@ from netCDF4 import Dataset matplotlib.use('Agg') -import matplotlib.pyplot as plt import scipy.ndimage.filters as filters from mpl_toolkits.basemap import interp diff --git a/feature_creation_scripts/iceshelves/write_expanded_overlaps.py b/feature_creation_scripts/iceshelves/write_expanded_overlaps.py index 73516635..37fb63ae 100755 --- a/feature_creation_scripts/iceshelves/write_expanded_overlaps.py +++ b/feature_creation_scripts/iceshelves/write_expanded_overlaps.py @@ -7,7 +7,6 @@ from netCDF4 import Dataset matplotlib.use('Agg') -import matplotlib.pyplot as plt import skfmm diff --git a/feature_creation_scripts/iceshelves/write_iceshelf_distance.py b/feature_creation_scripts/iceshelves/write_iceshelf_distance.py index 3d7df3c4..e7b3e992 100755 --- a/feature_creation_scripts/iceshelves/write_iceshelf_distance.py +++ b/feature_creation_scripts/iceshelves/write_iceshelf_distance.py @@ -6,7 +6,6 @@ from netCDF4 import Dataset matplotlib.use('Agg') -import matplotlib.pyplot as plt import scipy.ndimage.morphology as morphology inFileName = 'Bedmap2.nc' diff --git a/feature_creation_scripts/ismip6_landice_basins/basin_masks_to_geojson_regions.py b/feature_creation_scripts/ismip6_landice_basins/basin_masks_to_geojson_regions.py index 2145f2a5..1b42f40c 100755 --- a/feature_creation_scripts/ismip6_landice_basins/basin_masks_to_geojson_regions.py +++ b/feature_creation_scripts/ismip6_landice_basins/basin_masks_to_geojson_regions.py @@ -115,7 +115,7 @@ def basin_masks_to_features(): fc = fc.fix_antimeridian() fc.plot(projection='southpole') - plt.savefig(f'ISMIP6_basins.png') + plt.savefig('ISMIP6_basins.png') for feature in fc.features: fc_plot = FeatureCollection() diff --git a/geometric_features/__main__.py b/geometric_features/__main__.py index 90649705..6b4d8bf9 100644 --- a/geometric_features/__main__.py +++ b/geometric_features/__main__.py @@ -1,8 +1,10 @@ import argparse import os -from geometric_features.feature_collection import (FeatureCollection, - read_feature_collection) +from geometric_features.feature_collection import ( + FeatureCollection, + read_feature_collection, +) from geometric_features.geometric_features import GeometricFeatures from geometric_features.version import __version__ diff --git a/geometric_features/feature_collection.py b/geometric_features/feature_collection.py index 17c9d180..1573a368 100644 --- a/geometric_features/feature_collection.py +++ b/geometric_features/feature_collection.py @@ -16,8 +16,11 @@ import shapely.geometry import shapely.ops -from geometric_features.plot import (build_projections, plot_base, - subdivide_geom) +from geometric_features.plot import ( + build_projections, + plot_base, + subdivide_geom, +) from geometric_features.utils import provenance_command diff --git a/geometric_features/test/test_aggregation.py b/geometric_features/test/test_aggregation.py index fc83106e..f4a80383 100644 --- a/geometric_features/test/test_aggregation.py +++ b/geometric_features/test/test_aggregation.py @@ -1,11 +1,20 @@ from geometric_features import GeometricFeatures -from geometric_features.aggregation import (antarctic, arctic_ocean, - arctic_seaice, arctic_transport, - basins, get_aggregator_by_name, - ice_shelves, ismip6, - ismip6_greenland, moc, - nasa_greenland, qgreenland_seaice, - subbasins, transport) +from geometric_features.aggregation import ( + antarctic, + arctic_ocean, + arctic_seaice, + arctic_transport, + basins, + get_aggregator_by_name, + ice_shelves, + ismip6, + ismip6_greenland, + moc, + nasa_greenland, + qgreenland_seaice, + subbasins, + transport, +) from geometric_features.test import TestCase From c6e331426d14d9f780a581ddd1499f68a512571e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 May 2026 13:55:01 +0000 Subject: [PATCH 3/3] ci: use pre-commit-update in auto-update workflow Agent-Logs-Url: https://github.com/MPAS-Dev/geometric_features/sessions/14581662-83c8-46cd-8622-fa1f5c043d50 Co-authored-by: xylar <4179064+xylar@users.noreply.github.com> --- .../workflows/pre_commit_update_workflow.yml | 7 +++--- .../extract_bedmachine_coastlines.py | 7 ++---- .../iceshelves/ice_vel_to_bedmap2.py | 1 + .../iceshelves/write_expanded_overlaps.py | 1 + .../iceshelves/write_iceshelf_distance.py | 1 + .../basin_masks_to_geojson_regions.py | 2 +- geometric_features/__main__.py | 6 ++--- geometric_features/feature_collection.py | 7 ++---- geometric_features/test/test_aggregation.py | 23 ++++++------------- 9 files changed, 21 insertions(+), 34 deletions(-) diff --git a/.github/workflows/pre_commit_update_workflow.yml b/.github/workflows/pre_commit_update_workflow.yml index 1b563f74..5e4d3e18 100644 --- a/.github/workflows/pre_commit_update_workflow.yml +++ b/.github/workflows/pre_commit_update_workflow.yml @@ -28,8 +28,8 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - - name: Install pre-commit - run: pip install pre-commit + - name: Install pre-commit and pre-commit-update + run: pip install pre-commit pre-commit-update - name: Apply and commit updates run: | @@ -39,7 +39,8 @@ jobs: git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" git config --local user.name "github-actions[bot]" git checkout -b update-pre-commit-deps - pre-commit autoupdate + # pre-commit-update doesn't try to include non-release versions + pre-commit-update git add . # The second command will fail if no changes were present, so we ignore it git commit -m "Update pre-commit dependencies" || ( echo "UP_TO_DATE=true" >> "$GITHUB_ENV") diff --git a/feature_creation_scripts/extract_bedmachine_coastlines/extract_bedmachine_coastlines.py b/feature_creation_scripts/extract_bedmachine_coastlines/extract_bedmachine_coastlines.py index c8727344..7590f087 100755 --- a/feature_creation_scripts/extract_bedmachine_coastlines/extract_bedmachine_coastlines.py +++ b/feature_creation_scripts/extract_bedmachine_coastlines/extract_bedmachine_coastlines.py @@ -13,11 +13,8 @@ from shapely.ops import unary_union from skimage import measure -from geometric_features import ( - FeatureCollection, - GeometricFeatures, - read_feature_collection, -) +from geometric_features import (FeatureCollection, GeometricFeatures, + read_feature_collection) from geometric_features.utils import write_feature_names_and_tags """ diff --git a/feature_creation_scripts/iceshelves/ice_vel_to_bedmap2.py b/feature_creation_scripts/iceshelves/ice_vel_to_bedmap2.py index 728fecc2..35818362 100755 --- a/feature_creation_scripts/iceshelves/ice_vel_to_bedmap2.py +++ b/feature_creation_scripts/iceshelves/ice_vel_to_bedmap2.py @@ -5,6 +5,7 @@ from netCDF4 import Dataset matplotlib.use('Agg') +import matplotlib.pyplot as plt import scipy.ndimage.filters as filters from mpl_toolkits.basemap import interp diff --git a/feature_creation_scripts/iceshelves/write_expanded_overlaps.py b/feature_creation_scripts/iceshelves/write_expanded_overlaps.py index 37fb63ae..73516635 100755 --- a/feature_creation_scripts/iceshelves/write_expanded_overlaps.py +++ b/feature_creation_scripts/iceshelves/write_expanded_overlaps.py @@ -7,6 +7,7 @@ from netCDF4 import Dataset matplotlib.use('Agg') +import matplotlib.pyplot as plt import skfmm diff --git a/feature_creation_scripts/iceshelves/write_iceshelf_distance.py b/feature_creation_scripts/iceshelves/write_iceshelf_distance.py index e7b3e992..3d7df3c4 100755 --- a/feature_creation_scripts/iceshelves/write_iceshelf_distance.py +++ b/feature_creation_scripts/iceshelves/write_iceshelf_distance.py @@ -6,6 +6,7 @@ from netCDF4 import Dataset matplotlib.use('Agg') +import matplotlib.pyplot as plt import scipy.ndimage.morphology as morphology inFileName = 'Bedmap2.nc' diff --git a/feature_creation_scripts/ismip6_landice_basins/basin_masks_to_geojson_regions.py b/feature_creation_scripts/ismip6_landice_basins/basin_masks_to_geojson_regions.py index 1b42f40c..2145f2a5 100755 --- a/feature_creation_scripts/ismip6_landice_basins/basin_masks_to_geojson_regions.py +++ b/feature_creation_scripts/ismip6_landice_basins/basin_masks_to_geojson_regions.py @@ -115,7 +115,7 @@ def basin_masks_to_features(): fc = fc.fix_antimeridian() fc.plot(projection='southpole') - plt.savefig('ISMIP6_basins.png') + plt.savefig(f'ISMIP6_basins.png') for feature in fc.features: fc_plot = FeatureCollection() diff --git a/geometric_features/__main__.py b/geometric_features/__main__.py index 6b4d8bf9..90649705 100644 --- a/geometric_features/__main__.py +++ b/geometric_features/__main__.py @@ -1,10 +1,8 @@ import argparse import os -from geometric_features.feature_collection import ( - FeatureCollection, - read_feature_collection, -) +from geometric_features.feature_collection import (FeatureCollection, + read_feature_collection) from geometric_features.geometric_features import GeometricFeatures from geometric_features.version import __version__ diff --git a/geometric_features/feature_collection.py b/geometric_features/feature_collection.py index 1573a368..17c9d180 100644 --- a/geometric_features/feature_collection.py +++ b/geometric_features/feature_collection.py @@ -16,11 +16,8 @@ import shapely.geometry import shapely.ops -from geometric_features.plot import ( - build_projections, - plot_base, - subdivide_geom, -) +from geometric_features.plot import (build_projections, plot_base, + subdivide_geom) from geometric_features.utils import provenance_command diff --git a/geometric_features/test/test_aggregation.py b/geometric_features/test/test_aggregation.py index f4a80383..fc83106e 100644 --- a/geometric_features/test/test_aggregation.py +++ b/geometric_features/test/test_aggregation.py @@ -1,20 +1,11 @@ from geometric_features import GeometricFeatures -from geometric_features.aggregation import ( - antarctic, - arctic_ocean, - arctic_seaice, - arctic_transport, - basins, - get_aggregator_by_name, - ice_shelves, - ismip6, - ismip6_greenland, - moc, - nasa_greenland, - qgreenland_seaice, - subbasins, - transport, -) +from geometric_features.aggregation import (antarctic, arctic_ocean, + arctic_seaice, arctic_transport, + basins, get_aggregator_by_name, + ice_shelves, ismip6, + ismip6_greenland, moc, + nasa_greenland, qgreenland_seaice, + subbasins, transport) from geometric_features.test import TestCase