From 27b94c94476e6cb00c11cd74e89fe858cc945b12 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Mon, 8 Feb 2016 15:35:02 -0600 Subject: [PATCH] Make loopy kernel Python-hashable --- loopy/kernel/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/loopy/kernel/__init__.py b/loopy/kernel/__init__.py index d125b0dfa..42f83bfdf 100644 --- a/loopy/kernel/__init__.py +++ b/loopy/kernel/__init__.py @@ -1200,6 +1200,13 @@ class LoopKernel(RecordWithoutPickling): for field_name in self.hash_fields: key_builder.rec(key_hash, getattr(self, field_name)) + def __hash__(self): + from loopy.tools import LoopyKeyBuilder + from pytools.persistent_dict import new_hash + key_hash = new_hash() + self.update_persistent_hash(key_hash, LoopyKeyBuilder()) + return hash(key_hash.digest()) + def __eq__(self, other): if not isinstance(other, LoopKernel): return False -- GitLab