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
def visit_keyword(self, node, parent): """visit a Keyword node by returning a fresh instance of it""" newnode = new.Keyword() newnode.parent = parent newnode.arg = node.arg newnode.value = self.visit(node.value, newnode) return newnode
def visit_keyword(self, node, parent): """visit a Keyword node by returning a fresh instance of it""" newnode = new.Keyword() _lineno_parent(node, newnode, parent) newnode.arg = node.arg newnode.value = self.visit(node.value, newnode) newnode.set_line_info(newnode.last_child()) return newnode
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
def visit_keyword(self, node, parent): """visit a Keyword node by returning a fresh instance of it""" newnode = nodes.Keyword(node.arg, parent=parent) newnode.postinit(self.visit(node.value, newnode)) return newnode