From dbb6a5287508485661359773cc70dcfc8497876a Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 22 Aug 2008 23:13:13 +0200 Subject: [PATCH] Split substitution functionality into separate base class. --- src/mapper/substitutor.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/mapper/substitutor.py b/src/mapper/substitutor.py index 2aaffc8..ceed267 100644 --- a/src/mapper/substitutor.py +++ b/src/mapper/substitutor.py @@ -3,7 +3,7 @@ import pymbolic.mapper -class SubstitutionMapper(pymbolic.mapper.IdentityMapper): +class SubstitutionMapperBase(object): def __init__(self, variable_assignments): self.assignments = variable_assignments @@ -28,11 +28,19 @@ class SubstitutionMapper(pymbolic.mapper.IdentityMapper): -def substitute(expression, variable_assignments = {}): +class SubstitutionMapper(SubstitutionMapperBase, + pymbolic.mapper.IdentityMapper): + pass + + + + +def substitute(expression, variable_assignments = {}, + mapper_class=SubstitutionMapper): import pymbolic.primitives as primitives new_var_ass = {} for k, v in variable_assignments.iteritems(): new_var_ass[primitives.make_variable(k)] = v - return SubstitutionMapper(new_var_ass)(expression) + return mapper_class(new_var_ass)(expression) -- GitLab