From c5170a27cd285c15e370ea879a6ae76ff1acabb5 Mon Sep 17 00:00:00 2001 From: Vecko <36369090+VeckoTheGecko@users.noreply.github.com> Date: Mon, 17 Aug 2026 17:01:03 +0800 Subject: [PATCH 1/2] Decide on keyword only API --- src/parcels/_core/model.py | 3 ++- src/parcels/_core/particleset.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/parcels/_core/model.py b/src/parcels/_core/model.py index 270723a97e..848bf2fd24 100644 --- a/src/parcels/_core/model.py +++ b/src/parcels/_core/model.py @@ -203,6 +203,7 @@ def construct_fields(self) -> list[Field | VectorField]: def from_sgrid_conventions( cls, ds: xr.Dataset, + *, mesh: ptyping.TMesh | None, vector_fields: ptyping.VectorFields | NotSetType, skip_field_data_validation: bool = False, @@ -358,7 +359,7 @@ def scalar_field_names(self) -> list[str]: @classmethod def from_ugrid_conventions( - cls, ds: ux.UxDataset, mesh: ptyping.TMesh, vector_fields: ptyping.VectorFields | NotSetType + cls, ds: ux.UxDataset, *, mesh: ptyping.TMesh, vector_fields: ptyping.VectorFields | NotSetType ): ds_dims = list(ds.dims) if not all(dim in ds_dims for dim in ["time", "zf", "zc"]): diff --git a/src/parcels/_core/particleset.py b/src/parcels/_core/particleset.py index 3b5ecf2aad..fb77851f49 100644 --- a/src/parcels/_core/particleset.py +++ b/src/parcels/_core/particleset.py @@ -60,6 +60,7 @@ def __init__( self, fieldset, pclass=Particle, + *, t=None, z=None, y=None, From b32f39db07053742ebdfc5a62325508c64108c47 Mon Sep 17 00:00:00 2001 From: Vecko <36369090+VeckoTheGecko@users.noreply.github.com> Date: Mon, 17 Aug 2026 17:09:07 +0800 Subject: [PATCH 2/2] Update test suite --- src/parcels/_core/fieldset.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/parcels/_core/fieldset.py b/src/parcels/_core/fieldset.py index 11a1b86caf..9f8ecb8b20 100644 --- a/src/parcels/_core/fieldset.py +++ b/src/parcels/_core/fieldset.py @@ -263,7 +263,7 @@ def from_ugrid_conventions( ----- See https://ugrid-conventions.github.io/ugrid-conventions/ for more information on the UGRID conventions. """ - model = UnstructuredModelData.from_ugrid_conventions(ds, mesh, vector_fields) + model = UnstructuredModelData.from_ugrid_conventions(ds, mesh=mesh, vector_fields=vector_fields) return cls([model]) @classmethod @@ -308,7 +308,7 @@ def from_sgrid_conventions( See https://sgrid.github.io/sgrid/ for more information on the SGRID conventions. """ model = StructuredModelData.from_sgrid_conventions( - ds, mesh, vector_fields, skip_field_data_validation=skip_field_data_validation + ds, mesh=mesh, vector_fields=vector_fields, skip_field_data_validation=skip_field_data_validation ) return cls([model])