From f9ba5402f8ec13485daa35da9292aa3cd02939f2 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 27 Nov 2018 18:11:30 -0800 Subject: [PATCH] Improve overloads of parse_args() -- it never returns None (#2643) Fixes #2641 --- stdlib/2and3/argparse.pyi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/stdlib/2and3/argparse.pyi b/stdlib/2and3/argparse.pyi index cc9b2d82e..bdb471a30 100644 --- a/stdlib/2and3/argparse.pyi +++ b/stdlib/2and3/argparse.pyi @@ -122,11 +122,18 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): argument_default: Optional[_Text] = ..., conflict_handler: _Text = ..., add_help: bool = ...) -> None: ... + + # The type-ignores in these overloads should be temporary. See: + # https://github.com/python/typeshed/pull/2643#issuecomment-442280277 @overload def parse_args(self, args: Optional[Sequence[_Text]] = ...) -> Namespace: ... @overload + def parse_args(self, args: Optional[Sequence[_Text]], namespace: None) -> Namespace: ... # type: ignore + @overload def parse_args(self, args: Optional[Sequence[_Text]], namespace: _N) -> _N: ... @overload + def parse_args(self, *, namespace: None) -> Namespace: ... # type: ignore + @overload def parse_args(self, *, namespace: _N) -> _N: ... if sys.version_info >= (3, 7):