From 008aeaebac2cc6a1412a341452a521fac834aa04 Mon Sep 17 00:00:00 2001 From: PrajwalM2212 Date: Sun, 28 Oct 2018 17:45:59 +0530 Subject: [PATCH 1/9] correct parse_args namespace attribute --- stdlib/2and3/argparse.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/2and3/argparse.pyi b/stdlib/2and3/argparse.pyi index 4871afb3234a..9ad9e40a6a22 100644 --- a/stdlib/2and3/argparse.pyi +++ b/stdlib/2and3/argparse.pyi @@ -122,7 +122,7 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): conflict_handler: _Text = ..., add_help: bool = ...) -> None: ... def parse_args(self, args: Optional[Sequence[_Text]] = ..., - namespace: Optional[Namespace] = ...) -> Namespace: ... + namespace: Optional[object] = ...) -> object: ... if sys.version_info >= (3, 7): def add_subparsers(self, title: _Text = ..., From 6b81c4e1cb27588ad2372740d15cf91499730dcb Mon Sep 17 00:00:00 2001 From: PrajwalM2212 Date: Sun, 28 Oct 2018 18:37:58 +0530 Subject: [PATCH 2/9] Add overload and generics --- stdlib/2and3/argparse.pyi | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/stdlib/2and3/argparse.pyi b/stdlib/2and3/argparse.pyi index 9ad9e40a6a22..583c9a701ba9 100644 --- a/stdlib/2and3/argparse.pyi +++ b/stdlib/2and3/argparse.pyi @@ -121,8 +121,14 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): argument_default: Optional[_Text] = ..., conflict_handler: _Text = ..., add_help: bool = ...) -> None: ... + @overload def parse_args(self, args: Optional[Sequence[_Text]] = ..., - namespace: Optional[object] = ...) -> object: ... + namespace: Optional[Namespace] = ...) -> Namespace: ... + _N = TypeVar('_N') + @overload + def parse_args(self, args: Optional[Sequence[_Text]] = ..., + namespace: Type[_N] = ...) -> _N: ... + if sys.version_info >= (3, 7): def add_subparsers(self, title: _Text = ..., From 62f67534f8f3e95ae871d2539998e73089b40c6f Mon Sep 17 00:00:00 2001 From: PrajwalM2212 Date: Sun, 28 Oct 2018 18:49:30 +0530 Subject: [PATCH 3/9] Add overload for 3 cases --- stdlib/2and3/argparse.pyi | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/stdlib/2and3/argparse.pyi b/stdlib/2and3/argparse.pyi index 583c9a701ba9..5afab1949123 100644 --- a/stdlib/2and3/argparse.pyi +++ b/stdlib/2and3/argparse.pyi @@ -121,9 +121,13 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): argument_default: Optional[_Text] = ..., conflict_handler: _Text = ..., add_help: bool = ...) -> None: ... + + @overload + def parse_args(self, args: Optional[Sequence[_Text]] = ..., + namespace: None = ...) -> Namespace: ... @overload def parse_args(self, args: Optional[Sequence[_Text]] = ..., - namespace: Optional[Namespace] = ...) -> Namespace: ... + namespace: Namespace = ...) -> Namespace: ... _N = TypeVar('_N') @overload def parse_args(self, args: Optional[Sequence[_Text]] = ..., From 27ed1d165a2aa07e089692c93bc6fb3ff596a800 Mon Sep 17 00:00:00 2001 From: PrajwalM2212 Date: Sun, 28 Oct 2018 19:54:30 +0530 Subject: [PATCH 4/9] remove default --- stdlib/2and3/argparse.pyi | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/stdlib/2and3/argparse.pyi b/stdlib/2and3/argparse.pyi index 5afab1949123..b4eaaa945832 100644 --- a/stdlib/2and3/argparse.pyi +++ b/stdlib/2and3/argparse.pyi @@ -124,14 +124,11 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): @overload def parse_args(self, args: Optional[Sequence[_Text]] = ..., - namespace: None = ...) -> Namespace: ... - @overload - def parse_args(self, args: Optional[Sequence[_Text]] = ..., - namespace: Namespace = ...) -> Namespace: ... + namespace: Optional[Namespace] = ...) -> Namespace: ... _N = TypeVar('_N') @overload def parse_args(self, args: Optional[Sequence[_Text]] = ..., - namespace: Type[_N] = ...) -> _N: ... + namespace: _N) -> _N: ... if sys.version_info >= (3, 7): From 17a97862b841ce2b42a4cd94e3e84f53fd0a5b39 Mon Sep 17 00:00:00 2001 From: PrajwalM2212 Date: Sun, 28 Oct 2018 20:03:06 +0530 Subject: [PATCH 5/9] fix error --- stdlib/2and3/argparse.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/2and3/argparse.pyi b/stdlib/2and3/argparse.pyi index b4eaaa945832..968823252f3d 100644 --- a/stdlib/2and3/argparse.pyi +++ b/stdlib/2and3/argparse.pyi @@ -127,8 +127,8 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): namespace: Optional[Namespace] = ...) -> Namespace: ... _N = TypeVar('_N') @overload - def parse_args(self, args: Optional[Sequence[_Text]] = ..., - namespace: _N) -> _N: ... + def parse_args(self, namespace: _N, + args: Optional[Sequence[_Text]] = ...) -> _N: ... if sys.version_info >= (3, 7): From 021d1d9fe561225915dfcb91a91a20810d433967 Mon Sep 17 00:00:00 2001 From: PrajwalM2212 Date: Sun, 28 Oct 2018 20:25:03 +0530 Subject: [PATCH 6/9] make suggested changes --- stdlib/2and3/argparse.pyi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/stdlib/2and3/argparse.pyi b/stdlib/2and3/argparse.pyi index 968823252f3d..cb41229ffbfb 100644 --- a/stdlib/2and3/argparse.pyi +++ b/stdlib/2and3/argparse.pyi @@ -127,8 +127,9 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): namespace: Optional[Namespace] = ...) -> Namespace: ... _N = TypeVar('_N') @overload - def parse_args(self, namespace: _N, - args: Optional[Sequence[_Text]] = ...) -> _N: ... + def parse_args(self, args: Optional[Sequence[_Text]], namespace: Type[_N]) -> _N: ... + @overload + def parse_args(self, *, namespace: Type[_N]) -> _N: ... if sys.version_info >= (3, 7): From 267bb28ab170dd07b6c97d20cc3aa168187b7b02 Mon Sep 17 00:00:00 2001 From: PrajwalM2212 Date: Sun, 28 Oct 2018 20:38:39 +0530 Subject: [PATCH 7/9] remove namespace arg --- stdlib/2and3/argparse.pyi | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/stdlib/2and3/argparse.pyi b/stdlib/2and3/argparse.pyi index cb41229ffbfb..b1ae026030c2 100644 --- a/stdlib/2and3/argparse.pyi +++ b/stdlib/2and3/argparse.pyi @@ -121,17 +121,14 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): argument_default: Optional[_Text] = ..., conflict_handler: _Text = ..., add_help: bool = ...) -> None: ... - @overload - def parse_args(self, args: Optional[Sequence[_Text]] = ..., - namespace: Optional[Namespace] = ...) -> Namespace: ... + def parse_args(self, args: Optional[Sequence[_Text]] = ...) -> Namespace: ... _N = TypeVar('_N') @overload def parse_args(self, args: Optional[Sequence[_Text]], namespace: Type[_N]) -> _N: ... @overload def parse_args(self, *, namespace: Type[_N]) -> _N: ... - if sys.version_info >= (3, 7): def add_subparsers(self, title: _Text = ..., description: Optional[_Text] = ..., From 030896834422901e439e827d3a280835fd3bcbe9 Mon Sep 17 00:00:00 2001 From: PrajwalM2212 Date: Sun, 28 Oct 2018 22:22:19 +0530 Subject: [PATCH 8/9] fix namespace issue --- stdlib/2and3/argparse.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stdlib/2and3/argparse.pyi b/stdlib/2and3/argparse.pyi index b1ae026030c2..475453788b57 100644 --- a/stdlib/2and3/argparse.pyi +++ b/stdlib/2and3/argparse.pyi @@ -121,13 +121,13 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): argument_default: Optional[_Text] = ..., conflict_handler: _Text = ..., add_help: bool = ...) -> None: ... + _N = TypeVar('_N') @overload def parse_args(self, args: Optional[Sequence[_Text]] = ...) -> Namespace: ... - _N = TypeVar('_N') @overload - def parse_args(self, args: Optional[Sequence[_Text]], namespace: Type[_N]) -> _N: ... + def parse_args(self, args: Optional[Sequence[_Text]], namespace: _N) -> _N: ... @overload - def parse_args(self, *, namespace: Type[_N]) -> _N: ... + def parse_args(self, *, namespace: _N) -> _N: ... if sys.version_info >= (3, 7): def add_subparsers(self, title: _Text = ..., From 5b07fde4b9eca4e45edebb87e1e7c1e16842fc37 Mon Sep 17 00:00:00 2001 From: PrajwalM2212 Date: Sun, 28 Oct 2018 22:52:41 +0530 Subject: [PATCH 9/9] move typevar --- stdlib/2and3/argparse.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/2and3/argparse.pyi b/stdlib/2and3/argparse.pyi index 475453788b57..cc9b2d82ec28 100644 --- a/stdlib/2and3/argparse.pyi +++ b/stdlib/2and3/argparse.pyi @@ -8,6 +8,7 @@ import sys _T = TypeVar('_T') _ActionT = TypeVar('_ActionT', bound='Action') +_N = TypeVar('_N') if sys.version_info >= (3,): _Text = str @@ -121,7 +122,6 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): argument_default: Optional[_Text] = ..., conflict_handler: _Text = ..., add_help: bool = ...) -> None: ... - _N = TypeVar('_N') @overload def parse_args(self, args: Optional[Sequence[_Text]] = ...) -> Namespace: ... @overload