def getSymbol(self, objname, property, nonnegative=False): key = Globals.getPropString(objname, property) r = self.replacements.get(key, key) if type(r) == str: return sympy.Symbol(key, nonnegative=nonnegative, real=True) else: return r
def getFunction(self, objname, property, args=[], nonnegative=False): key = Globals.getPropString(objname, property) r = self.replacements.get(key, None) if r == None: # There is no replacement, create a function f = sympy.Function(key, nonnegative=nonnegative, real=True) if len(args) > 0: return f(*args) else: return f elif type(r) == str: # A replacement here means constant symbol return sympy.Symbol(r, nonnegative=nonnegative, real=True) else: return r
def addReplacement(self, objname, property, value): key = Globals.getPropString(objname, property) val = str(value) expr = Globals.parseExpr(val) self.replacements[key] = expr return expr
def loadGlobals(self, name, aliases): # Fill the replacement table for k, v in aliases.items(): self.aliases[Globals.getPropString(name, k)] = v