Skip to content

Commit 9ca4724

Browse files
argparse: Add overloads for arg parser methods (#10307)
1 parent 8c582c4 commit 9ca4724

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

stdlib/argparse.pyi

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,9 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
169169
add_help: bool = True,
170170
allow_abbrev: bool = True,
171171
) -> None: ...
172-
# Ignore errors about overlapping overloads
172+
173173
@overload
174-
def parse_args(self, args: Sequence[str] | None = None, namespace: None = None) -> Namespace: ... # type: ignore[misc]
174+
def parse_args(self, args: Sequence[str] | None = None, namespace: Namespace | None = None) -> Namespace: ... # type: ignore[misc]
175175
@overload
176176
def parse_args(self, args: Sequence[str] | None, namespace: _N) -> _N: ...
177177
@overload
@@ -209,16 +209,27 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
209209
def print_help(self, file: IO[str] | None = None) -> None: ...
210210
def format_usage(self) -> str: ...
211211
def format_help(self) -> str: ...
212-
def parse_known_args(
213-
self, args: Sequence[str] | None = None, namespace: Namespace | None = None
214-
) -> tuple[Namespace, list[str]]: ...
212+
@overload
213+
def parse_known_args(self, args: Sequence[str] | None = None, namespace: Namespace | None = None) -> tuple[Namespace, list[str]]: ... # type: ignore[misc]
214+
@overload
215+
def parse_known_args(self, args: Sequence[str] | None, namespace: _N) -> tuple[_N, list[str]]: ...
216+
@overload
217+
def parse_known_args(self, *, namespace: _N) -> tuple[_N, list[str]]: ...
215218
def convert_arg_line_to_args(self, arg_line: str) -> list[str]: ...
216219
def exit(self, status: int = 0, message: str | None = None) -> NoReturn: ...
217220
def error(self, message: str) -> NoReturn: ...
218-
def parse_intermixed_args(self, args: Sequence[str] | None = None, namespace: Namespace | None = None) -> Namespace: ...
219-
def parse_known_intermixed_args(
220-
self, args: Sequence[str] | None = None, namespace: Namespace | None = None
221-
) -> tuple[Namespace, list[str]]: ...
221+
@overload
222+
def parse_intermixed_args(self, args: Sequence[str] | None = None, namespace: Namespace | None = None) -> Namespace: ... # type: ignore[misc]
223+
@overload
224+
def parse_intermixed_args(self, args: Sequence[str] | None, namespace: _N) -> _N: ...
225+
@overload
226+
def parse_intermixed_args(self, *, namespace: _N) -> _N: ...
227+
@overload
228+
def parse_known_intermixed_args(self, args: Sequence[str] | None = None, namespace: Namespace | None = None) -> tuple[Namespace, list[str]]: ... # type: ignore[misc]
229+
@overload
230+
def parse_known_intermixed_args(self, args: Sequence[str] | None, namespace: _N) -> tuple[_N, list[str]]: ...
231+
@overload
232+
def parse_known_intermixed_args(self, *, namespace: _N) -> tuple[_N, list[str]]: ...
222233
# undocumented
223234
def _get_optional_actions(self) -> list[Action]: ...
224235
def _get_positional_actions(self) -> list[Action]: ...

0 commit comments

Comments
 (0)