--- /dev/null
+import typing\r
+from typing import Any, Optional, Union, Generic, Iterator\r
+\r
+class NodeVisitor():\r
+ def visit(self, node: AST) -> Any: ...\r
+ def generic_visit(self, node: AST) -> None: ...\r
+\r
+class NodeTransformer(NodeVisitor):\r
+ def generic_visit(self, node: AST) -> None: ...\r
+\r
+def parse(source: Union[str, bytes], filename: Union[str, bytes] = ..., mode: str = ...) -> AST: ...\r
+def copy_location(new_node: AST, old_node: AST) -> AST: ...\r
+def dump(node: AST, annotate_fields: bool = ..., include_attributes: bool = ...) -> str: ...\r
+def fix_missing_locations(node: AST) -> AST: ...\r
+def get_docstring(node: AST, clean: bool = ...) -> Optional[bytes]: ...\r
+def increment_lineno(node: AST, n: int = ...) -> AST: ...\r
+def iter_child_nodes(node: AST) -> Iterator[AST]: ...\r
+def iter_fields(node: AST) -> Iterator[typing.Tuple[str, Any]]: ...\r
+def literal_eval(node_or_string: Union[str, AST]) -> Any: ...\r
+def walk(node: AST) -> Iterator[AST]: ...\r
+\r
+PyCF_ONLY_AST = ... # type: int\r
+\r
+# ast classes\r
+\r
+identifier = str\r
+\r
+class AST:\r
+ _attributes = ... # type: typing.Tuple[str, ...]\r
+ _fields = ... # type: typing.Tuple[str, ...]\r
+ def __init__(self, *args, **kwargs) -> None: ...\r
+\r
+class mod(AST):\r
+ ...\r
+\r
+class Module(mod):\r
+ body = ... # type: typing.List[stmt]\r
+ type_ignores = ... # type: typing.List[TypeIgnore]\r
+\r
+class Interactive(mod):\r
+ body = ... # type: typing.List[stmt]\r
+\r
+class Expression(mod):\r
+ body = ... # type: expr\r
+\r
+class FunctionType(mod):\r
+ argtypes = ... # type: typing.List[expr]\r
+ returns = ... # type: expr\r
+\r
+class Suite(mod):\r
+ body = ... # type: typing.List[stmt]\r
+\r
+\r
+class stmt(AST):\r
+ lineno = ... # type: int\r
+ col_offset = ... # type: int\r
+\r
+class FunctionDef(stmt):\r
+ name = ... # type: identifier\r
+ args = ... # type: arguments\r
+ body = ... # type: typing.List[stmt]\r
+ decorator_list = ... # type: typing.List[expr]\r
+ type_comment = ... # type: Optional[str]\r
+\r
+class ClassDef(stmt):\r
+ name = ... # type: identifier\r
+ bases = ... # type: typing.List[expr]\r
+ body = ... # type: typing.List[stmt]\r
+ decorator_list = ... # type: typing.List[expr]\r
+\r
+class Return(stmt):\r
+ value = ... # type: Optional[expr]\r
+\r
+class Delete(stmt):\r
+ targets = ... # type: typing.List[expr]\r
+\r
+class Assign(stmt):\r
+ targets = ... # type: typing.List[expr]\r
+ value = ... # type: expr\r
+ type_comment = ... # type: Optional[str]\r
+\r
+class AugAssign(stmt):\r
+ target = ... # type: expr\r
+ op = ... # type: operator\r
+ value = ... # type: expr\r
+\r
+class Print(stmt):\r
+ dest = ... # type: Optional[expr]\r
+ values = ... # type: typing.List[expr]\r
+ nl = ... # type: bool\r
+\r
+class For(stmt):\r
+ target = ... # type: expr\r
+ iter = ... # type: expr\r
+ body = ... # type: typing.List[stmt]\r
+ orelse = ... # type: typing.List[stmt]\r
+ type_comment = ... # type: Optional[str]\r
+\r
+class While(stmt):\r
+ test = ... # type: expr\r
+ body = ... # type: typing.List[stmt]\r
+ orelse = ... # type: typing.List[stmt]\r
+\r
+class If(stmt):\r
+ test = ... # type: expr\r
+ body = ... # type: typing.List[stmt]\r
+ orelse = ... # type: typing.List[stmt]\r
+\r
+class With(stmt):\r
+ context_expr = ... # type: expr\r
+ optional_vars = ... # type: Optional[expr]\r
+ body = ... # type: typing.List[stmt]\r
+ type_comment = ... # type: Optional[str]\r
+\r
+class Raise(stmt):\r
+ type = ... # type: Optional[expr]\r
+ inst = ... # type: Optional[expr]\r
+ tback = ... # type: Optional[expr]\r
+\r
+class TryExcept(stmt):\r
+ body = ... # type: typing.List[stmt]\r
+ handlers = ... # type: typing.List[ExceptHandler]\r
+ orelse = ... # type: typing.List[stmt]\r
+\r
+class TryFinally(stmt):\r
+ body = ... # type: typing.List[stmt]\r
+ finalbody = ... # type: typing.List[stmt]\r
+\r
+class Assert(stmt):\r
+ test = ... # type: expr\r
+ msg = ... # type: Optional[expr]\r
+\r
+class Import(stmt):\r
+ names = ... # type: typing.List[alias]\r
+\r
+class ImportFrom(stmt):\r
+ module = ... # type: Optional[identifier]\r
+ names = ... # type: typing.List[alias]\r
+ level = ... # type: Optional[int]\r
+\r
+class Exec(stmt):\r
+ body = ... # type: expr\r
+ globals = ... # type: Optional[expr]\r
+ locals = ... # type: Optional[expr]\r
+\r
+class Global(stmt):\r
+ names = ... # type: typing.List[identifier]\r
+\r
+class Expr(stmt):\r
+ value = ... # type: expr\r
+\r
+class Pass(stmt): ...\r
+class Break(stmt): ...\r
+class Continue(stmt): ...\r
+\r
+\r
+class slice(AST):\r
+ ...\r
+\r
+_slice = slice # this lets us type the variable named 'slice' below\r
+\r
+class Slice(slice):\r
+ lower = ... # type: Optional[expr]\r
+ upper = ... # type: Optional[expr]\r
+ step = ... # type: Optional[expr]\r
+\r
+class ExtSlice(slice):\r
+ dims = ... # type: typing.List[slice]\r
+\r
+class Index(slice):\r
+ value = ... # type: expr\r
+\r
+class Ellipsis(slice): ...\r
+\r
+\r
+class expr(AST):\r
+ lineno = ... # type: int\r
+ col_offset = ... # type: int\r
+\r
+class BoolOp(expr):\r
+ op = ... # type: boolop\r
+ values = ... # type: typing.List[expr]\r
+\r
+class BinOp(expr):\r
+ left = ... # type: expr\r
+ op = ... # type: operator\r
+ right = ... # type: expr\r
+\r
+class UnaryOp(expr):\r
+ op = ... # type: unaryop\r
+ operand = ... # type: expr\r
+\r
+class Lambda(expr):\r
+ args = ... # type: arguments\r
+ body = ... # type: expr\r
+\r
+class IfExp(expr):\r
+ test = ... # type: expr\r
+ body = ... # type: expr\r
+ orelse = ... # type: expr\r
+\r
+class Dict(expr):\r
+ keys = ... # type: typing.List[expr]\r
+ values = ... # type: typing.List[expr]\r
+\r
+class Set(expr):\r
+ elts = ... # type: typing.List[expr]\r
+\r
+class ListComp(expr):\r
+ elt = ... # type: expr\r
+ generators = ... # type: typing.List[comprehension]\r
+\r
+class SetComp(expr):\r
+ elt = ... # type: expr\r
+ generators = ... # type: typing.List[comprehension]\r
+\r
+class DictComp(expr):\r
+ key = ... # type: expr\r
+ value = ... # type: expr\r
+ generators = ... # type: typing.List[comprehension]\r
+\r
+class GeneratorExp(expr):\r
+ elt = ... # type: expr\r
+ generators = ... # type: typing.List[comprehension]\r
+\r
+class Yield(expr):\r
+ value = ... # type: Optional[expr]\r
+\r
+class Compare(expr):\r
+ left = ... # type: expr\r
+ ops = ... # type: typing.List[cmpop]\r
+ comparators = ... # type: typing.List[expr]\r
+\r
+class Call(expr):\r
+ func = ... # type: expr\r
+ args = ... # type: typing.List[expr]\r
+ keywords = ... # type: typing.List[keyword]\r
+ starargs = ... # type: Optional[expr]\r
+ kwargs = ... # type: Optional[expr]\r
+\r
+class Repr(expr):\r
+ value = ... # type: expr\r
+\r
+class Num(expr):\r
+ n = ... # type: Union[int, float, complex]\r
+\r
+class Str(expr):\r
+ s = ... # type: bytes\r
+\r
+class Attribute(expr):\r
+ value = ... # type: expr\r
+ attr = ... # type: identifier\r
+ ctx = ... # type: expr_context\r
+\r
+class Subscript(expr):\r
+ value = ... # type: expr\r
+ slice = ... # type: _slice\r
+ ctx = ... # type: expr_context\r
+\r
+class Name(expr):\r
+ id = ... # type: identifier\r
+ ctx = ... # type: expr_context\r
+\r
+class List(expr):\r
+ elts = ... # type: typing.List[expr]\r
+ ctx = ... # type: expr_context\r
+\r
+class Tuple(expr):\r
+ elts = ... # type: typing.List[expr]\r
+ ctx = ... # type: expr_context\r
+\r
+\r
+class expr_context(AST):\r
+ ...\r
+\r
+class AugLoad(expr_context): ...\r
+class AugStore(expr_context): ...\r
+class Del(expr_context): ...\r
+class Load(expr_context): ...\r
+class Param(expr_context): ...\r
+class Store(expr_context): ...\r
+\r
+\r
+class boolop(AST):\r
+ ...\r
+\r
+class And(boolop): ...\r
+class Or(boolop): ...\r
+\r
+class operator(AST):\r
+ ...\r
+\r
+class Add(operator): ...\r
+class BitAnd(operator): ...\r
+class BitOr(operator): ...\r
+class BitXor(operator): ...\r
+class Div(operator): ...\r
+class FloorDiv(operator): ...\r
+class LShift(operator): ...\r
+class Mod(operator): ...\r
+class Mult(operator): ...\r
+class Pow(operator): ...\r
+class RShift(operator): ...\r
+class Sub(operator): ...\r
+\r
+class unaryop(AST):\r
+ ...\r
+\r
+class Invert(unaryop): ...\r
+class Not(unaryop): ...\r
+class UAdd(unaryop): ...\r
+class USub(unaryop): ...\r
+\r
+class cmpop(AST):\r
+ ...\r
+\r
+class Eq(cmpop): ...\r
+class Gt(cmpop): ...\r
+class GtE(cmpop): ...\r
+class In(cmpop): ...\r
+class Is(cmpop): ...\r
+class IsNot(cmpop): ...\r
+class Lt(cmpop): ...\r
+class LtE(cmpop): ...\r
+class NotEq(cmpop): ...\r
+class NotIn(cmpop): ...\r
+\r
+\r
+class comprehension(AST):\r
+ target = ... # type: expr\r
+ iter = ... # type: expr\r
+ ifs = ... # type: typing.List[expr]\r
+\r
+\r
+class ExceptHandler(AST):\r
+ type = ... # type: Optional[expr]\r
+ name = ... # type: Optional[expr]\r
+ body = ... # type: typing.List[stmt]\r
+ lineno = ... # type: int\r
+ col_offset = ... # type: int\r
+\r
+\r
+class arguments(AST):\r
+ args = ... # type: typing.List[expr]\r
+ vararg = ... # type: Optional[identifier]\r
+ kwarg = ... # type: Optional[identifier]\r
+ defaults = ... # type: typing.List[expr]\r
+ type_comments = ... # type: typing.List[str]\r
+\r
+class keyword(AST):\r
+ arg = ... # type: identifier\r
+ value = ... # type: expr\r
+\r
+class alias(AST):\r
+ name = ... # type: identifier\r
+ asname = ... # type: Optional[identifier]\r
+\r
+\r
+class TypeIgnore(AST):\r
+ lineno = ... # type: int\r