code: def interpret(self, values={}, functions={}):
          
          return self.expr.evaluate(Environment(values, functions))
docs: Like `substitute`, but forces the interpreter (rather than
          the compiled version) to be used. The interpreter includes
          exception-handling code for missing variables and buggy template
          functions but is much slower.