Skip to content

Commit f7dc185

Browse files
Fix grib field serialisation (#812)
* Fix grib field serialisation
1 parent dc438bf commit f7dc185

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

docs/release_notes/version_0.16_updates.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
Version 0.16 Updates
22
/////////////////////////
33

4+
5+
Version 0.16.7
6+
===============
7+
8+
Fixes
9+
++++++++
10+
11+
- Fixed issue when the serialisation of a GRIB field loaded from disk did not work (:pr:`812`)
12+
13+
414
Version 0.16.6
515
===============
616

src/earthkit/data/readers/grib/codes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ def clone(self, **kwargs):
356356
return ClonedGribField(self, **kwargs)
357357

358358
def __getstate__(self):
359-
state = super().__getstate__()
359+
state = dict()
360360
state["path"] = self.path
361361
state["offset"] = self._offset
362362
state["length"] = self._length

tests/grib/test_grib_serialise.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,19 @@ def test_grib_serialise_metadata(fl_type, representation):
6060
assert md[k] == md2[k]
6161

6262

63+
@pytest.mark.parametrize("fl_type", FL_NUMPY)
64+
@pytest.mark.parametrize("representation", ["file", "memory"])
65+
def test_grib_serialise_field(fl_type, representation):
66+
ds, _ = load_grib_data("test.grib", fl_type)
67+
f = ds[0]
68+
69+
f2 = _pickle(f, representation)
70+
71+
keys = ["param", "date", "time", "step", "level", "gridType", "type"]
72+
for k in keys:
73+
assert f.metadata(k) == f2.metadata(k)
74+
75+
6376
@pytest.mark.parametrize("representation", ["file", "memory"])
6477
def test_grib_serialise_standalone_metadata(representation):
6578
ds = from_source("file", earthkit_examples_file("test.grib"))

0 commit comments

Comments
 (0)