From 7002c7ba5c9dbd46ea585e89f15f5170591a65e1 Mon Sep 17 00:00:00 2001 From: Kaushik Kulkarni Date: Tue, 1 May 2018 17:57:42 -0500 Subject: [PATCH] unpickling of CallWithKwargs --- pymbolic/primitives.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pymbolic/primitives.py b/pymbolic/primitives.py index 667843c..39e6bdb 100644 --- a/pymbolic/primitives.py +++ b/pymbolic/primitives.py @@ -778,6 +778,19 @@ class CallWithKwargs(AlgebraicLeaf): list(self.kw_parameters.items()), key=lambda item: item[0]))) + def __setstate__(self, state): + # CallWithKwargs must override __setstate__ because during pickling the + # kw_parameters are converted to tuple, which needs to be converted + # back to dict. + assert len(self.init_arg_names) == len(state) + function, parameters, kw_parameters = state + + self.function = function + self.parameters = parameters + if not isinstance(kw_parameters, dict): + kw_parameters = dict(kw_parameters) + self.kw_parameters = kw_parameters + mapper_method = intern("map_call_with_kwargs") -- GitLab