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