def set(self, *args, **kwds): args = [arg for arg in args if arg] options = { 'max_items': 2, 'allow_dict': True, } for table_name, as_ in parse_args(options, *args, **kwds): self.append_unique_part(Table(table_name, as_)) return self
def set(self, *args, **kwds): options = { 'min_items': 2, 'max_items': 2, 'allow_dict': True, 'allow_list': True, } for column_name, value in parse_args(options, *args, **kwds): self.append_unique_part(Value(column_name, value)) return self
def columns(self, *args, **kwds): options = { 'max_items': 2, 'allow_dict': True, } for column_name, alias in parse_args(options, *args, **kwds): column = Column(column_name, alias) if column not in self: self.append_part(column) return self
def order(self, *args, **kwds): options = { 'max_items': 2, 'allow_dict': True, } for column_name, sort in parse_args(options, *args, **kwds): order = self._find_order_by_column_name(column_name) if order is None: order = Order(column_name, sort) self.append_part(order) else: order.sort = sort return self
def where(self, *args, **kwds): options = { 'min_items': 2, 'max_items': 2, 'allow_dict': True, 'allow_list': True, } if args and all(isinstance(item, (Conditions, ConditionsOfConditions)) for item in args): for item in args: self.append_unique_part(item) else: for column_name, value in parse_args(options, *args, **kwds): self.append_unique_part(self._condition_class(column_name, value)) return self