Skip to content

Commit 5dd0772

Browse files
authored
Fix unpickling by defining __setstate__ (#302)
1 parent 49dfd6a commit 5dd0772

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

cf_xarray/accessor.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -933,6 +933,9 @@ def __init__(self, obj):
933933
self._obj = obj
934934
self._all_cell_measures = None
935935

936+
def __setstate__(self, d):
937+
self.__dict__ = d
938+
936939
def _assert_valid_other_comparison(self, other):
937940
flag_dict = create_flag_dict(self._obj)
938941
if other not in flag_dict:

cf_xarray/tests/test_accessor.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import itertools
2+
import pickle
23
from textwrap import dedent
34
from urllib.request import urlopen
45

@@ -1545,3 +1546,10 @@ def test_missing_variables():
15451546
ds = vert.copy(deep=True)
15461547
ds = ds.drop_vars("ap")
15471548
assert ds.cf.formula_terms == {"lev": {"b": "b", "ps": "ps"}}
1549+
1550+
1551+
def test_pickle():
1552+
da = xr.DataArray([1.0], name="a")
1553+
ds = da.to_dataset()
1554+
pickle.loads(pickle.dumps(da.cf))
1555+
pickle.loads(pickle.dumps(ds.cf))

0 commit comments

Comments
 (0)