--- /dev/null
+# Automatically generated by pytype, manually fixed up. May still contain errors.\r
+\r
+from typing import Any, Callable, Dict, Generator, Iterator, List, Tuple, Union, Iterable\r
+\r
+__author__ = ... # type: str\r
+__credits__ = ... # type: str\r
+\r
+AMPER = ... # type: int\r
+AMPEREQUAL = ... # type: int\r
+AT = ... # type: int\r
+BACKQUOTE = ... # type: int\r
+Binnumber = ... # type: str\r
+Bracket = ... # type: str\r
+CIRCUMFLEX = ... # type: int\r
+CIRCUMFLEXEQUAL = ... # type: int\r
+COLON = ... # type: int\r
+COMMA = ... # type: int\r
+COMMENT = ... # type: int\r
+Comment = ... # type: str\r
+ContStr = ... # type: str\r
+DEDENT = ... # type: int\r
+DOT = ... # type: int\r
+DOUBLESLASH = ... # type: int\r
+DOUBLESLASHEQUAL = ... # type: int\r
+DOUBLESTAR = ... # type: int\r
+DOUBLESTAREQUAL = ... # type: int\r
+Decnumber = ... # type: str\r
+Double = ... # type: str\r
+Double3 = ... # type: str\r
+ENDMARKER = ... # type: int\r
+EQEQUAL = ... # type: int\r
+EQUAL = ... # type: int\r
+ERRORTOKEN = ... # type: int\r
+Expfloat = ... # type: str\r
+Exponent = ... # type: str\r
+Floatnumber = ... # type: str\r
+Funny = ... # type: str\r
+GREATER = ... # type: int\r
+GREATEREQUAL = ... # type: int\r
+Hexnumber = ... # type: str\r
+INDENT = ... # type: int\r
+\r
+def ISEOF(x: int) -> bool: ...\r
+def ISNONTERMINAL(x: int) -> bool: ...\r
+def ISTERMINAL(x: int) -> bool: ...\r
+\r
+Ignore = ... # type: str\r
+Imagnumber = ... # type: str\r
+Intnumber = ... # type: str\r
+LBRACE = ... # type: int\r
+LEFTSHIFT = ... # type: int\r
+LEFTSHIFTEQUAL = ... # type: int\r
+LESS = ... # type: int\r
+LESSEQUAL = ... # type: int\r
+LPAR = ... # type: int\r
+LSQB = ... # type: int\r
+MINEQUAL = ... # type: int\r
+MINUS = ... # type: int\r
+NAME = ... # type: int\r
+NEWLINE = ... # type: int\r
+NL = ... # type: int\r
+NOTEQUAL = ... # type: int\r
+NT_OFFSET = ... # type: int\r
+NUMBER = ... # type: int\r
+N_TOKENS = ... # type: int\r
+Name = ... # type: str\r
+Number = ... # type: str\r
+OP = ... # type: int\r
+Octnumber = ... # type: str\r
+Operator = ... # type: str\r
+PERCENT = ... # type: int\r
+PERCENTEQUAL = ... # type: int\r
+PLUS = ... # type: int\r
+PLUSEQUAL = ... # type: int\r
+PlainToken = ... # type: str\r
+Pointfloat = ... # type: str\r
+PseudoExtras = ... # type: str\r
+PseudoToken = ... # type: str\r
+RBRACE = ... # type: int\r
+RIGHTSHIFT = ... # type: int\r
+RIGHTSHIFTEQUAL = ... # type: int\r
+RPAR = ... # type: int\r
+RSQB = ... # type: int\r
+SEMI = ... # type: int\r
+SLASH = ... # type: int\r
+SLASHEQUAL = ... # type: int\r
+STAR = ... # type: int\r
+STAREQUAL = ... # type: int\r
+STRING = ... # type: int\r
+Single = ... # type: str\r
+Single3 = ... # type: str\r
+Special = ... # type: str\r
+String = ... # type: str\r
+TILDE = ... # type: int\r
+Token = ... # type: str\r
+Triple = ... # type: str\r
+VBAR = ... # type: int\r
+VBAREQUAL = ... # type: int\r
+Whitespace = ... # type: str\r
+chain = ... # type: type\r
+double3prog = ... # type: type\r
+endprogs = ... # type: Dict[str, Any]\r
+pseudoprog = ... # type: type\r
+single3prog = ... # type: type\r
+single_quoted = ... # type: Dict[str, str]\r
+t = ... # type: str\r
+tabsize = ... # type: int\r
+tok_name = ... # type: Dict[int, str]\r
+tokenprog = ... # type: type\r
+triple_quoted = ... # type: Dict[str, str]\r
+x = ... # type: str\r
+\r
+_Pos = Tuple[int, int]\r
+_TokenType = Tuple[int, str, _Pos, _Pos, str]\r
+\r
+def any(*args, **kwargs) -> str: ...\r
+def generate_tokens(readline: Callable[[], str]) -> Generator[_TokenType, None, None]: ...\r
+def group(*args: str) -> str: ...\r
+def maybe(*args: str) -> str: ...\r
+def printtoken(type: int, token: str, srow_scol: _Pos, erow_ecol: _Pos, line: str) -> None: ...\r
+def tokenize(readline: Callable[[], str], tokeneater: Callable[[Tuple[int, str, _Pos, _Pos, str]], None]) -> None: ...\r
+def tokenize_loop(readline: Callable[[], str], tokeneater: Callable[[Tuple[int, str, _Pos, _Pos, str]], None]) -> None: ...\r
+def untokenize(iterable: Iterable[_TokenType]) -> str: ...\r
+\r
+class StopTokenizing(Exception): ...\r
+\r
+class TokenError(Exception): ...\r
+\r
+class Untokenizer:\r
+ prev_col = ... # type: int\r
+ prev_row = ... # type: int\r
+ tokens = ... # type: List[str]\r
+ def __init__(self) -> None: ...\r
+ def add_whitespace(self, _Pos) -> None: ...\r
+ def compat(self, token: Tuple[int, Any], iterable: Iterator[_TokenType]) -> None: ...\r
+ def untokenize(self, iterable: Iterable[_TokenType]) -> str: ...\r