def convert_arg(arg, annotation): if isinstance(arg, ast27.Name): v = arg.id elif isinstance(arg, ast27.Tuple): v = self.visit(arg) else: raise RuntimeError("'{}' is not a valid argument.".format(ast27.dump(arg))) return ast35.arg(v, annotation, lineno=arg.lineno, col_offset=arg.col_offset)
def visit_arguments(self, n): def convert_arg(arg, annotation): if isinstance(arg, ast27.Name): v = arg.id elif isinstance(arg, ast27.Tuple): v = self.visit(arg) else: raise RuntimeError("'{}' is not a valid argument.".format( ast27.dump(arg))) return ast35.arg(v, annotation, lineno=arg.lineno, col_offset=arg.col_offset) def get_type_comment(i): if i < len(n.type_comments) and n.type_comments[i] is not None: return ast35.Str(n.type_comments[i]) return None args = [ convert_arg(arg, get_type_comment(i)) for i, arg in enumerate(n.args) ] vararg = None if n.vararg is not None: vararg = ast35.arg(n.vararg, get_type_comment(len(args)), lineno=-1, col_offset=-1) kwarg = None if n.kwarg is not None: kwarg = ast35.arg( n.kwarg, get_type_comment(len(args) + (0 if n.vararg is None else 1)), lineno=-1, col_offset=-1) defaults = self.visit(n.defaults) return ast35.arguments(args, vararg, [], [], kwarg, defaults)
def convert_arg(arg, annotation): if isinstance(arg, ast27.Name): v = arg.id elif isinstance(arg, ast27.Tuple): v = self.visit(arg) else: raise RuntimeError("'{}' is not a valid argument.".format( ast27.dump(arg))) return ast35.arg(v, annotation, lineno=arg.lineno, col_offset=arg.col_offset)
def visit_arguments(self, n): def convert_arg(arg, annotation): if isinstance(arg, ast27.Name): v = arg.id elif isinstance(arg, ast27.Tuple): v = self.visit(arg) else: raise RuntimeError("'{}' is not a valid argument.".format(ast27.dump(arg))) return ast35.arg(v, annotation, lineno=arg.lineno, col_offset=arg.col_offset) def get_type_comment(i): if i < len(n.type_comments) and n.type_comments[i] is not None: return ast35.Str(n.type_comments[i]) return None args = [convert_arg(arg, get_type_comment(i)) for i, arg in enumerate(n.args)] vararg = None if n.vararg is not None: vararg = ast35.arg(n.vararg, get_type_comment(len(args)), lineno=-1, col_offset=-1) kwarg = None if n.kwarg is not None: kwarg = ast35.arg(n.kwarg, get_type_comment(len(args) + (0 if n.vararg is None else 1)), lineno=-1, col_offset=-1) defaults = self.visit(n.defaults) return ast35.arguments(args, vararg, [], [], kwarg, defaults)