Hi eveyone,
I'm developing an web application which has to interact with "user-
defined formulas" of some financial kpis.
I decided to use sympy to have a more solid math engine.
Basically the input I reiceve is very simple, it might be in the worst
case something like:
kpi -> "(log(sum('production'))*count('sales')/min('spread')" (this
formula is totally made-up)
I defined some functions to interact with the database according to
the official docs and they seem to be working:
For example defining
from sympy.core.function import Function
class SUM(Function):
nargs = 2
@classmethod
def eval(cls, arg):
map = Code("""function () {
emit("sum",{%(field)s:this.%(field)s});
}""" % {'field':arg})
reduce = Code("""
function(key, values) {
var sum = 0;
values.forEach(function(doc) {
if (doc.%(field)s != undefined){
sum += doc.%(field)s;
}
});
return {%(field)s:sum};
};""" % {'field':arg})
result = db.people.map_reduce(map, reduce, "myresults")
return result.find_one()['value'][unicode(arg)]
#EOF
Then from the command line I can type:
>>> print SUM("field")
>>> 1923
But when I try to use sympify my function doesn't evaluate..
>>> print sympify("SUM('field')").evalf()
>>> SUM(field)
>>> N("SUM('field')")
>>> SUM(field)
Am I doing anything wrong?
Thanks in advance!
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sympy?hl=en.