Skip to content

Fix some errors with --disallow-any-generics #3276

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Sep 29, 2019
24 changes: 12 additions & 12 deletions stdlib/2/__builtin__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -53,30 +53,30 @@ class object:
def __getattribute__(self, name: str) -> Any: ...
def __delattr__(self, name: str) -> None: ...
def __sizeof__(self) -> int: ...
def __reduce__(self) -> tuple: ...
def __reduce_ex__(self, protocol: int) -> tuple: ...
def __reduce__(self) -> Tuple[Any, ...]: ...
def __reduce_ex__(self, protocol: int) -> Tuple[Any, ...]: ...
if sys.version_info >= (3,):
def __dir__(self) -> Iterable[str]: ...
if sys.version_info >= (3, 6):
def __init_subclass__(cls) -> None: ...

class staticmethod(object): # Special, only valid as a decorator.
__func__: Callable
__func__: Callable[..., Any]
if sys.version_info >= (3,):
__isabstractmethod__: bool

def __init__(self, f: Callable) -> None: ...
def __init__(self, f: Callable[..., Any]) -> None: ...
def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ...
def __get__(self, obj: _T, type: Optional[Type[_T]] = ...) -> Callable: ...
def __get__(self, obj: _T, type: Optional[Type[_T]] = ...) -> Callable[..., Any]: ...

class classmethod(object): # Special, only valid as a decorator.
__func__: Callable
__func__: Callable[..., Any]
if sys.version_info >= (3,):
__isabstractmethod__: bool

def __init__(self, f: Callable) -> None: ...
def __init__(self, f: Callable[..., Any]) -> None: ...
def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ...
def __get__(self, obj: _T, type: Optional[Type[_T]] = ...) -> Callable: ...
def __get__(self, obj: _T, type: Optional[Type[_T]] = ...) -> Callable[..., Any]: ...

class type(object):
__base__: type
Expand Down Expand Up @@ -1130,7 +1130,7 @@ if sys.version_info >= (3, 6):
# See https://github.com/python/typeshed/pull/991#issuecomment-288160993
class _PathLike(Generic[AnyStr]):
def __fspath__(self) -> AnyStr: ...
def compile(source: Union[str, bytes, mod, AST], filename: Union[str, bytes, _PathLike], mode: str, flags: int = ..., dont_inherit: int = ..., optimize: int = ...) -> Any: ...
def compile(source: Union[str, bytes, mod, AST], filename: Union[str, bytes, _PathLike[Any]], mode: str, flags: int = ..., dont_inherit: int = ..., optimize: int = ...) -> Any: ...
elif sys.version_info >= (3,):
def compile(source: Union[str, bytes, mod, AST], filename: Union[str, bytes], mode: str, flags: int = ..., dont_inherit: int = ..., optimize: int = ...) -> Any: ...
else:
Expand Down Expand Up @@ -1187,8 +1187,8 @@ else:
def iter(__iterable: Iterable[_T]) -> Iterator[_T]: ...
@overload
def iter(__function: Callable[[], _T], __sentinel: _T) -> Iterator[_T]: ...
def isinstance(__o: object, __t: Union[type, Tuple[Union[type, Tuple], ...]]) -> bool: ...
def issubclass(__cls: type, __classinfo: Union[type, Tuple[Union[type, Tuple], ...]]) -> bool: ...
def isinstance(__o: object, __t: Union[type, Tuple[Union[type, Tuple[Any, ...]], ...]]) -> bool: ...
def issubclass(__cls: type, __classinfo: Union[type, Tuple[Union[type, Tuple[Any, ...]], ...]]) -> bool: ...
def len(__o: Sized) -> int: ...
if sys.version_info >= (3,):
def license() -> None: ...
Expand Down Expand Up @@ -1324,7 +1324,7 @@ def next(__i: Iterator[_T], default: _VT) -> Union[_T, _VT]: ...
def oct(__i: Union[int, _SupportsIndex]) -> str: ...

