diff --git a/stdlib/typing.pyi b/stdlib/typing.pyi index a56ea8c8c4d1..5bb92e4f92e6 100644 --- a/stdlib/typing.pyi +++ b/stdlib/typing.pyi @@ -680,10 +680,13 @@ class NamedTuple(Tuple[Any, ...]): _field_defaults: dict[str, Any] _fields: Tuple[str, ...] _source: str + # NOTE: The overloads for __init__ are not strictly accurate + # (type for `fields` and `**kwargs` should be more precise than `object`) + # but typing `NamedTuple` like this makes it easier for mypy to special-case. See #6489 @overload - def __init__(self, typename: str, fields: Iterable[tuple[str, Any]] = ...) -> None: ... + def __init__(self, typename: str, fields: Iterable[tuple[str, object]] = ...) -> None: ... @overload - def __init__(self, typename: str, fields: None = ..., **kwargs: Any) -> None: ... + def __init__(self, typename: str, fields: None = ..., **kwargs: object) -> None: ... @classmethod def _make(cls: Type[_T], iterable: Iterable[Any]) -> _T: ... if sys.version_info >= (3, 8):