Esempio n. 1
0
    def visit_call(self, node, parent):
        """visit a CallFunc node by returning a fresh instance of it"""
        newnode = nodes.Call(node.lineno, node.col_offset, parent)
        starargs = _visit_or_none(node, 'starargs', self, newnode)
        kwargs = _visit_or_none(node, 'kwargs', self, newnode)
        args = [self.visit(child, newnode) for child in node.args]

        if node.keywords:
            keywords = [self.visit(child, newnode) for child in node.keywords]
        else:
            keywords = None
        if starargs:
            new_starargs = nodes.Starred(col_offset=starargs.col_offset,
                                         lineno=starargs.lineno,
                                         parent=starargs.parent)
            new_starargs.postinit(value=starargs)
            args.append(new_starargs)
        if kwargs:
            new_kwargs = nodes.Keyword(arg=None,
                                       col_offset=kwargs.col_offset,
                                       lineno=kwargs.lineno,
                                       parent=kwargs.parent)
            new_kwargs.postinit(value=kwargs)
            if keywords:
                keywords.append(new_kwargs)
            else:
                keywords = [new_kwargs]

        newnode.postinit(self.visit(node.func, newnode), args, keywords)
        return newnode
Esempio n. 2
0
 def visit_starred(self, node, parent):
     """visit a Starred node and return a new instance of it"""
     newnode = new.Starred()
     _lineno_parent(node, newnode, parent)
     newnode.value = self.visit(node.value, newnode)
     newnode.set_line_info(newnode.last_child())
     return newnode
Esempio n. 3
0
 def visit_starred(self, node, parent):
     """visit a Starred node and return a new instance of it"""
     context = self._get_context(node)
     newnode = nodes.Starred(ctx=context, lineno=node.lineno,
                             col_offset=node.col_offset,
                             parent=parent)
     newnode.postinit(self.visit(node.value, newnode))
     return newnode
Esempio n. 4
0
    def visit_call(self, node, parent, assign_ctx=None):
        """visit a CallFunc node by returning a fresh instance of it"""
        newnode = new.Call()
        _lineno_parent(node, newnode, parent)
        newnode.func = self.visit(node.func, newnode, assign_ctx)
        args = [self.visit(child, newnode, assign_ctx)
                for child in node.args]

        starargs = _visit_or_none(node, 'starargs', self, newnode,
                                  assign_ctx)
        kwargs = _visit_or_none(node, 'kwargs', self, newnode,
                                assign_ctx)
        keywords = None
        if node.keywords:
            keywords = [self.visit(child, newnode, assign_ctx)
                        for child in node.keywords]

        if starargs:
            new_starargs = new.Starred()
            new_starargs.col_offset = starargs.col_offset
            new_starargs.lineno = starargs.lineno
            new_starargs.parent = starargs.parent
            new_starargs.value = starargs
            args.append(new_starargs)
        if kwargs:
            new_kwargs = new.Keyword()
            new_kwargs.arg = None
            new_kwargs.col_offset = kwargs.col_offset
            new_kwargs.lineno = kwargs.lineno
            new_kwargs.parent = kwargs.parent
            new_kwargs.value = kwargs
            if keywords:
                keywords.append(new_kwargs)
            else:
                keywords = [new_kwargs]

        newnode.args = args
        newnode.keywords = keywords
        return newnode
Esempio n. 5
0
 def visit_starred(self, node, parent, assign_ctx=None):
     """visit a Starred node and return a new instance of it"""
     newnode = new.Starred()
     _lineno_parent(node, newnode, parent)
     newnode.value = self.visit(node.value, newnode, assign_ctx)
     return newnode