Ejemplo n.º 1
0
 def orderby(self, column, direction='asc'):
     if direction.lower() == 'asc':
         self.__orderby__.append(expr.format_column(column, self.__model__))
     else:
         self.__orderby__.append(
             expr.format_column(column, self.__model__) + ' desc')
     return self
Ejemplo n.º 2
0
 def _compile_tuple(self, data):
     if data[1] in ['in', 'not in']:
         return self._compile_in((data[0], data[1], data[2]))
     elif data[1] in ['between', 'not between']:
         return self._compile_between((data[0], data[1], data[2]))
     return '{} {} {}'.format(expr.format_column(data[0], self.__model__),
                              data[1], expr.format_string(data[2]))
Ejemplo n.º 3
0
 def _compile_increment(self, data):
     subsql = ','.join([
         '{}={}'.format(expr.format_column(index, self.__model__), value)
         for index, value in data.items()
     ])
     return "update {} set {}{}".format(self._tablename(), subsql,
                                        self._compile_where())
Ejemplo n.º 4
0
 def decrement(self, key, amount=1):
     if isinstance(amount, int) and amount > 0:
         data = collections.defaultdict(dict)
         data[key] = '{}-{}'.format(expr.format_column(key, self.__model__),
                                    str(amount))
         data = self._set_update_time(data)
         return self._get_connection().execute(
             self._compile_increment(data))
Ejemplo n.º 5
0
 def _format_columns(self, columns):
     return list(
         map(lambda index: expr.format_column(index, self.__model__),
             columns))
Ejemplo n.º 6
0
 def _compile_keyvalue(self, key, value):
     return '{}={}'.format(expr.format_column(key, self.__model__),
                           expr.format_string(value))
Ejemplo n.º 7
0
 def _compile_between(self, data):
     if not (len(data) == 3 and len(data[2]) == 2):
         raise Exception('between param invalid')
     return '{} {} {} and {}'.format(
         expr.format_column(data[0], self.__model__), data[1],
         expr.format_string(data[2][0]), expr.format_string(data[2][1]))
Ejemplo n.º 8
0
 def _compile_in(self, data):
     return '{} {} {}'.format(expr.format_column(data[0], self.__model__),
                              data[1], expr.list_to_str(data[2]))
Ejemplo n.º 9
0
 def _compile_dict(self, data):
     return [
         '{}={}'.format(expr.format_column(index, self.__model__),
                        expr.format_string(value))
         for index, value in data.items()
     ]
Ejemplo n.º 10
0
 def _format_columns(self, columns):
     return list(map(lambda index: expr.format_column(index), columns))