Improve overloads of parse_args() -- it never returns None (#2643)

Fixes #2641
This commit is contained in:
Guido van Rossum
2018-11-27 18:11:30 -08:00
committed by GitHub
parent eaae246062
commit f9ba5402f8

View File

@@ -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):