From 260d020d4c26b15d86e3e941aca3b4cf35d499cd Mon Sep 17 00:00:00 2001 From: Sandor Kertesz Date: Wed, 11 Mar 2026 09:58:52 +0000 Subject: [PATCH] Calling set without args should return the field itself --- src/earthkit/data/core/field.py | 4 ++++ tests/grib/test_grib_set.py | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/earthkit/data/core/field.py b/src/earthkit/data/core/field.py index 24104d3b..e1bdbf23 100644 --- a/src/earthkit/data/core/field.py +++ b/src/earthkit/data/core/field.py @@ -1022,6 +1022,10 @@ def set(self, *args, **kwargs): raise ValueError(f"Cannot use arg={a}. Only dict allowed.") _kwargs = defaultdict(dict) + + if not kwargs: + return self + _components = dict() for k, v in kwargs.items(): if k in self._components: diff --git a/tests/grib/test_grib_set.py b/tests/grib/test_grib_set.py index 1d529a1c..599b29eb 100644 --- a/tests/grib/test_grib_set.py +++ b/tests/grib/test_grib_set.py @@ -24,8 +24,8 @@ from grib_fixtures import load_grib_data # noqa: E402 -# @pytest.mark.parametrize("fl_type", ["file", "array", "memory"]) -@pytest.mark.parametrize("fl_type", ["file"]) +@pytest.mark.parametrize("fl_type", ["file", "array", "memory"]) +# @pytest.mark.parametrize("fl_type", ["file"]) def test_grib_set_detailed(fl_type): ds_ori, _ = load_grib_data("test4.grib", fl_type) @@ -166,8 +166,7 @@ def test_grib_set_detailed(fl_type): # assert ds_1.metadata("levelist") == [600, 600]x -# @pytest.mark.parametrize("fl_type", ["file", "array", "memory"]) -@pytest.mark.parametrize("fl_type", ["file"]) +@pytest.mark.parametrize("fl_type", ["file", "array", "memory"]) def test_grib_set_combined(fl_type): ds_ori, _ = load_grib_data("test4.grib", fl_type) @@ -435,3 +434,12 @@ def test_grib_copy_to_field(fl_type): assert ds_saved.get("levelist") == [600, 600] assert np.allclose(ds_saved[0].values, vals_ori + 1) assert np.allclose(ds_saved[1].values, vals_ori + 2) + + +@pytest.mark.parametrize("fl_type", ["file"]) +def test_grib_set_no_args(fl_type): + ds, _ = load_grib_data("test4.grib", fl_type) + + f = ds[0] + r = f.set() + assert r is f