From 758a528512b89ff60edade78bc847d72cbdc5931 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Aug 2016 18:49:57 -0500 Subject: [PATCH] Fix persistent hashing for expression kernel --- sumpy/kernel.py | 13 ++++++++++++- sumpy/version.py | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index e1e8c671..becc99c0 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -244,7 +244,8 @@ class ExpressionKernel(Kernel): self.is_complex_valued = is_complex_valued def __getinitargs__(self): - return (self._dim,) + return (self._dim, self.expression, self.scaling, + self.is_complex_valued) def __repr__(self): if self._dim is not None: @@ -282,6 +283,16 @@ class ExpressionKernel(Kernel): from sumpy.symbolic import PymbolicToSympyMapperWithSymbols return PymbolicToSympyMapperWithSymbols()(self.scaling) + def update_persistent_hash(self, key_hash, key_builder): + key_hash.update(type(self).__name__.encode("utf8")) + for name, value in zip(self.init_arg_names, self.__getinitargs__()): + if name in ["expression", "scaling"]: + from pymbolic.mapper.persistent_hash import ( + PersistentHashWalkMapper as PersistentHashWalkMapper) + PersistentHashWalkMapper(key_hash)(value) + else: + key_builder.rec(key_hash, value) + mapper_method = "map_expression_kernel" diff --git a/sumpy/version.py b/sumpy/version.py index 5cc1934d..a19f3dda 100644 --- a/sumpy/version.py +++ b/sumpy/version.py @@ -25,4 +25,4 @@ VERSION = (2016, 1) VERSION_STATUS = "beta1" VERSION_TEXT = ".".join(str(x) for x in VERSION) + VERSION_STATUS -KERNEL_VERSION = 7 +KERNEL_VERSION = 8 -- GitLab