Skip to content

Commit 9841c25

Browse files
srittauhamdanal
andauthored
Replace Any in optparse (#11599)
Co-authored-by: Ali Hamdan <[email protected]>
1 parent 3581846 commit 9841c25

File tree

2 files changed

+58
-54
lines changed

2 files changed

+58
-54
lines changed

pyrightconfig.stricter.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"stdlib/importlib/readers.pyi",
1414
"stdlib/lib2to3/fixes/*.pyi",
1515
"stdlib/numbers.pyi",
16+
"stdlib/optparse.pyi",
1617
"stdlib/_tkinter.pyi",
1718
"stdlib/tkinter/__init__.pyi",
1819
"stdlib/tkinter/filedialog.pyi",

stdlib/optparse.pyi

Lines changed: 57 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
from _typeshed import Incomplete
12
from abc import abstractmethod
23
from collections.abc import Callable, Iterable, Mapping, Sequence
3-
from typing import IO, Any, AnyStr, overload
4+
from typing import IO, Any, AnyStr, Literal, overload
45

56
__all__ = [
67
"Option",
@@ -26,8 +27,8 @@ NO_DEFAULT: tuple[str, ...]
2627
SUPPRESS_HELP: str
2728
SUPPRESS_USAGE: str
2829

29-
def check_builtin(option: Option, opt: Any, value: str) -> Any: ...
30-
def check_choice(option: Option, opt: Any, value: str) -> str: ...
30+
def check_builtin(option: Option, opt, value: str): ...
31+
def check_choice(option: Option, opt, value: str) -> str: ...
3132

3233
class OptParseError(Exception):
3334
msg: str
@@ -54,26 +55,26 @@ class HelpFormatter:
5455
_short_opt_fmt: str
5556
current_indent: int
5657
default_tag: str
57-
help_position: Any
58-
help_width: Any
58+
help_position: int
59+
help_width: int | Any # initialized as None and computed later as int when storing option strings
5960
indent_increment: int
6061
level: int
6162
max_help_position: int
6263
option_strings: dict[Option, str]
6364
parser: OptionParser
64-
short_first: Any
65+
short_first: Incomplete
6566
width: int
6667
def __init__(self, indent_increment: int, max_help_position: int, width: int | None, short_first: int) -> None: ...
6768
def dedent(self) -> None: ...
6869
def expand_default(self, option: Option) -> str: ...
69-
def format_description(self, description: str) -> str: ...
70-
def format_epilog(self, epilog: str) -> str: ...
70+
def format_description(self, description: str | None) -> str: ...
71+
def format_epilog(self, epilog: str | None) -> str: ...
7172
@abstractmethod
72-
def format_heading(self, heading: Any) -> str: ...
73+
def format_heading(self, heading: str) -> str: ...
7374
def format_option(self, option: Option) -> str: ...
7475
def format_option_strings(self, option: Option) -> str: ...
7576
@abstractmethod
76-
def format_usage(self, usage: Any) -> str: ...
77+
def format_usage(self, usage: str) -> str: ...
7778
def indent(self) -> None: ...
7879
def set_long_opt_delimiter(self, delim: str) -> None: ...
7980
def set_parser(self, parser: OptionParser) -> None: ...
@@ -98,25 +99,25 @@ class Option:
9899
ACTIONS: tuple[str, ...]
99100
ALWAYS_TYPED_ACTIONS: tuple[str, ...]
100101
ATTRS: list[str]
101-
CHECK_METHODS: list[Callable[..., Any]] | None
102+
CHECK_METHODS: list[Callable[..., Incomplete]] | None
102103
CONST_ACTIONS: tuple[str, ...]
103104
STORE_ACTIONS: tuple[str, ...]
104105
TYPED_ACTIONS: tuple[str, ...]
105106
TYPES: tuple[str, ...]
106-
TYPE_CHECKER: dict[str, Callable[..., Any]]
107+
TYPE_CHECKER: dict[str, Callable[[Option, str, Incomplete], Any]]
107108
_long_opts: list[str]
108109
_short_opts: list[str]
109110
action: str
110111
dest: str | None
111-
default: Any
112+
default: Incomplete
112113
nargs: int
113-
type: Any
114-
callback: Callable[..., Any] | None
115-
callback_args: tuple[Any, ...] | None
116-
callback_kwargs: dict[str, Any] | None
114+
type: Incomplete
115+
callback: Callable[..., Incomplete] | None
116+
callback_args: tuple[Incomplete, ...] | None
117+
callback_kwargs: dict[str, Incomplete] | None
117118
help: str | None
118119
metavar: str | None
119-
def __init__(self, *opts: str | None, **attrs: Any) -> None: ...
120+
def __init__(self, *opts: str | None, **attrs) -> None: ...
120121
def _check_action(self) -> None: ...
121122
def _check_callback(self) -> None: ...
122123
def _check_choice(self) -> None: ...
@@ -125,13 +126,13 @@ class Option:
125126
def _check_nargs(self) -> None: ...
126127
def _check_opt_strings(self, opts: Iterable[str | None]) -> list[str]: ...
127128
def _check_type(self) -> None: ...
128-
def _set_attrs(self, attrs: dict[str, Any]) -> None: ...
129+
def _set_attrs(self, attrs: dict[str, Incomplete]) -> None: ...
129130
def _set_opt_strings(self, opts: Iterable[str]) -> None: ...
130-
def check_value(self, opt: str, value: Any) -> Any: ...
131-
def convert_value(self, opt: str, value: Any) -> Any: ...
131+
def check_value(self, opt: str, value): ...
132+
def convert_value(self, opt: str, value): ...
132133
def get_opt_string(self) -> str: ...
133-
def process(self, opt: Any, value: Any, values: Any, parser: OptionParser) -> int: ...
134-
def take_action(self, action: str, dest: str, opt: Any, value: Any, values: Any, parser: OptionParser) -> int: ...
134+
def process(self, opt, value, values, parser: OptionParser) -> int: ...
135+
def take_action(self, action: str, dest: str, opt, value, values, parser: OptionParser) -> int: ...
135136
def takes_value(self) -> bool: ...
136137

137138
make_option = Option
@@ -140,28 +141,30 @@ class OptionContainer:
140141
_long_opt: dict[str, Option]
141142
_short_opt: dict[str, Option]
142143
conflict_handler: str
143-
defaults: dict[str, Any]
144-
description: Any
144+
defaults: dict[str, Incomplete]
145+
description: str | None
145146
option_class: type[Option]
146-
def __init__(self, option_class: type[Option], conflict_handler: Any, description: Any) -> None: ...
147-
def _check_conflict(self, option: Any) -> None: ...
147+
def __init__(
148+
self, option_class: type[Option], conflict_handler: Literal["error", "resolve"], description: str | None
149+
) -> None: ...
150+
def _check_conflict(self, option: Option) -> None: ...
148151
def _create_option_mappings(self) -> None: ...
149152
def _share_option_mappings(self, parser: OptionParser) -> None: ...
150153
@overload
151154
def add_option(self, opt: Option) -> Option: ...
152155
@overload
153-
def add_option(self, *args: str | None, **kwargs: Any) -> Any: ...
156+
def add_option(self, arg: str, /, *args: str | None, **kwargs) -> Option: ...
154157
def add_options(self, option_list: Iterable[Option]) -> None: ...
155158
def destroy(self) -> None: ...
156-
def format_description(self, formatter: HelpFormatter | None) -> Any: ...
157-
def format_help(self, formatter: HelpFormatter | None) -> str: ...
158-
def format_option_help(self, formatter: HelpFormatter | None) -> str: ...
159-
def get_description(self) -> Any: ...
159+
def format_option_help(self, formatter: HelpFormatter) -> str: ...
160+
def format_description(self, formatter: HelpFormatter) -> str: ...
161+
def format_help(self, formatter: HelpFormatter) -> str: ...
162+
def get_description(self) -> str | None: ...
160163
def get_option(self, opt_str: str) -> Option | None: ...
161164
def has_option(self, opt_str: str) -> bool: ...
162165
def remove_option(self, opt_str: str) -> None: ...
163-
def set_conflict_handler(self, handler: Any) -> None: ...
164-
def set_description(self, description: Any) -> None: ...
166+
def set_conflict_handler(self, handler: Literal["error", "resolve"]) -> None: ...
167+
def set_description(self, description: str | None) -> None: ...
165168

166169
class OptionGroup(OptionContainer):
167170
option_list: list[Option]
@@ -172,15 +175,15 @@ class OptionGroup(OptionContainer):
172175
def set_title(self, title: str) -> None: ...
173176

174177
class Values:
175-
def __init__(self, defaults: Mapping[str, Any] | None = None) -> None: ...
176-
def _update(self, dict: Mapping[str, Any], mode: Any) -> None: ...
177-
def _update_careful(self, dict: Mapping[str, Any]) -> None: ...
178-
def _update_loose(self, dict: Mapping[str, Any]) -> None: ...
179-
def ensure_value(self, attr: str, value: Any) -> Any: ...
178+
def __init__(self, defaults: Mapping[str, Incomplete] | None = None) -> None: ...
179+
def _update(self, dict: Mapping[str, Incomplete], mode) -> None: ...
180+
def _update_careful(self, dict: Mapping[str, Incomplete]) -> None: ...
181+
def _update_loose(self, dict: Mapping[str, Incomplete]) -> None: ...
182+
def ensure_value(self, attr: str, value): ...
180183
def read_file(self, filename: str, mode: str = "careful") -> None: ...
181184
def read_module(self, modname: str, mode: str = "careful") -> None: ...
182-
def __getattr__(self, name: str) -> Any: ...
183-
def __setattr__(self, name: str, value: Any, /) -> None: ...
185+
def __getattr__(self, name: str): ...
186+
def __setattr__(self, name: str, value, /) -> None: ...
184187
def __eq__(self, other: object) -> bool: ...
185188

186189
class OptionParser(OptionContainer):
@@ -190,9 +193,9 @@ class OptionParser(OptionContainer):
190193
largs: list[str] | None
191194
option_groups: list[OptionGroup]
192195
option_list: list[Option]
193-
process_default_values: Any
196+
process_default_values: bool
194197
prog: str | None
195-
rargs: list[Any] | None
198+
rargs: list[str] | None
196199
standard_option_list: list[Option]
197200
usage: str | None
198201
values: Values | None
@@ -214,28 +217,28 @@ class OptionParser(OptionContainer):
214217
def _add_version_option(self) -> None: ...
215218
def _create_option_list(self) -> None: ...
216219
def _get_all_options(self) -> list[Option]: ...
217-
def _get_args(self, args: Iterable[Any]) -> list[Any]: ...
220+
def _get_args(self, args: Iterable[Incomplete]) -> list[Incomplete]: ...
218221
def _init_parsing_state(self) -> None: ...
219222
def _match_long_opt(self, opt: str) -> str: ...
220223
def _populate_option_list(self, option_list: Iterable[Option], add_help: bool = True) -> None: ...
221-
def _process_args(self, largs: list[Any], rargs: list[Any], values: Values) -> None: ...
222-
def _process_long_opt(self, rargs: list[Any], values: Any) -> None: ...
223-
def _process_short_opts(self, rargs: list[Any], values: Any) -> None: ...
224+
def _process_args(self, largs: list[Incomplete], rargs: list[Incomplete], values: Values) -> None: ...
225+
def _process_long_opt(self, rargs: list[Incomplete], values) -> None: ...
226+
def _process_short_opts(self, rargs: list[Incomplete], values) -> None: ...
224227
@overload
225228
def add_option_group(self, opt_group: OptionGroup, /) -> OptionGroup: ...
226229
@overload
227-
def add_option_group(self, *args: Any, **kwargs: Any) -> OptionGroup: ...
230+
def add_option_group(self, *args, **kwargs) -> OptionGroup: ...
228231
def check_values(self, values: Values, args: list[str]) -> tuple[Values, list[str]]: ...
229232
def disable_interspersed_args(self) -> None: ...
230233
def enable_interspersed_args(self) -> None: ...
231234
def error(self, msg: str) -> None: ...
232235
def exit(self, status: int = 0, msg: str | None = None) -> None: ...
233-
def expand_prog_name(self, s: str | None) -> Any: ...
234-
def format_epilog(self, formatter: HelpFormatter) -> Any: ...
236+
def expand_prog_name(self, s: str) -> str: ...
237+
def format_epilog(self, formatter: HelpFormatter) -> str: ...
235238
def format_help(self, formatter: HelpFormatter | None = None) -> str: ...
236239
def format_option_help(self, formatter: HelpFormatter | None = None) -> str: ...
237240
def get_default_values(self) -> Values: ...
238-
def get_option_group(self, opt_str: str) -> Any: ...
241+
def get_option_group(self, opt_str: str) -> OptionGroup | None: ...
239242
def get_prog_name(self) -> str: ...
240243
def get_usage(self) -> str: ...
241244
def get_version(self) -> str: ...
@@ -246,7 +249,7 @@ class OptionParser(OptionContainer):
246249
def print_usage(self, file: IO[str] | None = None) -> None: ...
247250
def print_help(self, file: IO[str] | None = None) -> None: ...
248251
def print_version(self, file: IO[str] | None = None) -> None: ...
249-
def set_default(self, dest: Any, value: Any) -> None: ...
250-
def set_defaults(self, **kwargs: Any) -> None: ...
251-
def set_process_default_values(self, process: Any) -> None: ...
252+
def set_default(self, dest, value) -> None: ...
253+
def set_defaults(self, **kwargs) -> None: ...
254+
def set_process_default_values(self, process) -> None: ...
252255
def set_usage(self, usage: str) -> None: ...

0 commit comments

Comments
 (0)