예제 #1
0
 def compose(self, args, optargs):
     if self.bracket_operator:
         if needs_wrap(self._args[0]):
             args[0] = T('r.expr(', args[0], ')')
         return T(args[0], '[', args[1], ':', args[2], ']')
     else:
         return RqlBracketQuery.compose(self, args, optargs)
예제 #2
0
 def compose(self, args, optargs):
     if self.bracket_operator:
         if needs_wrap(self._args[0]):
             args[0] = T('r.expr(', args[0], ')')
         return T(args[0], '[', T(*args[1:], intsp=[',']), ']')
     else:
         return RqlMethodQuery.compose(self, args, optargs)
예제 #3
0
 def compose(self, args, optargs):
     t_args = [
         T('r.expr(', args[i], ')')
         if needs_wrap(self._args[i]) else args[i]
         for i in xrange(len(args))
     ]
     return T('(', T(*t_args, intsp=[' ', self.st, ' ']), ')')
예제 #4
0
 def compose(self, args, optargs):
     return T(
         'lambda ',
         T(*[
             v.compose([v._args[0].compose(None, None)], [])
             for v in self.vrs
         ],
           intsp=', '), ': ', args[1])
예제 #5
0
    def compose(self, args, optargs):
        t_args = [T('r.expr(', args[i], ')')
                  if needs_wrap(self._args[i]) else args[i]
                  for i in xrange(len(args))]

        if self.infix:
            return T('(', T(*t_args, intsp=[' ', self.statement_infix, ' ']), ')')
        else:
            return T('r.', self.statement, '(', T(*t_args, intsp=', '), ')')
예제 #6
0
    def compose(self, args, optargs):
        if len(args) != 2:
            return T('r.do(', T(T(*(args[1:]), intsp=', '), args[0],
                                intsp=', '), ')')

        if isinstance(self._args[1], Datum):
            args[1] = T('r.expr(', args[1], ')')

        return T(args[1], '.do(', args[0], ')')
예제 #7
0
    def compose(self, args, optargs):
        if len(args) == 0:
            return T('r.', self.statement, '()')

        if needs_wrap(self._args[0]):
            args[0] = T('r.expr(', args[0], ')')

        restargs = args[1:]
        restargs.extend([T(k, '=', v) for k, v in dict_items(optargs)])
        restargs = T(*restargs, intsp=', ')

        return T(args[0], '.', self.statement, '(', restargs, ')')
예제 #8
0
 def compose(self, args, optargs):
     if isinstance(self._args[0], Datum):
         args[0] = T('r.expr(', args[0], ')')
     return T('(~', args[0], ')')
예제 #9
0
 def compose(self, args, optargs):
     return T('r.expr({', T(*[T(repr(key), ': ', value)
                              for key, value in dict_items(optargs)],
                            intsp=', '), '})')
예제 #10
0
 def compose(self, args, optargs):
     return T('[', T(*args, intsp=', '), ']')
예제 #11
0
 def compose(self, args, optargs):
     args.extend([T(key, '=', value) for key, value in dict_items(optargs)])
     return T('r.', self.statement, '(', T(*(args), intsp=', '), ')')
예제 #12
0
 def compose(self, args, optargs):
     if len(self._args) == 0:
         return T('r.', self.statement, '(bytes(<data>))')
     else:
         return RqlTopLevelQuery.compose(self, args, optargs)
예제 #13
0
 def compose(self, args, optargs):
     args.extend([T(k, '=', v) for k, v in dict_items(optargs)])
     if isinstance(self._args[0], DB):
         return T(args[0], '.table(', T(*(args[1:]), intsp=', '), ')')
     else:
         return T('r.table(', T(*(args), intsp=', '), ')')
예제 #14
0
 def compose(self, args, optargs):
     args.extend([T(k, '=', v) for k, v in dict_items(optargs)])
     return T('r.', self.st, '(', T(*(args), intsp=', '), ')')