|
1 | 1 | import sys
|
2 |
| -from typing import IO, Any, Callable, Generator, Generic, Iterable, NoReturn, Pattern, Protocol, Sequence, TypeVar, overload |
| 2 | +from typing import IO, Any, Callable, Generator, Generic, Iterable, NewType, NoReturn, Pattern, Protocol, Sequence, TypeVar, overload |
| 3 | +from typing_extensions import Literal |
3 | 4 |
|
4 | 5 | if sys.version_info >= (3, 9):
|
5 | 6 | __all__ = [
|
@@ -48,12 +49,13 @@ _ActionT = TypeVar("_ActionT", bound=Action)
|
48 | 49 | _ArgumentParserT = TypeVar("_ArgumentParserT", bound=ArgumentParser)
|
49 | 50 | _N = TypeVar("_N")
|
50 | 51 |
|
51 |
| -ONE_OR_MORE: str |
52 |
| -OPTIONAL: str |
53 |
| -PARSER: str |
54 |
| -REMAINDER: str |
55 |
| -SUPPRESS: str |
56 |
| -ZERO_OR_MORE: str |
| 52 | +ONE_OR_MORE: Literal["+"] |
| 53 | +OPTIONAL: Literal["?"] |
| 54 | +PARSER: Literal["A..."] |
| 55 | +REMAINDER: Literal["..."] |
| 56 | +_SUPPRESS_T = NewType('_SUPPRESS_T', str) |
| 57 | +SUPPRESS: _SUPPRESS_T # not using Literal because argparse sometimes compares SUPPRESS with is |
| 58 | +ZERO_OR_MORE: Literal["*"] |
57 | 59 | _UNRECOGNIZED_ARGS_ATTR: str # undocumented
|
58 | 60 |
|
59 | 61 | class ArgumentError(Exception):
|
@@ -89,8 +91,11 @@ class _ActionsContainer:
|
89 | 91 | def add_argument(
|
90 | 92 | self,
|
91 | 93 | *name_or_flags: str,
|
92 |
| - action: str | type[Action] = ..., |
93 |
| - nargs: int | str = ..., |
| 94 | + action: Literal[ |
| 95 | + "store", "store_const", "store_true", "store_false", "append", "append_const", "count", "help", "version", "extend" |
| 96 | + ] |
| 97 | + | type[Action] = ..., |
| 98 | + nargs: int | Literal["?", "*", "+", "...", "A...", "==SUPPRESS=="] | _SUPPRESS_T = ..., |
94 | 99 | const: Any = ...,
|
95 | 100 | default: Any = ...,
|
96 | 101 | type: Callable[[str], _T] | FileType = ...,
|
|
0 commit comments