def visit_arguments(self, node, parent):
vararg, kwarg = node.vararg, node.kwarg<EOL>if PY34:<EOL><INDENT>newnode = nodes.Arguments(<EOL>vararg.arg if vararg else None, kwarg.arg if kwarg else None, parent<EOL>)<EOL><DEDENT>else:<EOL><INDENT>newnode = nodes.Arguments(vararg, kwarg, parent)<EOL><DEDENT>args = [self.visit(child, newnode) for child in node.args]<EOL>defaults = [self.visit(child, newnode) for child in node.defaults]<EOL>varargannotation = None<EOL>kwargannotation = None<EOL>if vararg:<EOL><INDENT>if PY34:<EOL><INDENT>if node.vararg.annotation:<EOL><INDENT>varargannotation = self.visit(node.vararg.annotation, newnode)<EOL><DEDENT>vararg = vararg.arg<EOL><DEDENT><DEDENT>if kwarg:<EOL><INDENT>if PY34:<EOL><INDENT>if node.kwarg.annotation:<EOL><INDENT>kwargannotation = self.visit(node.kwarg.annotation, newnode)<EOL><DEDENT>kwarg = kwarg.arg<EOL><DEDENT><DEDENT>if PY3:<EOL><INDENT>kwonlyargs = [self.visit(child, newnode) for child in node.kwonlyargs]<EOL>kw_defaults = [<EOL>self.visit(child, newnode) if child else None<EOL>for child in node.kw_defaults<EOL>]<EOL>annotations = [<EOL>self.visit(arg.annotation, newnode) if arg.annotation else None<EOL>for arg in node.args<EOL>]<EOL>kwonlyargs_annotations = [<EOL>self.visit(arg.annotation, newnode) if arg.annotation else None<EOL>for arg in node.kwonlyargs<EOL>]<EOL><DEDENT>else:<EOL><INDENT>kwonlyargs = []<EOL>kw_defaults = []<EOL>annotations = []<EOL>kwonlyargs_annotations = []<EOL><DEDENT>newnode.postinit(<EOL>args=args,<EOL>defaults=defaults,<EOL>kwonlyargs=kwonlyargs,<EOL>kw_defaults=kw_defaults,<EOL>annotations=annotations,<EOL>kwonlyargs_annotations=kwonlyargs_annotations,<EOL>varargannotation=varargannotation,<EOL>kwargannotation=kwargannotation,<EOL>)<EOL>if vararg:<EOL><INDENT>newnode.parent.set_local(vararg, newnode)<EOL><DEDENT>if kwarg:<EOL><INDENT>newnode.parent.set_local(kwarg, newnode)<EOL><DEDENT>return newnode<EOL>
visit an Arguments node by returning a fresh instance of it