From da5cfaf938c7849618862d2437122e0ffccb724b Mon Sep 17 00:00:00 2001
From: Alexandru Fikl <alexfikl@gmail.com>
Date: Mon, 30 May 2022 10:50:11 +0300
Subject: [PATCH] port mappers away from deprecated CachingMapperMixin

---
 pymbolic/geometric_algebra/mapper.py |  8 ++++++--
 pymbolic/mapper/flop_counter.py      | 10 ++++++----
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/pymbolic/geometric_algebra/mapper.py b/pymbolic/geometric_algebra/mapper.py
index 5be6c9c..618fb19 100644
--- a/pymbolic/geometric_algebra/mapper.py
+++ b/pymbolic/geometric_algebra/mapper.py
@@ -31,7 +31,7 @@ from pymbolic.mapper import (
         Collector as CollectorBase,
         IdentityMapper as IdentityMapperBase,
         WalkMapper as WalkMapperBase,
-        CachingMapperMixin
+        CachedMapper,
         )
 from pymbolic.mapper.constant_folder import (
         ConstantFoldingMapper as ConstantFoldingMapperBase)
@@ -170,7 +170,11 @@ class Dimensionalizer(EvaluationMapper):
 
 # {{{ derivative binder
 
-class DerivativeSourceAndNablaComponentCollector(CachingMapperMixin, Collector):
+class DerivativeSourceAndNablaComponentCollector(CachedMapper, Collector):
+    def __init__(self) -> None:
+        Collector.__init__(self)
+        CachedMapper.__init__(self)
+
     def map_nabla(self, expr):
         raise RuntimeError("DerivativeOccurrenceMapper must be invoked after "
                 "Dimensionalizer--Nabla found, not allowed")
diff --git a/pymbolic/mapper/flop_counter.py b/pymbolic/mapper/flop_counter.py
index 8dfbd45..ab0ab96 100644
--- a/pymbolic/mapper/flop_counter.py
+++ b/pymbolic/mapper/flop_counter.py
@@ -20,7 +20,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 """
 
-from pymbolic.mapper import CombineMapper, CachingMapperMixin
+from pymbolic.mapper import CombineMapper, CachedMapper
 
 
 class FlopCounterBase(CombineMapper):
@@ -55,9 +55,10 @@ class FlopCounterBase(CombineMapper):
                 self.rec(expr.else_))
 
 
-class FlopCounter(FlopCounterBase, CachingMapperMixin):
-    def map_common_subexpression_uncached(self, expr):
-        return self.rec(expr.child)
+class FlopCounter(CachedMapper, FlopCounterBase):
+    def __init__(self) -> None:
+        FlopCounterBase.__init__(self)
+        CachedMapper.__init__(self)
 
 
 class CSEAwareFlopCounter(FlopCounterBase):
@@ -70,6 +71,7 @@ class CSEAwareFlopCounter(FlopCounterBase):
         reuse may take place.
     """
     def __init__(self):
+        super().__init__()
         self.cse_seen_set = set()
 
     def map_common_subexpression(self, expr):
-- 
GitLab