def _validate(self): # All aggregates are valid for expr in self.agg_exprs: if not rules.is_scalar(expr) or not is_reduction(expr): raise TypeError("Passed a non-aggregate expression: %s" % _safe_repr(expr)) for expr in self.having: if not isinstance(expr, ir.BooleanScalar): raise com.ExpressionError( "Having clause must be boolean " "expression, was: {0!s}".format(_safe_repr(expr)) ) # All non-scalar refs originate from the input table all_exprs = self.agg_exprs + self.by + self.having self.table._assert_valid(all_exprs)
def _validate(self): # All aggregates are valid for expr in self.agg_exprs: if not rules.is_scalar(expr) or not is_reduction(expr): raise TypeError('Passed a non-aggregate expression: %s' % _safe_repr(expr)) for expr in self.having: if not isinstance(expr, ir.BooleanScalar): raise com.ExpressionError('Having clause must be boolean ' 'expression, was: {0!s}'.format( _safe_repr(expr))) # All non-scalar refs originate from the input table all_exprs = self.agg_exprs + self.by + self.having self.table._assert_valid(all_exprs)
def __repr__(self): # Temporary rows = [ 'Sort key:', ' ascending: {0!s}'.format(self.ascending), util.indent(_safe_repr(self.expr), 2) ] return '\n'.join(rows)
def _validate(self, args, types): clean_args = list(args) for i, validator in enumerate(types): try: clean_args[i] = validator.validate(clean_args, i) except IbisTypeError as e: exc = e.args[0] msg = ('Argument {0}: {1}'.format(i, exc) + '\nArgument was: {0}'.format(ir._safe_repr(args[i]))) raise IbisTypeError(msg) return clean_args
def _validate(self, args, types): clean_args = list(args) for i, validator in enumerate(types): try: clean_args[i] = validator.validate(clean_args, i) except IbisTypeError as e: exc = e.message msg = ('Argument {0}: {1}'.format(i, exc) + '\nArgument was: {0}'.format(ir._safe_repr(args[i]))) raise IbisTypeError(msg) return clean_args
def __repr__(self): # Temporary rows = ['Sort key:', ' ascending: {0!s}'.format(self.ascending), util.indent(_safe_repr(self.expr), 2)] return '\n'.join(rows)
def __repr__(self): # Temporary rows = ["Sort key:", " ascending: {0!s}".format(self.ascending), util.indent(_safe_repr(self.expr), 2)] return "\n".join(rows)