Exemplo n.º 1
0
 def build_Call(ctx, expr):
     func = build_expr(ctx, expr.func)
     args = [build_expr(ctx, py_arg) for py_arg in expr.args]
     if hasattr(expr, 'starargs') and expr.starargs:
         stararg_expr = build_expr(ctx, expr.starargs)
         args += [Starred(stararg_expr.range(), stararg_expr)]
     kwargs = []
     for kw in expr.keywords:
         kw_expr = build_expr(ctx, kw.value)
         # XXX: we could do a better job at figuring out the range for the name here
         if not kw.arg:
             raise NotSupportedError(kw_expr.range(), 'keyword-arg expansion is not supported')
         kwargs.append(Attribute(Ident(kw_expr.range(), kw.arg), kw_expr))
     return Apply(func, args, kwargs)
Exemplo n.º 2
0
 def build_Starred(ctx, expr):
     r = ctx.make_range(expr.lineno, expr.col_offset, expr.col_offset + 1)
     return Starred(r, build_expr(ctx, expr.value))