diff --git a/stdlib/2.7/collections.pyi b/stdlib/2.7/collections.pyi index 9d4624301dcc..4d004fda7427 100644 --- a/stdlib/2.7/collections.pyi +++ b/stdlib/2.7/collections.pyi @@ -7,7 +7,7 @@ # NOTE: These are incomplete! from typing import ( - Any, Dict, Generic, TypeVar, Iterable, Tuple, Callable, Mapping, overload, Iterator, + Any, Dict, Generic, TypeVar, Iterable, Tuple, Callable, Mapping, overload, Iterator, Type, Sized, Optional, List, Set, Sequence, Union, Reversible, MutableMapping, MutableSequence ) import typing @@ -17,7 +17,8 @@ _KT = TypeVar('_KT') _VT = TypeVar('_VT') # namedtuple is special-cased in the type checker; the initializer is ignored. -namedtuple = ... # type: Any +def namedtuple(typename: str, field_names: Union[str, Iterable[Any]], *, + verbose: bool = ..., rename: bool = ...) -> Type[tuple]: ... class deque(Sized, Iterable[_T], Reversible[_T], Generic[_T]): def __init__(self, iterable: Iterable[_T] = ..., diff --git a/stdlib/2.7/typing.pyi b/stdlib/2.7/typing.pyi index e8aa48a6f1ef..47ec651e89aa 100644 --- a/stdlib/2.7/typing.pyi +++ b/stdlib/2.7/typing.pyi @@ -15,7 +15,6 @@ Callable = object() Type = object() builtinclass = object() _promote = object() -NamedTuple = object() NewType = object() # Type aliases @@ -348,3 +347,9 @@ class Pattern(Generic[AnyStr]): # Functions def get_type_hints(obj: Callable) -> dict[str, Any]: ... + +# Type constructors + +# NamedTuple is special-cased in the type checker; the initializer is ignored. +def NamedTuple(typename: str, fields: Iterable[Tuple[str, Any]], *, + verbose: bool = ..., rename: bool = ...) -> Type[tuple]: ... diff --git a/stdlib/3/collections/__init__.pyi b/stdlib/3/collections/__init__.pyi index 0dc340e2c069..e3260eae349a 100644 --- a/stdlib/3/collections/__init__.pyi +++ b/stdlib/3/collections/__init__.pyi @@ -7,7 +7,7 @@ # These are not exported. from typing import ( TypeVar, Iterable, Generic, Iterator, Dict, overload, - Mapping, List, Tuple, Callable, Sized, + Mapping, List, Tuple, Callable, Sized, Any, Type, Optional, Union ) # These are exported. @@ -25,7 +25,8 @@ _VT = TypeVar('_VT') # namedtuple is special-cased in the type checker; the initializer is ignored. -namedtuple = object() +def namedtuple(typename: str, field_names: Union[str, Iterable[Any]], *, + verbose: bool = ..., rename: bool = ..., module: str = None) -> Type[tuple]: ... class UserDict(MutableMapping): ... class UserList(MutableSequence): ... diff --git a/stdlib/3/typing.pyi b/stdlib/3/typing.pyi index d5389962aa13..baa3a8e97b40 100644 --- a/stdlib/3/typing.pyi +++ b/stdlib/3/typing.pyi @@ -16,7 +16,6 @@ Callable = object() Type = object() builtinclass = object() _promote = object() -NamedTuple = object() no_type_check = object() NewType = object() @@ -418,3 +417,9 @@ class Pattern(Generic[AnyStr]): # Functions def get_type_hints(obj: Callable) -> dict[str, Any]: ... + +# Type constructors + +# NamedTuple is special-cased in the type checker; the initializer is ignored. +def NamedTuple(typename: str, fields: Iterable[Tuple[str, Any]], *, + verbose: bool = ..., rename: bool = ..., module: str = None) -> Type[tuple]: ...