Exemplo n.º 1
0
    def compile(self, *args):
        if FuncService.aggr_func(self._func):
            raise Exception("can't be aggr func")

        value = FuncService.exec(self._func)
        self._value = value
        return 0, Const(self.verbose, value)
Exemplo n.º 2
0
 def compile(self, names):
     var_count1, expr1 = self._expr1.compile(names)
     var_count2, expr2 = self._expr2.compile(names)
     var_count3, expr3 = self._expr3.compile(names)
     total_var_count = var_count1 + var_count2 + var_count3
     if total_var_count == 0:
         return 0, FuncService.exec(self._func, expr1.execute(), expr2.execute(), expr3.execute())
     return total_var_count, Func3(self.verbose, self._func, expr1, expr2, expr3)
Exemplo n.º 3
0
 def execute(self, values):
     expr_values = []
     value_list = tuple(values.get(name) for name in self._aggr_names)
     for args in zip(*value_list):
         new_values = dict()
         for name, value in zip(self._aggr_names, args):
             new_values[name] = value
         expr_values.append(self._expr.execute(new_values))
     return FuncService.exec(self._func, expr_values)
Exemplo n.º 4
0
    def compile(self, names):
        total_var_count = 0
        compiled_exps = []
        for exp in self._exps:
            var_count, expr = exp.compile(names)
            total_var_count += var_count
            compiled_exps.append(expr)
        if total_var_count == 0:
            return 0, FuncService.exec(self._func, *tuple(expr.execute() for expr in compiled_exps))

        return FuncN(self.verbose, self._func, compiled_exps)
Exemplo n.º 5
0
 def _execute(self, values):
     args = tuple(expr.execute(values) for expr in self._exps)
     return FuncService.exec(self._func, *args)
Exemplo n.º 6
0
 def _execute(self, values):
     arg1 = self._expr1.execute(values)
     arg2 = self._expr2.execute(values)
     arg3 = self._expr3.execute(values)
     return FuncService.exec(self._func, arg1, arg2, arg3)
Exemplo n.º 7
0
 def compile(self, names):
     var_count1, expr1 = self._expr1.compile(names)
     var_count2, expr2 = self._expr2.compile(names)
     if var_count1 + var_count2 == 0:
         return 0, Const(self.verbose, FuncService.exec(self._func, expr1.execute(), expr2.execute()))
     return var_count1 + var_count2, Func2(self.verbose, self._func, expr1, expr2)
Exemplo n.º 8
0
 def _execute(self, values):
     arg = self._expr.execute(values)
     return FuncService.exec(self._func, arg)
Exemplo n.º 9
0
 def compile(self, names, group_names):
     var_count, _expr = self._expr.compile(names, group_names)
     if var_count == 0:
         return 0, Const(self.verbose, FuncService.exec(self._func, expr.execute()))
     return var_count, Func1(self.verbose, self._func, expr)