From 7dc751e6764a3695c99ef0900c0e6261ab13f58a Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Thu, 19 May 2022 14:06:41 -0500
Subject: [PATCH] M2LTranslationBase: mark immutable, fix equality comparison

---
 sumpy/expansion/m2l.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py
index 8e61f125..be1a9300 100644
--- a/sumpy/expansion/m2l.py
+++ b/sumpy/expansion/m2l.py
@@ -140,6 +140,14 @@ class M2LTranslationBase:
     use_fft = False
     use_preprocessing = False
 
+    def __setattr__(self):
+        # These are intended to be stateless.
+        raise AttributeError(f"{type(self)} is stateless and does not permit "
+                "attribute modification.")
+
+    def __eq__(self, other):
+        return type(self) is type(other)
+
     def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale,
             dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None):
         raise NotImplementedError
-- 
GitLab