diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1c0227a..712d606 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,12 +8,16 @@ on: branches: - main +permissions: + contents: read + pull-requests: read + jobs: test: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout repository diff --git a/makefile b/makefile index aa766f9..d486be5 100644 --- a/makefile +++ b/makefile @@ -1,3 +1,6 @@ +# Python version for environment creation +PYTHON_VERSION ?= 3.14 + .PHONY: clean test build twine-upload dist environment install uninstall reinstall test clean: @@ -23,7 +26,7 @@ dist: make twine-upload environment: - mamba create -y -n rasters python=3.11 jupyter + mamba create -y -n rasters python=$(PYTHON_VERSION) jupyter remove-environment: mamba env remove -y -n rasters diff --git a/pyproject.toml b/pyproject.toml index 18bd003..b8befdf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "rasters" -version = "1.17.1" +version = "1.18.0" description = "raster processing toolkit" readme = "README.md" authors = [ diff --git a/rasters/bbox.py b/rasters/bbox.py index 4672b3b..296812d 100644 --- a/rasters/bbox.py +++ b/rasters/bbox.py @@ -159,6 +159,16 @@ def latlon(self): """ return self.transform(WGS84) + @property + def boundary_latlon(self) -> Polygon: + """ + Returns a Polygon representation of the BBox boundary in WGS84 coordinates. + + Returns: + Polygon: The boundary polygon in WGS84 (latitude/longitude) CRS. + """ + return self.polygon.to_crs(WGS84) + @property def round(self) -> BBox: """