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)
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)
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)
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)
def _execute(self, values): args = tuple(expr.execute(values) for expr in self._exps) return FuncService.exec(self._func, *args)
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)
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)
def _execute(self, values): arg = self._expr.execute(values) return FuncService.exec(self._func, arg)
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)