Example #1
0
 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)
Example #2
0
    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)
Example #3
0
 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)
Example #4
0
    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)