if sys.version_info >= (3, 6):
def open(file: Union[str, bytes, int, _PathLike], mode: str = ..., buffering: int = ..., encoding: Optional[str] = ...,
def open(file: Union[str, bytes, int, _PathLike[Any]], mode: str = ..., buffering: int = ..., encoding: Optional[str] = ...,
errors: Optional[str] = ..., newline: Optional[str] = ..., closefd: bool = ...,
opener: Optional[Callable[[str, int], int]] = ...) -> IO[Any]: ...
elif sys.version_info >= (3,):
Expand Down
2 changes: 1 addition & 1 deletion stdlib/2and3/_weakrefset.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ from typing import Iterator, Any, Iterable, MutableSet, Optional, TypeVar, Gener

_S = TypeVar('_S')
_T = TypeVar('_T')
_SelfT = TypeVar('_SelfT', bound=WeakSet)
_SelfT = TypeVar('_SelfT', bound=WeakSet[Any])

class WeakSet(MutableSet[_T], Generic[_T]):
def __init__(self, data: Optional[Iterable[_T]] = ...) -> None: ...
Expand Down
6 changes: 3 additions & 3 deletions stdlib/2and3/asyncore.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ class dispatcher:
def readable(self) -> bool: ...
def writable(self) -> bool: ...
def listen(self, backlog: int) -> None: ...
def bind(self, address: Union[tuple, str]) -> None: ...
def connect(self, address: Union[tuple, str]) -> None: ...
def bind(self, address: Union[Tuple[Any, ...], str]) -> None: ...
def connect(self, address: Union[Tuple[Any, ...], str]) -> None: ...
def accept(self) -> Optional[Tuple[SocketType, Any]]: ...
def send(self, data: bytes) -> int: ...
def recv(self, buffer_size: int) -> bytes: ...
Expand Down Expand Up @@ -103,7 +103,7 @@ class dispatcher:
def recvfrom_into(self, buffer: bytes, nbytes: int, flags: int = ...) -> Any: ...
def recv_into(self, buffer: bytes, nbytes: int, flags: int = ...) -> Any: ...
def sendall(self, data: bytes, flags: int = ...) -> None: ...
def sendto(self, data: bytes, address: Union[tuple, str], flags: int = ...) -> int: ...
def sendto(self, data: bytes, address: Union[Tuple[str, int], str], flags: int = ...) -> int: ...
def setblocking(self, flag: bool) -> None: ...
def settimeout(self, value: Union[float, None]) -> None: ...
def setsockopt(self, level: int, optname: int, value: Union[int, bytes]) -> None: ...
Expand Down
21 changes: 6 additions & 15 deletions stdlib/2and3/bisect.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,10 @@ from typing import Any, Sequence, MutableSequence, TypeVar

_T = TypeVar('_T')

# TODO uncomment when mypy# 2035 is fixed
# def bisect_left(a: Sequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
# def bisect_right(a: Sequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
# def bisect(a: Sequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
#
# def insort_left(a: MutableSequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
# def insort_right(a: MutableSequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
# def insort(a: MutableSequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
def bisect_left(a: Sequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
def bisect_right(a: Sequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
def bisect(a: Sequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...

def bisect_left(a: Sequence, x: Any, lo: int = ..., hi: int = ...) -> int: ...
def bisect_right(a: Sequence, x: Any, lo: int = ..., hi: int = ...) -> int: ...
def bisect(a: Sequence, x: Any, lo: int = ..., hi: int = ...) -> int: ...

def insort_left(a: MutableSequence, x: Any, lo: int = ..., hi: int = ...) -> int: ...
def insort_right(a: MutableSequence, x: Any, lo: int = ..., hi: int = ...) -> int: ...
def insort(a: MutableSequence, x: Any, lo: int = ..., hi: int = ...) -> int: ...
def insort_left(a: MutableSequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
def insort_right(a: MutableSequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
def insort(a: MutableSequence[_T], x: _T, lo: int = ..., hi: int = ...) -> int: ...
24 changes: 12 additions & 12 deletions stdlib/2and3/builtins.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -53,30 +53,30 @@ class object:
def __getattribute__(self, name: str) -> Any: ...
def __delattr__(self, name: str) -> None: ...
def __sizeof__(self) -> int: ...
def __reduce__(self) -> tuple: ...
def __reduce_ex__(self, protocol: int) -> tuple: ...
def __reduce__(self) -> Tuple[Any, ...]: ...
def __reduce_ex__(self, protocol: int) -> Tuple[Any, ...]: ...
if sys.version_info >= (3,):
def __dir__(self) -> Iterable[str]: ...
if sys.version_info >= (3, 6):
def __init_subclass__(cls) -> None: ...

class staticmethod(object): # Special, only valid as a decorator.
__func__: Callable
__func__: Callable[..., Any]
if sys.version_info >= (3,):
__isabstractmethod__: bool

def __init__(self, f: Callable) -> None: ...
def __init__(self, f: Callable[..., Any]) -> None: ...
def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ...
def __get__(self, obj: _T, type: Optional[Type[_T]] = ...) -> Callable: ...
def __get__(self, obj: _T, type: Optional[Type[_T]] = ...) -> Callable[..., Any]: ...

class classmethod(object): # Special, only valid as a decorator.
__func__: Callable
__func__: Callable[..., Any]
if sys.version_info >= (3,):
__isabstractmethod__: bool

def __init__(self, f: Callable) -> None: ...
def __init__(self, f: Callable[..., Any]) -> None: ...
def __new__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T: ...
def __get__(self, obj: _T, type: Optional[Type[_T]] = ...) -> Callable: ...
def __get__(self, obj: _T, type: Optional[Type[_T]] = ...) -> Callable[..., Any]: ...

class type(object):
__base__: type
Expand Down Expand Up @@ -1130,7 +1130,7 @@ if sys.version_info >= (3, 6):
# See https://github.com/python/typeshed/pull/991#issuecomment-288160993
class _PathLike(Generic[AnyStr]):
def __fspath__(self) -> AnyStr: ...
def compile(source: Union[str, bytes, mod, AST], filename: Union[str, bytes, _PathLike], mode: str, flags: int = ..., dont_inherit: int = ..., optimize: int = ...) -> Any: ...
def compile(source: Union[str, bytes, mod, AST], filename: Union[str, bytes, _PathLike[Any]], mode: str, flags: int = ..., dont_inherit: int = ..., optimize: int = ...) -> Any: ...
elif sys.version_info >= (3,):
def compile(source: Union[str, bytes, mod, AST], filename: Union[str, bytes], mode: str, flags: int = ..., dont_inherit: int = ..., optimize: int = ...) -> Any: ...
else:
Expand Down Expand Up @@ -1187,8 +1187,8 @@ else:
def iter(__iterable: Iterable[_T]) -> Iterator[_T]: ...
@overload
def iter(__function: Callable[[], _T], __sentinel: _T) -> Iterator[_T]: ...
def isinstance(__o: object, __t: Union[type, Tuple[Union[type, Tuple], ...]]) -> bool: ...
def issubclass(__cls: type, __classinfo: Union[type, Tuple[Union[type, Tuple], ...]]) -> bool: ...
def isinstance(__o: object, __t: Union[type, Tuple[Union[type, Tuple[Any, ...]], ...]]) -> bool: ...
def issubclass(__cls: type, __classinfo: Union[type, Tuple[Union[type, Tuple[Any, ...]], ...]]) -> bool: ...
def len(__o: Sized) -> int: ...
if sys.version_info >= (3,):
def license() -> None: ...
Expand Down Expand Up @@ -1324,7 +1324,7 @@ def next(__i: Iterator[_T], default: _VT) -> Union[_T, _VT]: ...
def oct(__i: Union[int, _SupportsIndex]) -> str: ...

if sys.version_info >= (3, 6):
def open(file: Union[str, bytes, int, _PathLike], mode: str = ..., buffering: int = ..., encoding: Optional[str] = ...,
def open(file: Union[str, bytes, int, _PathLike[Any]], mode: str = ..., buffering: int = ..., encoding: Optional[str] = ...,
errors: Optional[str] = ..., newline: Optional[str] = ..., closefd: bool = ...,
opener: Optional[Callable[[str, int], int]] = ...) -> IO[Any]: ...
elif sys.version_info >= (3,):
Expand Down
2 changes: 1 addition & 1 deletion stdlib/2and3/cgi.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ class FieldStorage(object):
if sys.version_info < (3, 0):
from UserDict import UserDict

class FormContentDict(UserDict):
class FormContentDict(UserDict[str, List[str]]):
query_string: str
def __init__(self, environ: Mapping[str, str] = ..., keep_blank_values: int = ..., strict_parsing: int = ...) -> None: ...

Expand Down
4 changes: 2 additions & 2 deletions stdlib/2and3/contextlib.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ _F = TypeVar('_F', bound=Callable[..., Any])
_ExitFunc = Callable[[Optional[Type[BaseException]],
Optional[BaseException],
Optional[TracebackType]], bool]
_CM_EF = TypeVar('_CM_EF', ContextManager, _ExitFunc)
_CM_EF = TypeVar('_CM_EF', ContextManager[Any], _ExitFunc)

if sys.version_info >= (3, 2):
class _GeneratorContextManager(ContextManager[_T], Generic[_T]):
Expand Down Expand Up @@ -85,7 +85,7 @@ if sys.version_info >= (3, 7):
Optional[BaseException],
Optional[TracebackType]], Awaitable[bool]]
_CallbackCoroFunc = Callable[..., Awaitable[Any]]
_ACM_EF = TypeVar('_ACM_EF', AsyncContextManager, _ExitCoroFunc)
_ACM_EF = TypeVar('_ACM_EF', AsyncContextManager[Any], _ExitCoroFunc)

class AsyncExitStack(AsyncContextManager[AsyncExitStack]):
def __init__(self) -> None: ...
Expand Down
4 changes: 2 additions & 2 deletions stdlib/2and3/formatter.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,9 @@ class AbstractWriter(NullWriter):
def send_literal_data(self, data: str) -> None: ...

class DumbWriter(NullWriter):
file: IO
file: IO[str]
maxcol: int
def __init__(self, file: Optional[IO] = ..., maxcol: int = ...) -> None: ...
def __init__(self, file: Optional[IO[str]] = ..., maxcol: int = ...) -> None: ...
def reset(self) -> None: ...
def send_paragraph(self, blankline: int) -> None: ...
def send_line_break(self) -> None: ...
Expand Down
8 changes: 4 additions & 4 deletions stdlib/2and3/imaplib.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class IMAP4:
def recent(self) -> CommandResults: ...
def response(self, code: str) -> CommandResults: ...
def append(self, mailbox: str, flags: str, date_time: str, message: str) -> str: ...
def authenticate(self, mechanism: str, authobject: Callable) -> Tuple[str, str]: ...
def authenticate(self, mechanism: str, authobject: Callable[[bytes], Optional[bytes]]) -> Tuple[str, str]: ...
def capability(self) -> CommandResults: ...
def check(self) -> CommandResults: ...
def close(self) -> CommandResults: ...
Expand Down Expand Up @@ -111,7 +111,7 @@ class IMAP4_stream(IMAP4):
port: int = ...
sock: _socket = ...
file: IO[Any] = ...
process: subprocess.Popen = ...
process: subprocess.Popen[bytes] = ...
writefile: IO[Any] = ...
readfile: IO[Any] = ...
def open(self, host: str = ..., port: Optional[int] = ...) -> None: ...
Expand All @@ -121,8 +121,8 @@ class IMAP4_stream(IMAP4):
def shutdown(self) -> None: ...

class _Authenticator:
mech: Callable = ...
def __init__(self, mechinst: Callable) -> None: ...
mech: Callable[[bytes], bytes] = ...
def __init__(self, mechinst: Callable[[bytes], bytes]) -> None: ...
def process(self, data: str) -> str: ...
def encode(self, inp: bytes) -> str: ...
def decode(self, inp: str) -> bytes: ...
Expand Down
2 changes: 1 addition & 1 deletion stdlib/2and3/lib2to3/pgen2/literals.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ from typing import Dict, Match, Text

simple_escapes: Dict[Text, Text]

def escape(m: Match) -> Text: ...
def escape(m: Match[str]) -> Text: ...
def evalString(s: Text) -> Text: ...
def test() -> None: ...
2 changes: 1 addition & 1 deletion stdlib/2and3/logging/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ if sys.version_info >= (3,):
_levelToName: Dict[int, str]
_nameToLevel: Dict[str, int]
else:
_levelNames: dict
_levelNames: Dict[Union[int, str], Union[str, int]] # Union[int:str, str:int]

class Filterer(object):
filters: List[Filter]
Expand Down
8 changes: 4 additions & 4 deletions stdlib/2and3/logging/handlers.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -198,19 +198,19 @@ class HTTPHandler(Handler):
if sys.version_info >= (3,):
class QueueHandler(Handler):
if sys.version_info >= (3, 7):
def __init__(self, queue: Union[SimpleQueue, Queue]) -> None: ...
def __init__(self, queue: Union[SimpleQueue[Any], Queue[Any]]) -> None: ...
else:
def __init__(self, queue: Queue) -> None: ...
def __init__(self, queue: Queue[Any]) -> None: ...
def prepare(self, record: LogRecord) -> Any: ...
def enqueue(self, record: LogRecord) -> None: ...

class QueueListener:
if sys.version_info >= (3, 7):
def __init__(self, queue: Union[SimpleQueue, Queue],
def __init__(self, queue: Union[SimpleQueue[Any], Queue[Any]],
*handlers: Handler,
respect_handler_level: bool = ...) -> None: ...
elif sys.version_info >= (3, 5):
def __init__(self, queue: Queue, *handlers: Handler,
def __init__(self, queue: Queue[Any], *handlers: Handler,
respect_handler_level: bool = ...) -> None: ...
else:
def __init__(self,
Expand Down
2 changes: 1 addition & 1 deletion stdlib/2and3/math.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ else:
def floor(x: SupportsFloat) -> float: ...
def fmod(x: SupportsFloat, y: SupportsFloat) -> float: ...
def frexp(x: SupportsFloat) -> Tuple[float, int]: ...
def fsum(iterable: Iterable) -> float: ...
def fsum(iterable: Iterable[float]) -> float: ...
def gamma(x: SupportsFloat) -> float: ...
if sys.version_info >= (3, 5):
def gcd(a: int, b: int) -> int: ...
Expand Down
4 changes: 2 additions & 2 deletions stdlib/2and3/mmap.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class _mmap(Generic[AnyStr]):
def __len__(self) -> int: ...

if sys.version_info >= (3,):
class mmap(_mmap, ContextManager[mmap], Iterable[bytes], Sized):
class mmap(_mmap[bytes], ContextManager[mmap], Iterable[bytes], Sized):
closed: bool
def rfind(self, sub: bytes, start: int = ..., stop: int = ...) -> int: ...
@overload
Expand All @@ -65,7 +65,7 @@ if sys.version_info >= (3,):
# __len__, so we claim that there is also an __iter__ to help type checkers.
def __iter__(self) -> Iterator[bytes]: ...
else:
class mmap(_mmap, Sequence[bytes]):
class mmap(_mmap[bytes], Sequence[bytes]):
def rfind(self, string: bytes, start: int = ..., stop: int = ...) -> int: ...
def __getitem__(self, index: Union[int, slice]) -> bytes: ...
def __getslice__(self, i: Optional[int], j: Optional[int]) -> bytes: ...
Expand Down
4 changes: 2 additions & 2 deletions stdlib/2and3/operator.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ def is_(a: Any, b: Any) -> bool: ...

def is_not(a: Any, b: Any) -> bool: ...

def abs(x: SupportsAbs) -> Any: ...
def __abs__(a: SupportsAbs) -> Any: ...
def abs(x: SupportsAbs[_T]) -> _T: ...
def __abs__(a: SupportsAbs[_T]) -> _T: ...

def add(a: Any, b: Any) -> Any: ...
def __add__(a: Any, b: Any) -> Any: ...
Expand Down
12 changes: 6 additions & 6 deletions stdlib/2and3/optparse.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,12 @@ class Option:
ACTIONS: Tuple[_Text, ...]
ALWAYS_TYPED_ACTIONS: Tuple[_Text, ...]
ATTRS: List[_Text]
CHECK_METHODS: Optional[List[Callable]]
CHECK_METHODS: Optional[List[Callable[..., Any]]]
CONST_ACTIONS: Tuple[_Text, ...]
STORE_ACTIONS: Tuple[_Text, ...]
TYPED_ACTIONS: Tuple[_Text, ...]
TYPES: Tuple[_Text, ...]
TYPE_CHECKER: Dict[_Text, Callable]
TYPE_CHECKER: Dict[_Text, Callable[..., Any]]
_long_opts: List[_Text]
_short_opts: List[_Text]
action: _Text
Expand Down Expand Up @@ -196,13 +196,13 @@ class OptionParser(OptionContainer):
def _add_version_option(self) -> None: ...
def _create_option_list(self) -> None: ...
def _get_all_options(self) -> List[Option]: ...
def _get_args(self, args: Iterable) -> List[Any]: ...
def _get_args(self, args: Iterable[Any]) -> List[Any]: ...
def _init_parsing_state(self) -> None: ...
def _match_long_opt(self, opt: _Text) -> _Text: ...
def _populate_option_list(self, option_list: Iterable[Option], add_help: bool = ...) -> None: ...
def _process_args(self, largs: List, rargs: List, values: Values) -> None: ...
def _process_long_opt(self, rargs: List, values: Any) -> None: ...
def _process_short_opts(self, rargs: List, values: Any) -> None: ...
def _process_args(self, largs: List[Any], rargs: List[Any], values: Values) -> None: ...
def _process_long_opt(self, rargs: List[Any], values: Any) -> None: ...
def _process_short_opts(self, rargs: List[Any], values: Any) -> None: ...
def add_option_group(self, *args, **kwargs) -> OptionParser: ...
def check_values(self, values: Values, args: List[_Text]) -> Tuple[Values, List[_Text]]: ...
def disable_interspersed_args(self) -> None: ...
Expand Down
8 changes: 4 additions & 4 deletions stdlib/2and3/pickle.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ class PicklingError(PickleError): ...
class UnpicklingError(PickleError): ...

_reducedtype = Union[str,
Tuple[Callable[..., Any], Tuple],
Tuple[Callable[..., Any], Tuple, Any],
Tuple[Callable[..., Any], Tuple, Any,
Tuple[Callable[..., Any], Tuple[Any, ...]],
Tuple[Callable[..., Any], Tuple[Any, ...], Any],
Tuple[Callable[..., Any], Tuple[Any, ...], Any,
Optional[Iterator]],
Tuple[Callable[..., Any], Tuple, Any,
Tuple[Callable[..., Any], Tuple[Any, ...], Any,
Optional[Iterator], Optional[Iterator]]]


Expand Down
2 changes: 1 addition & 1 deletion stdlib/2and3/plistlib.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ if sys.version_info < (3,):
def writePlistToString(rootObject: Mapping[str, Any]) -> str: ...

if sys.version_info < (3, 7):
class Dict(dict):
class Dict(DictT[str, Any]):
def __getattr__(self, attr: str) -> Any: ...
def __setattr__(self, attr: str, value: Any) -> None: ...
def __delattr__(self, attr: str) -> None: ...
Expand Down
Loading