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