From 5f0d5e80615d29725d7e93d1141ec69fd0b1b548 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Mon, 26 Sep 2011 01:07:06 -0400
Subject: [PATCH] Extract substitution function factory for reuse.

---
 pymbolic/mapper/substitutor.py | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/pymbolic/mapper/substitutor.py b/pymbolic/mapper/substitutor.py
index 0b9108a..3742612 100644
--- a/pymbolic/mapper/substitutor.py
+++ b/pymbolic/mapper/substitutor.py
@@ -30,12 +30,9 @@ class SubstitutionMapper(pymbolic.mapper.IdentityMapper):
 
 
 
-  
-def substitute(expression, variable_assignments={}, **kwargs):
-    import pymbolic.primitives as primitives
 
-    variable_assignments = variable_assignments.copy()
-    variable_assignments.update(kwargs)
+def make_subst_func(variable_assignments):
+    import pymbolic.primitives as primitives
 
     def subst_func(var):
         try:
@@ -49,4 +46,13 @@ def substitute(expression, variable_assignments={}, **kwargs):
             else:
                 return None
 
-    return SubstitutionMapper(subst_func)(expression)
+    return subst_func
+
+
+
+
+def substitute(expression, variable_assignments={}, **kwargs):
+    variable_assignments = variable_assignments.copy()
+    variable_assignments.update(kwargs)
+
+    return SubstitutionMapper(make_subst_func(variable_assignments))(expression)
-- 
GitLab