Format: application/octet-stream
⬇ Download File (47.7 KB)
   1  # True and False are deliberately omitted because they are keywords in
   2  # Python 3, and stub files conform to Python 3 syntax.
   3  
   4  from _typeshed import ReadableBuffer, SupportsKeysAndGetItem, SupportsWrite
   5  from abc import ABCMeta
   6  from ast import mod
   7  from types import CodeType
   8  from typing import (
   9      AbstractSet,
  10      Any,
  11      AnyStr,
  12      BinaryIO,
  13      ByteString,
  14      Callable,
  15      Container,
  16      Dict,
  17      FrozenSet,
  18      Generic,
  19      ItemsView,
  20      Iterable,
  21      Iterator,
  22      KeysView,
  23      List,
  24      Mapping,
  25      MutableMapping,
  26      MutableSequence,
  27      MutableSet,
  28      NoReturn,
  29      Optional,
  30      Protocol,
  31      Reversible,
  32      Sequence,
  33      Set,
  34      Sized,
  35      SupportsAbs,
  36      SupportsComplex,
  37      SupportsFloat,
  38      SupportsInt,
  39      Text,
  40      Tuple,
  41      Type,
  42      TypeVar,
  43      Union,
  44      ValuesView,
  45      overload,
  46      runtime_checkable,
  47  )
  48  from typing_extensions import Literal
  49  
  50  class _SupportsIndex(Protocol):
  51      def __index__(self) -> int: ...
  52  
  53  class _SupportsTrunc(Protocol):
  54      def __trunc__(self) -> int: ...
  55  
  56  _T = TypeVar("_T")
  57  _T_co = TypeVar("_T_co", covariant=True)
  58  _KT = TypeVar("_KT")
  59  _VT = TypeVar("_VT")
  60  _S = TypeVar("_S")
  61  _T1 = TypeVar("_T1")
  62  _T2 = TypeVar("_T2")
  63  _T3 = TypeVar("_T3")
  64  _T4 = TypeVar("_T4")
  65  _T5 = TypeVar("_T5")
  66  _TT = TypeVar("_TT", bound="type")
  67  _TBE = TypeVar("_TBE", bound="BaseException")
  68  
  69  class object:
  70      __doc__: Optional[str]
  71      __dict__: Dict[str, Any]
  72      __slots__: Union[Text, Iterable[Text]]
  73      __module__: str
  74      @property
  75      def __class__(self: _T) -> Type[_T]: ...
  76      @__class__.setter
  77      def __class__(self, __type: Type[object]) -> None: ...  # noqa: F811
  78      def __init__(self) -> None: ...
  79      def __new__(cls) -> Any: ...
  80      def __setattr__(self, name: str, value: Any) -> None: ...
  81      def __eq__(self, o: object) -> bool: ...
  82      def __ne__(self, o: object) -> bool: ...
  83      def __str__(self) -> str: ...
  84      def __repr__(self) -> str: ...
  85      def __hash__(self) -> int: ...
  86      def __format__(self, format_spec: str) -> str: ...
  87      def __getattribute__(self, name: str) -> Any: ...
  88      def __delattr__(self, name: str) -> None: ...
  89      def __sizeof__(self) -> int: ...
  90      def __reduce__(self) -> Union[str, Tuple[Any, ...]]: ...
  91      def __reduce_ex__(self, protocol: int) -> Union[str, Tuple[Any, ...]]: ...
  92  
  93  class staticmethod(object):  # Special, only valid as a decorator.
  94      __func__: Callable[..., Any]
  95      def __init__(self, f: Callable[..., Any]) -> None: ...
  96      def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ...
  97      def __get__(self, obj: _T, type: Optional[Type[_T]] = ...) -> Callable[..., Any]: ...
  98  
  99  class classmethod(object):  # Special, only valid as a decorator.
 100      __func__: Callable[..., Any]
 101      def __init__(self, f: Callable[..., Any]) -> None: ...
 102      def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ...
 103      def __get__(self, obj: _T, type: Optional[Type[_T]] = ...) -> Callable[..., Any]: ...
 104  
 105  class type(object):
 106      __base__: type
 107      __bases__: Tuple[type, ...]
 108      __basicsize__: int
 109      __dict__: Dict[str, Any]
 110      __dictoffset__: int
 111      __flags__: int
 112      __itemsize__: int
 113      __module__: str
 114      __mro__: Tuple[type, ...]
 115      __name__: str
 116      __weakrefoffset__: int
 117      @overload
 118      def __init__(self, o: object) -> None: ...
 119      @overload
 120      def __init__(self, name: str, bases: Tuple[type, ...], dict: Dict[str, Any]) -> None: ...
 121      @overload
 122      def __new__(cls, o: object) -> type: ...
 123      @overload
 124      def __new__(cls, name: str, bases: Tuple[type, ...], namespace: Dict[str, Any]) -> type: ...
 125      def __call__(self, *args: Any, **kwds: Any) -> Any: ...
 126      def __subclasses__(self: _TT) -> List[_TT]: ...
 127      # Note: the documentation doesnt specify what the return type is, the standard
 128      # implementation seems to be returning a list.
 129      def mro(self) -> List[type]: ...
 130      def __instancecheck__(self, instance: Any) -> bool: ...
 131      def __subclasscheck__(self, subclass: type) -> bool: ...
 132  
 133  class super(object):
 134      @overload
 135      def __init__(self, t: Any, obj: Any) -> None: ...
 136      @overload
 137      def __init__(self, t: Any) -> None: ...
 138  
 139  class int:
 140      @overload
 141      def __new__(cls: Type[_T], x: Union[Text, bytes, SupportsInt, _SupportsIndex, _SupportsTrunc] = ...) -> _T: ...
 142      @overload
 143      def __new__(cls: Type[_T], x: Union[Text, bytes, bytearray], base: int) -> _T: ...
 144      @property
 145      def real(self) -> int: ...
 146      @property
 147      def imag(self) -> int: ...
 148      @property
 149      def numerator(self) -> int: ...
 150      @property
 151      def denominator(self) -> int: ...
 152      def conjugate(self) -> int: ...
 153      def bit_length(self) -> int: ...
 154      def __add__(self, x: int) -> int: ...
 155      def __sub__(self, x: int) -> int: ...
 156      def __mul__(self, x: int) -> int: ...
 157      def __floordiv__(self, x: int) -> int: ...
 158      def __div__(self, x: int) -> int: ...
 159      def __truediv__(self, x: int) -> float: ...
 160      def __mod__(self, x: int) -> int: ...
 161      def __divmod__(self, x: int) -> Tuple[int, int]: ...
 162      def __radd__(self, x: int) -> int: ...
 163      def __rsub__(self, x: int) -> int: ...
 164      def __rmul__(self, x: int) -> int: ...
 165      def __rfloordiv__(self, x: int) -> int: ...
 166      def __rdiv__(self, x: int) -> int: ...
 167      def __rtruediv__(self, x: int) -> float: ...
 168      def __rmod__(self, x: int) -> int: ...
 169      def __rdivmod__(self, x: int) -> Tuple[int, int]: ...
 170      @overload
 171      def __pow__(self, __x: Literal[2], __modulo: Optional[int] = ...) -> int: ...
 172      @overload
 173      def __pow__(self, __x: int, __modulo: Optional[int] = ...) -> Any: ...  # Return type can be int or float, depending on x.
 174      def __rpow__(self, x: int, mod: Optional[int] = ...) -> Any: ...
 175      def __and__(self, n: int) -> int: ...
 176      def __or__(self, n: int) -> int: ...
 177      def __xor__(self, n: int) -> int: ...
 178      def __lshift__(self, n: int) -> int: ...
 179      def __rshift__(self, n: int) -> int: ...
 180      def __rand__(self, n: int) -> int: ...
 181      def __ror__(self, n: int) -> int: ...
 182      def __rxor__(self, n: int) -> int: ...
 183      def __rlshift__(self, n: int) -> int: ...
 184      def __rrshift__(self, n: int) -> int: ...
 185      def __neg__(self) -> int: ...
 186      def __pos__(self) -> int: ...
 187      def __invert__(self) -> int: ...
 188      def __trunc__(self) -> int: ...
 189      def __getnewargs__(self) -> Tuple[int]: ...
 190      def __eq__(self, x: object) -> bool: ...
 191      def __ne__(self, x: object) -> bool: ...
 192      def __lt__(self, x: int) -> bool: ...
 193      def __le__(self, x: int) -> bool: ...
 194      def __gt__(self, x: int) -> bool: ...
 195      def __ge__(self, x: int) -> bool: ...
 196      def __str__(self) -> str: ...
 197      def __float__(self) -> float: ...
 198      def __int__(self) -> int: ...
 199      def __abs__(self) -> int: ...
 200      def __hash__(self) -> int: ...
 201      def __nonzero__(self) -> bool: ...
 202      def __index__(self) -> int: ...
 203  
 204  class float:
 205      def __new__(cls: Type[_T], x: Union[SupportsFloat, _SupportsIndex, Text, bytes, bytearray] = ...) -> _T: ...
 206      def as_integer_ratio(self) -> Tuple[int, int]: ...
 207      def hex(self) -> str: ...
 208      def is_integer(self) -> bool: ...
 209      @classmethod
 210      def fromhex(cls, __s: str) -> float: ...
 211      @property
 212      def real(self) -> float: ...
 213      @property
 214      def imag(self) -> float: ...
 215      def conjugate(self) -> float: ...
 216      def __add__(self, x: float) -> float: ...
 217      def __sub__(self, x: float) -> float: ...
 218      def __mul__(self, x: float) -> float: ...
 219      def __floordiv__(self, x: float) -> float: ...
 220      def __div__(self, x: float) -> float: ...
 221      def __truediv__(self, x: float) -> float: ...
 222      def __mod__(self, x: float) -> float: ...
 223      def __divmod__(self, x: float) -> Tuple[float, float]: ...
 224      def __pow__(
 225          self, x: float, mod: None = ...
 226      ) -> float: ...  # In Python 3, returns complex if self is negative and x is not whole
 227      def __radd__(self, x: float) -> float: ...
 228      def __rsub__(self, x: float) -> float: ...
 229      def __rmul__(self, x: float) -> float: ...
 230      def __rfloordiv__(self, x: float) -> float: ...
 231      def __rdiv__(self, x: float) -> float: ...
 232      def __rtruediv__(self, x: float) -> float: ...
 233      def __rmod__(self, x: float) -> float: ...
 234      def __rdivmod__(self, x: float) -> Tuple[float, float]: ...
 235      def __rpow__(self, x: float, mod: None = ...) -> float: ...
 236      def __getnewargs__(self) -> Tuple[float]: ...
 237      def __trunc__(self) -> int: ...
 238      def __eq__(self, x: object) -> bool: ...
 239      def __ne__(self, x: object) -> bool: ...
 240      def __lt__(self, x: float) -> bool: ...
 241      def __le__(self, x: float) -> bool: ...
 242      def __gt__(self, x: float) -> bool: ...
 243      def __ge__(self, x: float) -> bool: ...
 244      def __neg__(self) -> float: ...
 245      def __pos__(self) -> float: ...
 246      def __str__(self) -> str: ...
 247      def __int__(self) -> int: ...
 248      def __float__(self) -> float: ...
 249      def __abs__(self) -> float: ...
 250      def __hash__(self) -> int: ...
 251      def __nonzero__(self) -> bool: ...
 252  
 253  class complex:
 254      @overload
 255      def __new__(cls: Type[_T], real: float = ..., imag: float = ...) -> _T: ...
 256      @overload
 257      def __new__(cls: Type[_T], real: Union[str, SupportsComplex, _SupportsIndex]) -> _T: ...
 258      @property
 259      def real(self) -> float: ...
 260      @property
 261      def imag(self) -> float: ...
 262      def conjugate(self) -> complex: ...
 263      def __add__(self, x: complex) -> complex: ...
 264      def __sub__(self, x: complex) -> complex: ...
 265      def __mul__(self, x: complex) -> complex: ...
 266      def __pow__(self, x: complex, mod: None = ...) -> complex: ...
 267      def __div__(self, x: complex) -> complex: ...
 268      def __truediv__(self, x: complex) -> complex: ...
 269      def __radd__(self, x: complex) -> complex: ...
 270      def __rsub__(self, x: complex) -> complex: ...
 271      def __rmul__(self, x: complex) -> complex: ...
 272      def __rpow__(self, x: complex, mod: None = ...) -> complex: ...
 273      def __rdiv__(self, x: complex) -> complex: ...
 274      def __rtruediv__(self, x: complex) -> complex: ...
 275      def __eq__(self, x: object) -> bool: ...
 276      def __ne__(self, x: object) -> bool: ...
 277      def __neg__(self) -> complex: ...
 278      def __pos__(self) -> complex: ...
 279      def __str__(self) -> str: ...
 280      def __complex__(self) -> complex: ...
 281      def __abs__(self) -> float: ...
 282      def __hash__(self) -> int: ...
 283      def __nonzero__(self) -> bool: ...
 284  
 285  class basestring(metaclass=ABCMeta): ...
 286  
 287  class unicode(basestring, Sequence[unicode]):
 288      @overload
 289      def __init__(self) -> None: ...
 290      @overload
 291      def __init__(self, o: object) -> None: ...
 292      @overload
 293      def __init__(self, o: str, encoding: unicode = ..., errors: unicode = ...) -> None: ...
 294      def capitalize(self) -> unicode: ...
 295      def center(self, width: int, fillchar: unicode = ...) -> unicode: ...
 296      def count(self, x: unicode) -> int: ...
 297      def decode(self, encoding: unicode = ..., errors: unicode = ...) -> unicode: ...
 298      def encode(self, encoding: unicode = ..., errors: unicode = ...) -> str: ...
 299      def endswith(self, suffix: Union[unicode, Tuple[unicode, ...]], start: int = ..., end: int = ...) -> bool: ...
 300      def expandtabs(self, tabsize: int = ...) -> unicode: ...
 301      def find(self, sub: unicode, start: int = ..., end: int = ...) -> int: ...
 302      def format(self, *args: object, **kwargs: object) -> unicode: ...
 303      def index(self, sub: unicode, start: int = ..., end: int = ...) -> int: ...
 304      def isalnum(self) -> bool: ...
 305      def isalpha(self) -> bool: ...
 306      def isdecimal(self) -> bool: ...
 307      def isdigit(self) -> bool: ...
 308      def isidentifier(self) -> bool: ...
 309      def islower(self) -> bool: ...
 310      def isnumeric(self) -> bool: ...
 311      def isprintable(self) -> bool: ...
 312      def isspace(self) -> bool: ...
 313      def istitle(self) -> bool: ...
 314      def isupper(self) -> bool: ...
 315      def join(self, iterable: Iterable[unicode]) -> unicode: ...
 316      def ljust(self, width: int, fillchar: unicode = ...) -> unicode: ...
 317      def lower(self) -> unicode: ...
 318      def lstrip(self, chars: unicode = ...) -> unicode: ...
 319      def partition(self, sep: unicode) -> Tuple[unicode, unicode, unicode]: ...
 320      def replace(self, old: unicode, new: unicode, count: int = ...) -> unicode: ...
 321      def rfind(self, sub: unicode, start: int = ..., end: int = ...) -> int: ...
 322      def rindex(self, sub: unicode, start: int = ..., end: int = ...) -> int: ...
 323      def rjust(self, width: int, fillchar: unicode = ...) -> unicode: ...
 324      def rpartition(self, sep: unicode) -> Tuple[unicode, unicode, unicode]: ...
 325      def rsplit(self, sep: Optional[unicode] = ..., maxsplit: int = ...) -> List[unicode]: ...
 326      def rstrip(self, chars: unicode = ...) -> unicode: ...
 327      def split(self, sep: Optional[unicode] = ..., maxsplit: int = ...) -> List[unicode]: ...
 328      def splitlines(self, keepends: bool = ...) -> List[unicode]: ...
 329      def startswith(self, prefix: Union[unicode, Tuple[unicode, ...]], start: int = ..., end: int = ...) -> bool: ...
 330      def strip(self, chars: unicode = ...) -> unicode: ...
 331      def swapcase(self) -> unicode: ...
 332      def title(self) -> unicode: ...
 333      def translate(self, table: Union[Dict[int, Any], unicode]) -> unicode: ...
 334      def upper(self) -> unicode: ...
 335      def zfill(self, width: int) -> unicode: ...
 336      @overload
 337      def __getitem__(self, i: int) -> unicode: ...
 338      @overload
 339      def __getitem__(self, s: slice) -> unicode: ...
 340      def __getslice__(self, start: int, stop: int) -> unicode: ...
 341      def __add__(self, s: unicode) -> unicode: ...
 342      def __mul__(self, n: int) -> unicode: ...
 343      def __rmul__(self, n: int) -> unicode: ...
 344      def __mod__(self, x: Any) -> unicode: ...
 345      def __eq__(self, x: object) -> bool: ...
 346      def __ne__(self, x: object) -> bool: ...
 347      def __lt__(self, x: unicode) -> bool: ...
 348      def __le__(self, x: unicode) -> bool: ...
 349      def __gt__(self, x: unicode) -> bool: ...
 350      def __ge__(self, x: unicode) -> bool: ...
 351      def __len__(self) -> int: ...
 352      # The argument type is incompatible with Sequence
 353      def __contains__(self, s: Union[unicode, bytes]) -> bool: ...  # type: ignore
 354      def __iter__(self) -> Iterator[unicode]: ...
 355      def __str__(self) -> str: ...
 356      def __repr__(self) -> str: ...
 357      def __int__(self) -> int: ...
 358      def __float__(self) -> float: ...
 359      def __hash__(self) -> int: ...
 360      def __getnewargs__(self) -> Tuple[unicode]: ...
 361  
 362  class _FormatMapMapping(Protocol):
 363      def __getitem__(self, __key: str) -> Any: ...
 364  
 365  class str(Sequence[str], basestring):
 366      def __init__(self, o: object = ...) -> None: ...
 367      def capitalize(self) -> str: ...
 368      def center(self, __width: int, __fillchar: str = ...) -> str: ...
 369      def count(self, x: Text, __start: Optional[int] = ..., __end: Optional[int] = ...) -> int: ...
 370      def decode(self, encoding: Text = ..., errors: Text = ...) -> unicode: ...
 371      def encode(self, encoding: Text = ..., errors: Text = ...) -> bytes: ...
 372      def endswith(self, suffix: Union[Text, Tuple[Text, ...]]) -> bool: ...
 373      def expandtabs(self, tabsize: int = ...) -> str: ...
 374      def find(self, sub: Text, __start: Optional[int] = ..., __end: Optional[int] = ...) -> int: ...
 375      def format(self, *args: object, **kwargs: object) -> str: ...
 376      def format_map(self, map: _FormatMapMapping) -> str: ...
 377      def index(self, sub: Text, __start: Optional[int] = ..., __end: Optional[int] = ...) -> int: ...
 378      def isalnum(self) -> bool: ...
 379      def isalpha(self) -> bool: ...
 380      def isdigit(self) -> bool: ...
 381      def islower(self) -> bool: ...
 382      def isspace(self) -> bool: ...
 383      def istitle(self) -> bool: ...
 384      def isupper(self) -> bool: ...
 385      def join(self, __iterable: Iterable[AnyStr]) -> AnyStr: ...
 386      def ljust(self, __width: int, __fillchar: str = ...) -> str: ...
 387      def lower(self) -> str: ...
 388      @overload
 389      def lstrip(self, __chars: str = ...) -> str: ...
 390      @overload
 391      def lstrip(self, __chars: unicode) -> unicode: ...
 392      @overload
 393      def partition(self, __sep: bytearray) -> Tuple[str, bytearray, str]: ...
 394      @overload
 395      def partition(self, __sep: str) -> Tuple[str, str, str]: ...
 396      @overload
 397      def partition(self, __sep: unicode) -> Tuple[unicode, unicode, unicode]: ...
 398      def replace(self, __old: AnyStr, __new: AnyStr, __count: int = ...) -> AnyStr: ...
 399      def rfind(self, sub: Text, __start: Optional[int] = ..., __end: Optional[int] = ...) -> int: ...
 400      def rindex(self, sub: Text, __start: Optional[int] = ..., __end: Optional[int] = ...) -> int: ...
 401      def rjust(self, __width: int, __fillchar: str = ...) -> str: ...
 402      @overload
 403      def rpartition(self, __sep: bytearray) -> Tuple[str, bytearray, str]: ...
 404      @overload
 405      def rpartition(self, __sep: str) -> Tuple[str, str, str]: ...
 406      @overload
 407      def rpartition(self, __sep: unicode) -> Tuple[unicode, unicode, unicode]: ...
 408      @overload
 409      def rsplit(self, sep: Optional[str] = ..., maxsplit: int = ...) -> List[str]: ...
 410      @overload
 411      def rsplit(self, sep: unicode, maxsplit: int = ...) -> List[unicode]: ...
 412      @overload
 413      def rstrip(self, __chars: str = ...) -> str: ...
 414      @overload
 415      def rstrip(self, __chars: unicode) -> unicode: ...
 416      @overload
 417      def split(self, sep: Optional[str] = ..., maxsplit: int = ...) -> List[str]: ...
 418      @overload
 419      def split(self, sep: unicode, maxsplit: int = ...) -> List[unicode]: ...
 420      def splitlines(self, keepends: bool = ...) -> List[str]: ...
 421      def startswith(self, prefix: Union[Text, Tuple[Text, ...]]) -> bool: ...
 422      @overload
 423      def strip(self, __chars: str = ...) -> str: ...
 424      @overload
 425      def strip(self, chars: unicode) -> unicode: ...
 426      def swapcase(self) -> str: ...
 427      def title(self) -> str: ...
 428      def translate(self, __table: Optional[AnyStr], deletechars: AnyStr = ...) -> AnyStr: ...
 429      def upper(self) -> str: ...
 430      def zfill(self, __width: int) -> str: ...
 431      def __add__(self, s: AnyStr) -> AnyStr: ...
 432      # Incompatible with Sequence.__contains__
 433      def __contains__(self, o: Union[str, Text]) -> bool: ...  # type: ignore
 434      def __eq__(self, x: object) -> bool: ...
 435      def __ge__(self, x: Text) -> bool: ...
 436      def __getitem__(self, i: Union[int, slice]) -> str: ...
 437      def __gt__(self, x: Text) -> bool: ...
 438      def __hash__(self) -> int: ...
 439      def __iter__(self) -> Iterator[str]: ...
 440      def __le__(self, x: Text) -> bool: ...
 441      def __len__(self) -> int: ...
 442      def __lt__(self, x: Text) -> bool: ...
 443      def __mod__(self, x: Any) -> str: ...
 444      def __mul__(self, n: int) -> str: ...
 445      def __ne__(self, x: object) -> bool: ...
 446      def __repr__(self) -> str: ...
 447      def __rmul__(self, n: int) -> str: ...
 448      def __str__(self) -> str: ...
 449      def __getnewargs__(self) -> Tuple[str]: ...
 450      def __getslice__(self, start: int, stop: int) -> str: ...
 451      def __float__(self) -> float: ...
 452      def __int__(self) -> int: ...
 453  
 454  bytes = str
 455  
 456  class bytearray(MutableSequence[int], ByteString):
 457      @overload
 458      def __init__(self) -> None: ...
 459      @overload
 460      def __init__(self, ints: Iterable[int]) -> None: ...
 461      @overload
 462      def __init__(self, string: str) -> None: ...
 463      @overload
 464      def __init__(self, string: Text, encoding: Text, errors: Text = ...) -> None: ...
 465      @overload
 466      def __init__(self, length: int) -> None: ...
 467      def capitalize(self) -> bytearray: ...
 468      def center(self, __width: int, __fillchar: bytes = ...) -> bytearray: ...
 469      def count(self, __sub: str) -> int: ...
 470      def decode(self, encoding: Text = ..., errors: Text = ...) -> str: ...
 471      def endswith(self, __suffix: Union[bytes, Tuple[bytes, ...]]) -> bool: ...
 472      def expandtabs(self, tabsize: int = ...) -> bytearray: ...
 473      def extend(self, iterable: Union[str, Iterable[int]]) -> None: ...
 474      def find(self, __sub: str, __start: int = ..., __end: int = ...) -> int: ...
 475      def index(self, __sub: str, __start: int = ..., __end: int = ...) -> int: ...
 476      def insert(self, __index: int, __item: int) -> None: ...
 477      def isalnum(self) -> bool: ...
 478      def isalpha(self) -> bool: ...
 479      def isdigit(self) -> bool: ...
 480      def islower(self) -> bool: ...
 481      def isspace(self) -> bool: ...
 482      def istitle(self) -> bool: ...
 483      def isupper(self) -> bool: ...
 484      def join(self, __iterable: Iterable[str]) -> bytearray: ...
 485      def ljust(self, __width: int, __fillchar: str = ...) -> bytearray: ...
 486      def lower(self) -> bytearray: ...
 487      def lstrip(self, __bytes: Optional[bytes] = ...) -> bytearray: ...
 488      def partition(self, __sep: bytes) -> Tuple[bytearray, bytearray, bytearray]: ...
 489      def replace(self, __old: bytes, __new: bytes, __count: int = ...) -> bytearray: ...
 490      def rfind(self, __sub: bytes, __start: int = ..., __end: int = ...) -> int: ...
 491      def rindex(self, __sub: bytes, __start: int = ..., __end: int = ...) -> int: ...
 492      def rjust(self, __width: int, __fillchar: bytes = ...) -> bytearray: ...
 493      def rpartition(self, __sep: bytes) -> Tuple[bytearray, bytearray, bytearray]: ...
 494      def rsplit(self, sep: Optional[bytes] = ..., maxsplit: int = ...) -> List[bytearray]: ...
 495      def rstrip(self, __bytes: Optional[bytes] = ...) -> bytearray: ...
 496      def split(self, sep: Optional[bytes] = ..., maxsplit: int = ...) -> List[bytearray]: ...
 497      def splitlines(self, keepends: bool = ...) -> List[bytearray]: ...
 498      def startswith(
 499          self, __prefix: Union[bytes, Tuple[bytes, ...]], __start: Optional[int] = ..., __end: Optional[int] = ...
 500      ) -> bool: ...
 501      def strip(self, __bytes: Optional[bytes] = ...) -> bytearray: ...
 502      def swapcase(self) -> bytearray: ...
 503      def title(self) -> bytearray: ...
 504      def translate(self, __table: str) -> bytearray: ...
 505      def upper(self) -> bytearray: ...
 506      def zfill(self, __width: int) -> bytearray: ...
 507      @classmethod
 508      def fromhex(cls, __string: str) -> bytearray: ...
 509      def __len__(self) -> int: ...
 510      def __iter__(self) -> Iterator[int]: ...
 511      def __str__(self) -> str: ...
 512      def __repr__(self) -> str: ...
 513      def __int__(self) -> int: ...
 514      def __float__(self) -> float: ...
 515      __hash__: None  # type: ignore
 516      @overload
 517      def __getitem__(self, i: int) -> int: ...
 518      @overload
 519      def __getitem__(self, s: slice) -> bytearray: ...
 520      @overload
 521      def __setitem__(self, i: int, x: int) -> None: ...
 522      @overload
 523      def __setitem__(self, s: slice, x: Union[Iterable[int], bytes]) -> None: ...
 524      def __delitem__(self, i: Union[int, slice]) -> None: ...
 525      def __getslice__(self, start: int, stop: int) -> bytearray: ...
 526      def __setslice__(self, start: int, stop: int, x: Union[Sequence[int], str]) -> None: ...
 527      def __delslice__(self, start: int, stop: int) -> None: ...
 528      def __add__(self, s: bytes) -> bytearray: ...
 529      def __mul__(self, n: int) -> bytearray: ...
 530      # Incompatible with Sequence.__contains__
 531      def __contains__(self, o: Union[int, bytes]) -> bool: ...  # type: ignore
 532      def __eq__(self, x: object) -> bool: ...
 533      def __ne__(self, x: object) -> bool: ...
 534      def __lt__(self, x: bytes) -> bool: ...
 535      def __le__(self, x: bytes) -> bool: ...
 536      def __gt__(self, x: bytes) -> bool: ...
 537      def __ge__(self, x: bytes) -> bool: ...
 538  
 539  class memoryview(Sized, Container[str]):
 540      format: str
 541      itemsize: int
 542      shape: Optional[Tuple[int, ...]]
 543      strides: Optional[Tuple[int, ...]]
 544      suboffsets: Optional[Tuple[int, ...]]
 545      readonly: bool
 546      ndim: int
 547      def __init__(self, obj: ReadableBuffer) -> None: ...
 548      @overload
 549      def __getitem__(self, i: int) -> str: ...
 550      @overload
 551      def __getitem__(self, s: slice) -> memoryview: ...
 552      def __contains__(self, x: object) -> bool: ...
 553      def __iter__(self) -> Iterator[str]: ...
 554      def __len__(self) -> int: ...
 555      @overload
 556      def __setitem__(self, s: slice, o: memoryview) -> None: ...
 557      @overload
 558      def __setitem__(self, i: int, o: bytes) -> None: ...
 559      @overload
 560      def __setitem__(self, s: slice, o: Sequence[bytes]) -> None: ...
 561      def tobytes(self) -> bytes: ...
 562      def tolist(self) -> List[int]: ...
 563  
 564  class bool(int):
 565      def __new__(cls: Type[_T], __o: object = ...) -> _T: ...
 566      @overload
 567      def __and__(self, x: bool) -> bool: ...
 568      @overload
 569      def __and__(self, x: int) -> int: ...
 570      @overload
 571      def __or__(self, x: bool) -> bool: ...
 572      @overload
 573      def __or__(self, x: int) -> int: ...
 574      @overload
 575      def __xor__(self, x: bool) -> bool: ...
 576      @overload
 577      def __xor__(self, x: int) -> int: ...
 578      @overload
 579      def __rand__(self, x: bool) -> bool: ...
 580      @overload
 581      def __rand__(self, x: int) -> int: ...
 582      @overload
 583      def __ror__(self, x: bool) -> bool: ...
 584      @overload
 585      def __ror__(self, x: int) -> int: ...
 586      @overload
 587      def __rxor__(self, x: bool) -> bool: ...
 588      @overload
 589      def __rxor__(self, x: int) -> int: ...
 590      def __getnewargs__(self) -> Tuple[int]: ...
 591  
 592  class slice(object):
 593      start: Any
 594      step: Any
 595      stop: Any
 596      @overload
 597      def __init__(self, stop: Any) -> None: ...
 598      @overload
 599      def __init__(self, start: Any, stop: Any, step: Any = ...) -> None: ...
 600      __hash__: None  # type: ignore
 601      def indices(self, len: int) -> Tuple[int, int, int]: ...
 602  
 603  class tuple(Sequence[_T_co], Generic[_T_co]):
 604      def __new__(cls: Type[_T], iterable: Iterable[_T_co] = ...) -> _T: ...
 605      def __len__(self) -> int: ...
 606      def __contains__(self, x: object) -> bool: ...
 607      @overload
 608      def __getitem__(self, x: int) -> _T_co: ...
 609      @overload
 610      def __getitem__(self, x: slice) -> Tuple[_T_co, ...]: ...
 611      def __iter__(self) -> Iterator[_T_co]: ...
 612      def __lt__(self, x: Tuple[_T_co, ...]) -> bool: ...
 613      def __le__(self, x: Tuple[_T_co, ...]) -> bool: ...
 614      def __gt__(self, x: Tuple[_T_co, ...]) -> bool: ...
 615      def __ge__(self, x: Tuple[_T_co, ...]) -> bool: ...
 616      @overload
 617      def __add__(self, x: Tuple[_T_co, ...]) -> Tuple[_T_co, ...]: ...
 618      @overload
 619      def __add__(self, x: Tuple[Any, ...]) -> Tuple[Any, ...]: ...
 620      def __mul__(self, n: int) -> Tuple[_T_co, ...]: ...
 621      def __rmul__(self, n: int) -> Tuple[_T_co, ...]: ...
 622      def count(self, __value: Any) -> int: ...
 623      def index(self, __value: Any) -> int: ...
 624  
 625  class function:
 626      # TODO not defined in builtins!
 627      __name__: str
 628      __module__: str
 629      __code__: CodeType
 630  
 631  class list(MutableSequence[_T], Generic[_T]):
 632      @overload
 633      def __init__(self) -> None: ...
 634      @overload
 635      def __init__(self, iterable: Iterable[_T]) -> None: ...
 636      def append(self, __object: _T) -> None: ...
 637      def extend(self, __iterable: Iterable[_T]) -> None: ...
 638      def pop(self, __index: int = ...) -> _T: ...
 639      def index(self, __value: _T, __start: int = ..., __stop: int = ...) -> int: ...
 640      def count(self, __value: _T) -> int: ...
 641      def insert(self, __index: int, __object: _T) -> None: ...
 642      def remove(self, __value: _T) -> None: ...
 643      def reverse(self) -> None: ...
 644      def sort(self, cmp: Callable[[_T, _T], Any] = ..., key: Callable[[_T], Any] = ..., reverse: bool = ...) -> None: ...
 645      def __len__(self) -> int: ...
 646      def __iter__(self) -> Iterator[_T]: ...
 647      def __str__(self) -> str: ...
 648      __hash__: None  # type: ignore
 649      @overload
 650      def __getitem__(self, i: int) -> _T: ...
 651      @overload
 652      def __getitem__(self, s: slice) -> List[_T]: ...
 653      @overload
 654      def __setitem__(self, i: int, o: _T) -> None: ...
 655      @overload
 656      def __setitem__(self, s: slice, o: Iterable[_T]) -> None: ...
 657      def __delitem__(self, i: Union[int, slice]) -> None: ...
 658      def __getslice__(self, start: int, stop: int) -> List[_T]: ...
 659      def __setslice__(self, start: int, stop: int, o: Sequence[_T]) -> None: ...
 660      def __delslice__(self, start: int, stop: int) -> None: ...
 661      def __add__(self, x: List[_T]) -> List[_T]: ...
 662      def __iadd__(self: _S, x: Iterable[_T]) -> _S: ...
 663      def __mul__(self, n: int) -> List[_T]: ...
 664      def __rmul__(self, n: int) -> List[_T]: ...
 665      def __contains__(self, o: object) -> bool: ...
 666      def __reversed__(self) -> Iterator[_T]: ...
 667      def __gt__(self, x: List[_T]) -> bool: ...
 668      def __ge__(self, x: List[_T]) -> bool: ...
 669      def __lt__(self, x: List[_T]) -> bool: ...
 670      def __le__(self, x: List[_T]) -> bool: ...
 671  
 672  class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
 673      # NOTE: Keyword arguments are special. If they are used, _KT must include
 674      #       str, but we have no way of enforcing it here.
 675      @overload
 676      def __init__(self, **kwargs: _VT) -> None: ...
 677      @overload
 678      def __init__(self, map: SupportsKeysAndGetItem[_KT, _VT], **kwargs: _VT) -> None: ...
 679      @overload
 680      def __init__(self, iterable: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None: ...
 681      def __new__(cls: Type[_T1], *args: Any, **kwargs: Any) -> _T1: ...
 682      def has_key(self, k: _KT) -> bool: ...
 683      def clear(self) -> None: ...
 684      def copy(self) -> Dict[_KT, _VT]: ...
 685      def popitem(self) -> Tuple[_KT, _VT]: ...
 686      def setdefault(self, __key: _KT, __default: _VT = ...) -> _VT: ...
 687      @overload
 688      def update(self, __m: Mapping[_KT, _VT], **kwargs: _VT) -> None: ...
 689      @overload
 690      def update(self, __m: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None: ...
 691      @overload
 692      def update(self, **kwargs: _VT) -> None: ...
 693      def iterkeys(self) -> Iterator[_KT]: ...
 694      def itervalues(self) -> Iterator[_VT]: ...
 695      def iteritems(self) -> Iterator[Tuple[_KT, _VT]]: ...
 696      def viewkeys(self) -> KeysView[_KT]: ...
 697      def viewvalues(self) -> ValuesView[_VT]: ...
 698      def viewitems(self) -> ItemsView[_KT, _VT]: ...
 699      @classmethod
 700      @overload
 701      def fromkeys(cls, __iterable: Iterable[_T]) -> Dict[_T, Any]: ...
 702      @classmethod
 703      @overload
 704      def fromkeys(cls, __iterable: Iterable[_T], __value: _S) -> Dict[_T, _S]: ...
 705      def __len__(self) -> int: ...
 706      def __getitem__(self, k: _KT) -> _VT: ...
 707      def __setitem__(self, k: _KT, v: _VT) -> None: ...
 708      def __delitem__(self, v: _KT) -> None: ...
 709      def __iter__(self) -> Iterator[_KT]: ...
 710      def __str__(self) -> str: ...
 711      __hash__: None  # type: ignore
 712  
 713  class set(MutableSet[_T], Generic[_T]):
 714      def __init__(self, iterable: Iterable[_T] = ...) -> None: ...
 715      def add(self, element: _T) -> None: ...
 716      def clear(self) -> None: ...
 717      def copy(self) -> Set[_T]: ...
 718      def difference(self, *s: Iterable[Any]) -> Set[_T]: ...
 719      def difference_update(self, *s: Iterable[Any]) -> None: ...
 720      def discard(self, element: _T) -> None: ...
 721      def intersection(self, *s: Iterable[Any]) -> Set[_T]: ...
 722      def intersection_update(self, *s: Iterable[Any]) -> None: ...
 723      def isdisjoint(self, s: Iterable[Any]) -> bool: ...
 724      def issubset(self, s: Iterable[Any]) -> bool: ...
 725      def issuperset(self, s: Iterable[Any]) -> bool: ...
 726      def pop(self) -> _T: ...
 727      def remove(self, element: _T) -> None: ...
 728      def symmetric_difference(self, s: Iterable[_T]) -> Set[_T]: ...
 729      def symmetric_difference_update(self, s: Iterable[_T]) -> None: ...
 730      def union(self, *s: Iterable[_T]) -> Set[_T]: ...
 731      def update(self, *s: Iterable[_T]) -> None: ...
 732      def __len__(self) -> int: ...
 733      def __contains__(self, o: object) -> bool: ...
 734      def __iter__(self) -> Iterator[_T]: ...
 735      def __str__(self) -> str: ...
 736      def __and__(self, s: AbstractSet[object]) -> Set[_T]: ...
 737      def __iand__(self, s: AbstractSet[object]) -> Set[_T]: ...
 738      def __or__(self, s: AbstractSet[_S]) -> Set[Union[_T, _S]]: ...
 739      def __ior__(self, s: AbstractSet[_S]) -> Set[Union[_T, _S]]: ...
 740      @overload
 741      def __sub__(self: Set[str], s: AbstractSet[Optional[Text]]) -> Set[_T]: ...
 742      @overload
 743      def __sub__(self, s: AbstractSet[Optional[_T]]) -> Set[_T]: ...
 744      @overload  # type: ignore
 745      def __isub__(self: Set[str], s: AbstractSet[Optional[Text]]) -> Set[_T]: ...
 746      @overload
 747      def __isub__(self, s: AbstractSet[Optional[_T]]) -> Set[_T]: ...
 748      def __xor__(self, s: AbstractSet[_S]) -> Set[Union[_T, _S]]: ...
 749      def __ixor__(self, s: AbstractSet[_S]) -> Set[Union[_T, _S]]: ...
 750      def __le__(self, s: AbstractSet[object]) -> bool: ...
 751      def __lt__(self, s: AbstractSet[object]) -> bool: ...
 752      def __ge__(self, s: AbstractSet[object]) -> bool: ...
 753      def __gt__(self, s: AbstractSet[object]) -> bool: ...
 754      __hash__: None  # type: ignore
 755  
 756  class frozenset(AbstractSet[_T_co], Generic[_T_co]):
 757      def __init__(self, iterable: Iterable[_T_co] = ...) -> None: ...
 758      def copy(self) -> FrozenSet[_T_co]: ...
 759      def difference(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ...
 760      def intersection(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ...
 761      def isdisjoint(self, s: Iterable[_T_co]) -> bool: ...
 762      def issubset(self, s: Iterable[object]) -> bool: ...
 763      def issuperset(self, s: Iterable[object]) -> bool: ...
 764      def symmetric_difference(self, s: Iterable[_T_co]) -> FrozenSet[_T_co]: ...
 765      def union(self, *s: Iterable[_T_co]) -> FrozenSet[_T_co]: ...
 766      def __len__(self) -> int: ...
 767      def __contains__(self, o: object) -> bool: ...
 768      def __iter__(self) -> Iterator[_T_co]: ...
 769      def __str__(self) -> str: ...
 770      def __and__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ...
 771      def __or__(self, s: AbstractSet[_S]) -> FrozenSet[Union[_T_co, _S]]: ...
 772      def __sub__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ...
 773      def __xor__(self, s: AbstractSet[_S]) -> FrozenSet[Union[_T_co, _S]]: ...
 774      def __le__(self, s: AbstractSet[object]) -> bool: ...
 775      def __lt__(self, s: AbstractSet[object]) -> bool: ...
 776      def __ge__(self, s: AbstractSet[object]) -> bool: ...
 777      def __gt__(self, s: AbstractSet[object]) -> bool: ...
 778  
 779  class enumerate(Iterator[Tuple[int, _T]], Generic[_T]):
 780      def __init__(self, iterable: Iterable[_T], start: int = ...) -> None: ...
 781      def __iter__(self) -> Iterator[Tuple[int, _T]]: ...
 782      def next(self) -> Tuple[int, _T]: ...
 783  
 784  class xrange(Sized, Iterable[int], Reversible[int]):
 785      @overload
 786      def __init__(self, stop: int) -> None: ...
 787      @overload
 788      def __init__(self, start: int, stop: int, step: int = ...) -> None: ...
 789      def __len__(self) -> int: ...
 790      def __iter__(self) -> Iterator[int]: ...
 791      def __getitem__(self, i: int) -> int: ...
 792      def __reversed__(self) -> Iterator[int]: ...
 793  
 794  class property(object):
 795      def __init__(
 796          self,
 797          fget: Optional[Callable[[Any], Any]] = ...,
 798          fset: Optional[Callable[[Any, Any], None]] = ...,
 799          fdel: Optional[Callable[[Any], None]] = ...,
 800          doc: Optional[str] = ...,
 801      ) -> None: ...
 802      def getter(self, fget: Callable[[Any], Any]) -> property: ...
 803      def setter(self, fset: Callable[[Any, Any], None]) -> property: ...
 804      def deleter(self, fdel: Callable[[Any], None]) -> property: ...
 805      def __get__(self, obj: Any, type: Optional[type] = ...) -> Any: ...
 806      def __set__(self, obj: Any, value: Any) -> None: ...
 807      def __delete__(self, obj: Any) -> None: ...
 808      def fget(self) -> Any: ...
 809      def fset(self, value: Any) -> None: ...
 810      def fdel(self) -> None: ...
 811  
 812  long = int
 813  
 814  class _NotImplementedType(Any):  # type: ignore
 815      # A little weird, but typing the __call__ as NotImplemented makes the error message
 816      # for NotImplemented() much better
 817      __call__: NotImplemented  # type: ignore
 818  
 819  NotImplemented: _NotImplementedType
 820  
 821  def abs(__x: SupportsAbs[_T]) -> _T: ...
 822  def all(__iterable: Iterable[object]) -> bool: ...
 823  def any(__iterable: Iterable[object]) -> bool: ...
 824  def apply(__func: Callable[..., _T], __args: Optional[Sequence[Any]] = ..., __kwds: Optional[Mapping[str, Any]] = ...) -> _T: ...
 825  def bin(__number: Union[int, _SupportsIndex]) -> str: ...
 826  def callable(__obj: object) -> bool: ...
 827  def chr(__i: int) -> str: ...
 828  def cmp(__x: Any, __y: Any) -> int: ...
 829  
 830  _N1 = TypeVar("_N1", bool, int, float, complex)
 831  
 832  def coerce(__x: _N1, __y: _N1) -> Tuple[_N1, _N1]: ...
 833  
 834  # This class is to be exported as PathLike from os,
 835  # but we define it here as _PathLike to avoid import cycle issues.
 836  # See https://github.com/python/typeshed/pull/991#issuecomment-288160993
 837  _AnyStr_co = TypeVar("_AnyStr_co", str, bytes, covariant=True)
 838  @runtime_checkable
 839  class _PathLike(Protocol[_AnyStr_co]):
 840      def __fspath__(self) -> _AnyStr_co: ...
 841  
 842  def compile(source: Union[Text, mod], filename: Text, mode: Text, flags: int = ..., dont_inherit: int = ...) -> Any: ...
 843  def delattr(__obj: Any, __name: Text) -> None: ...
 844  def dir(__o: object = ...) -> List[str]: ...
 845  
 846  _N2 = TypeVar("_N2", int, float)
 847  
 848  def divmod(__x: _N2, __y: _N2) -> Tuple[_N2, _N2]: ...
 849  def eval(
 850      __source: Union[Text, bytes, CodeType], __globals: Optional[Dict[str, Any]] = ..., __locals: Optional[Mapping[str, Any]] = ...
 851  ) -> Any: ...
 852  def execfile(__filename: str, __globals: Optional[Dict[str, Any]] = ..., __locals: Optional[Dict[str, Any]] = ...) -> None: ...
 853  def exit(code: object = ...) -> NoReturn: ...
 854  @overload
 855  def filter(__function: Callable[[AnyStr], Any], __iterable: AnyStr) -> AnyStr: ...  # type: ignore
 856  @overload
 857  def filter(__function: None, __iterable: Tuple[Optional[_T], ...]) -> Tuple[_T, ...]: ...  # type: ignore
 858  @overload
 859  def filter(__function: Callable[[_T], Any], __iterable: Tuple[_T, ...]) -> Tuple[_T, ...]: ...  # type: ignore
 860  @overload
 861  def filter(__function: None, __iterable: Iterable[Optional[_T]]) -> List[_T]: ...
 862  @overload
 863  def filter(__function: Callable[[_T], Any], __iterable: Iterable[_T]) -> List[_T]: ...
 864  def format(__value: object, __format_spec: str = ...) -> str: ...  # TODO unicode
 865  def getattr(__o: Any, name: Text, __default: Any = ...) -> Any: ...
 866  def globals() -> Dict[str, Any]: ...
 867  def hasattr(__obj: Any, __name: Text) -> bool: ...
 868  def hash(__obj: object) -> int: ...
 869  def hex(__number: Union[int, _SupportsIndex]) -> str: ...
 870  def id(__obj: object) -> int: ...
 871  def input(__prompt: Any = ...) -> Any: ...
 872  def intern(__string: str) -> str: ...
 873  @overload
 874  def iter(__iterable: Iterable[_T]) -> Iterator[_T]: ...
 875  @overload
 876  def iter(__function: Callable[[], Optional[_T]], __sentinel: None) -> Iterator[_T]: ...
 877  @overload
 878  def iter(__function: Callable[[], _T], __sentinel: Any) -> Iterator[_T]: ...
 879  def isinstance(__obj: object, __class_or_tuple: Union[type, Tuple[Union[type, Tuple[Any, ...]], ...]]) -> bool: ...
 880  def issubclass(__cls: type, __class_or_tuple: Union[type, Tuple[Union[type, Tuple[Any, ...]], ...]]) -> bool: ...
 881  def len(__obj: Sized) -> int: ...
 882  def locals() -> Dict[str, Any]: ...
 883  @overload
 884  def map(__func: None, __iter1: Iterable[_T1]) -> List[_T1]: ...
 885  @overload
 886  def map(__func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> List[Tuple[_T1, _T2]]: ...
 887  @overload
 888  def map(__func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]) -> List[Tuple[_T1, _T2, _T3]]: ...
 889  @overload
 890  def map(
 891      __func: None, __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4]
 892  ) -> List[Tuple[_T1, _T2, _T3, _T4]]: ...
 893  @overload
 894  def map(
 895      __func: None,
 896      __iter1: Iterable[_T1],
 897      __iter2: Iterable[_T2],
 898      __iter3: Iterable[_T3],
 899      __iter4: Iterable[_T4],
 900      __iter5: Iterable[_T5],
 901  ) -> List[Tuple[_T1, _T2, _T3, _T4, _T5]]: ...
 902  @overload
 903  def map(
 904      __func: None,
 905      __iter1: Iterable[Any],
 906      __iter2: Iterable[Any],
 907      __iter3: Iterable[Any],
 908      __iter4: Iterable[Any],
 909      __iter5: Iterable[Any],
 910      __iter6: Iterable[Any],
 911      *iterables: Iterable[Any],
 912  ) -> List[Tuple[Any, ...]]: ...
 913  @overload
 914  def map(__func: Callable[[_T1], _S], __iter1: Iterable[_T1]) -> List[_S]: ...
 915  @overload
 916  def map(__func: Callable[[_T1, _T2], _S], __iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> List[_S]: ...
 917  @overload
 918  def map(
 919      __func: Callable[[_T1, _T2, _T3], _S], __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]
 920  ) -> List[_S]: ...
 921  @overload
 922  def map(
 923      __func: Callable[[_T1, _T2, _T3, _T4], _S],
 924      __iter1: Iterable[_T1],
 925      __iter2: Iterable[_T2],
 926      __iter3: Iterable[_T3],
 927      __iter4: Iterable[_T4],
 928  ) -> List[_S]: ...
 929  @overload
 930  def map(
 931      __func: Callable[[_T1, _T2, _T3, _T4, _T5], _S],
 932      __iter1: Iterable[_T1],
 933      __iter2: Iterable[_T2],
 934      __iter3: Iterable[_T3],
 935      __iter4: Iterable[_T4],
 936      __iter5: Iterable[_T5],
 937  ) -> List[_S]: ...
 938  @overload
 939  def map(
 940      __func: Callable[..., _S],
 941      __iter1: Iterable[Any],
 942      __iter2: Iterable[Any],
 943      __iter3: Iterable[Any],
 944      __iter4: Iterable[Any],
 945      __iter5: Iterable[Any],
 946      __iter6: Iterable[Any],
 947      *iterables: Iterable[Any],
 948  ) -> List[_S]: ...
 949  @overload
 950  def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ...
 951  @overload
 952  def max(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ...
 953  @overload
 954  def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ...
 955  @overload
 956  def min(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ...
 957  @overload
 958  def next(__i: Iterator[_T]) -> _T: ...
 959  @overload
 960  def next(__i: Iterator[_T], default: _VT) -> Union[_T, _VT]: ...
 961  def oct(__number: Union[int, _SupportsIndex]) -> str: ...
 962  def open(name: Union[unicode, int], mode: unicode = ..., buffering: int = ...) -> BinaryIO: ...
 963  def ord(__c: Union[Text, bytes]) -> int: ...
 964  
 965  # This is only available after from __future__ import print_function.
 966  def print(
 967      *values: object, sep: Optional[Text] = ..., end: Optional[Text] = ..., file: Optional[SupportsWrite[Any]] = ...
 968  ) -> None: ...
 969  
 970  _E = TypeVar("_E", contravariant=True)
 971  _M = TypeVar("_M", contravariant=True)
 972  
 973  class _SupportsPow2(Protocol[_E, _T_co]):
 974      def __pow__(self, __other: _E) -> _T_co: ...
 975  
 976  class _SupportsPow3(Protocol[_E, _M, _T_co]):
 977      def __pow__(self, __other: _E, __modulo: _M) -> _T_co: ...
 978  
 979  @overload
 980  def pow(__base: int, __exp: int, __mod: None = ...) -> Any: ...  # returns int or float depending on whether exp is non-negative
 981  @overload
 982  def pow(__base: int, __exp: int, __mod: int) -> int: ...
 983  @overload
 984  def pow(__base: float, __exp: float, __mod: None = ...) -> float: ...
 985  @overload
 986  def pow(__base: _SupportsPow2[_E, _T_co], __exp: _E) -> _T_co: ...
 987  @overload
 988  def pow(__base: _SupportsPow3[_E, _M, _T_co], __exp: _E, __mod: _M) -> _T_co: ...
 989  def quit(code: object = ...) -> NoReturn: ...
 990  def range(__x: int, __y: int = ..., __step: int = ...) -> List[int]: ...  # noqa: F811
 991  def raw_input(__prompt: Any = ...) -> str: ...
 992  @overload
 993  def reduce(__function: Callable[[_T, _S], _T], __iterable: Iterable[_S], __initializer: _T) -> _T: ...
 994  @overload
 995  def reduce(__function: Callable[[_T, _T], _T], __iterable: Iterable[_T]) -> _T: ...
 996  def reload(__module: Any) -> Any: ...
 997  @overload
 998  def reversed(__sequence: Sequence[_T]) -> Iterator[_T]: ...
 999  @overload
1000  def reversed(__sequence: Reversible[_T]) -> Iterator[_T]: ...
1001  def repr(__obj: object) -> str: ...
1002  @overload
1003  def round(number: float) -> float: ...
1004  @overload
1005  def round(number: float, ndigits: int) -> float: ...
1006  @overload
1007  def round(number: SupportsFloat) -> float: ...
1008  @overload
1009  def round(number: SupportsFloat, ndigits: int) -> float: ...
1010  def setattr(__obj: Any, __name: Text, __value: Any) -> None: ...
1011  def sorted(
1012      __iterable: Iterable[_T],
1013      *,
1014      cmp: Callable[[_T, _T], int] = ...,
1015      key: Optional[Callable[[_T], Any]] = ...,
1016      reverse: bool = ...,
1017  ) -> List[_T]: ...
1018  @overload
1019  def sum(__iterable: Iterable[_T]) -> Union[_T, int]: ...
1020  @overload
1021  def sum(__iterable: Iterable[_T], __start: _S) -> Union[_T, _S]: ...
1022  def unichr(__i: int) -> unicode: ...
1023  def vars(__object: Any = ...) -> Dict[str, Any]: ...
1024  @overload
1025  def zip(__iter1: Iterable[_T1]) -> List[Tuple[_T1]]: ...
1026  @overload
1027  def zip(__iter1: Iterable[_T1], __iter2: Iterable[_T2]) -> List[Tuple[_T1, _T2]]: ...
1028  @overload
1029  def zip(__iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3]) -> List[Tuple[_T1, _T2, _T3]]: ...
1030  @overload
1031  def zip(
1032      __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4]
1033  ) -> List[Tuple[_T1, _T2, _T3, _T4]]: ...
1034  @overload
1035  def zip(
1036      __iter1: Iterable[_T1], __iter2: Iterable[_T2], __iter3: Iterable[_T3], __iter4: Iterable[_T4], __iter5: Iterable[_T5]
1037  ) -> List[Tuple[_T1, _T2, _T3, _T4, _T5]]: ...
1038  @overload
1039  def zip(
1040      __iter1: Iterable[Any],
1041      __iter2: Iterable[Any],
1042      __iter3: Iterable[Any],
1043      __iter4: Iterable[Any],
1044      __iter5: Iterable[Any],
1045      __iter6: Iterable[Any],
1046      *iterables: Iterable[Any],
1047  ) -> List[Tuple[Any, ...]]: ...
1048  def __import__(
1049      name: Text,
1050      globals: Optional[Mapping[str, Any]] = ...,
1051      locals: Optional[Mapping[str, Any]] = ...,
1052      fromlist: Sequence[str] = ...,
1053      level: int = ...,
1054  ) -> Any: ...
1055  
1056  # Actually the type of Ellipsis is <type 'ellipsis'>, but since it's
1057  # not exposed anywhere under that name, we make it private here.
1058  class ellipsis: ...
1059  
1060  Ellipsis: ellipsis
1061  
1062  # TODO: buffer support is incomplete; e.g. some_string.startswith(some_buffer) doesn't type check.
1063  _AnyBuffer = TypeVar("_AnyBuffer", str, unicode, bytearray, buffer)
1064  
1065  class buffer(Sized):
1066      def __init__(self, object: _AnyBuffer, offset: int = ..., size: int = ...) -> None: ...
1067      def __add__(self, other: _AnyBuffer) -> str: ...
1068      def __cmp__(self, other: _AnyBuffer) -> bool: ...
1069      def __getitem__(self, key: Union[int, slice]) -> str: ...
1070      def __getslice__(self, i: int, j: int) -> str: ...
1071      def __len__(self) -> int: ...
1072      def __mul__(self, x: int) -> str: ...
1073  
1074  class BaseException(object):
1075      args: Tuple[Any, ...]
1076      message: Any
1077      def __init__(self, *args: object) -> None: ...
1078      def __str__(self) -> str: ...
1079      def __repr__(self) -> str: ...
1080      def __getitem__(self, i: int) -> Any: ...
1081      def __getslice__(self, start: int, stop: int) -> Tuple[Any, ...]: ...
1082  
1083  class GeneratorExit(BaseException): ...
1084  class KeyboardInterrupt(BaseException): ...
1085  
1086  class SystemExit(BaseException):
1087      code: int
1088  
1089  class Exception(BaseException): ...
1090  class StopIteration(Exception): ...
1091  class StandardError(Exception): ...
1092  
1093  _StandardError = StandardError
1094  
1095  class EnvironmentError(StandardError):
1096      errno: int
1097      strerror: str
1098      # TODO can this be unicode?
1099      filename: str
1100  
1101  class OSError(EnvironmentError): ...
1102  class IOError(EnvironmentError): ...
1103  class ArithmeticError(_StandardError): ...
1104  class AssertionError(_StandardError): ...
1105  class AttributeError(_StandardError): ...
1106  class BufferError(_StandardError): ...
1107  class EOFError(_StandardError): ...
1108  class ImportError(_StandardError): ...
1109  class LookupError(_StandardError): ...
1110  class MemoryError(_StandardError): ...
1111  class NameError(_StandardError): ...
1112  class ReferenceError(_StandardError): ...
1113  class RuntimeError(_StandardError): ...
1114  
1115  class SyntaxError(_StandardError):
1116      msg: str
1117      lineno: Optional[int]
1118      offset: Optional[int]
1119      text: Optional[str]
1120      filename: Optional[str]
1121  
1122  class SystemError(_StandardError): ...
1123  class TypeError(_StandardError): ...
1124  class ValueError(_StandardError): ...
1125  class FloatingPointError(ArithmeticError): ...
1126  class OverflowError(ArithmeticError): ...
1127  class ZeroDivisionError(ArithmeticError): ...
1128  class IndexError(LookupError): ...
1129  class KeyError(LookupError): ...
1130  class UnboundLocalError(NameError): ...
1131  
1132  class WindowsError(OSError):
1133      winerror: int
1134  
1135  class NotImplementedError(RuntimeError): ...
1136  class IndentationError(SyntaxError): ...
1137  class TabError(IndentationError): ...
1138  class UnicodeError(ValueError): ...
1139  
1140  class UnicodeDecodeError(UnicodeError):
1141      encoding: str
1142      object: bytes
1143      start: int
1144      end: int
1145      reason: str
1146      def __init__(self, __encoding: str, __object: bytes, __start: int, __end: int, __reason: str) -> None: ...
1147  
1148  class UnicodeEncodeError(UnicodeError):
1149      encoding: str
1150      object: Text
1151      start: int
1152      end: int
1153      reason: str
1154      def __init__(self, __encoding: str, __object: Text, __start: int, __end: int, __reason: str) -> None: ...
1155  
1156  class UnicodeTranslateError(UnicodeError): ...
1157  class Warning(Exception): ...
1158  class UserWarning(Warning): ...
1159  class DeprecationWarning(Warning): ...
1160  class SyntaxWarning(Warning): ...
1161  class RuntimeWarning(Warning): ...
1162  class FutureWarning(Warning): ...
1163  class PendingDeprecationWarning(Warning): ...
1164  class ImportWarning(Warning): ...
1165  class UnicodeWarning(Warning): ...
1166  class BytesWarning(Warning): ...
1167  
1168  class file(BinaryIO):
1169      @overload
1170      def __init__(self, file: str, mode: str = ..., buffering: int = ...) -> None: ...
1171      @overload
1172      def __init__(self, file: unicode, mode: str = ..., buffering: int = ...) -> None: ...
1173      @overload
1174      def __init__(self, file: int, mode: str = ..., buffering: int = ...) -> None: ...
1175      def __iter__(self) -> Iterator[str]: ...
1176      def next(self) -> str: ...
1177      def read(self, n: int = ...) -> str: ...
1178      def __enter__(self) -> BinaryIO: ...
1179      def __exit__(
1180          self, t: Optional[type] = ..., exc: Optional[BaseException] = ..., tb: Optional[Any] = ...
1181      ) -> Optional[bool]: ...
1182      def flush(self) -> None: ...
1183      def fileno(self) -> int: ...
1184      def isatty(self) -> bool: ...
1185      def close(self) -> None: ...
1186      def readable(self) -> bool: ...
1187      def writable(self) -> bool: ...
1188      def seekable(self) -> bool: ...
1189      def seek(self, offset: int, whence: int = ...) -> int: ...
1190      def tell(self) -> int: ...
1191      def readline(self, limit: int = ...) -> str: ...
1192      def readlines(self, hint: int = ...) -> List[str]: ...
1193      def write(self, data: str) -> int: ...
1194      def writelines(self, data: Iterable[str]) -> None: ...
1195      def truncate(self, pos: Optional[int] = ...) -> int: ...
1196