Skip to content

Replace Any in optparse #11599

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Mar 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pyrightconfig.stricter.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"stdlib/importlib/readers.pyi",
"stdlib/lib2to3/fixes/*.pyi",
"stdlib/numbers.pyi",
"stdlib/optparse.pyi",
"stdlib/_tkinter.pyi",
"stdlib/tkinter/__init__.pyi",
"stdlib/tkinter/filedialog.pyi",
Expand Down
111 changes: 57 additions & 54 deletions stdlib/optparse.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from _typeshed import Incomplete
from abc import abstractmethod
from collections.abc import Callable, Iterable, Mapping, Sequence
from typing import IO, Any, AnyStr, overload
from typing import IO, Any, AnyStr, Literal, overload

__all__ = [
"Option",
Expand All @@ -26,8 +27,8 @@ NO_DEFAULT: tuple[str, ...]
SUPPRESS_HELP: str
SUPPRESS_USAGE: str

def check_builtin(option: Option, opt: Any, value: str) -> Any: ...
def check_choice(option: Option, opt: Any, value: str) -> str: ...
def check_builtin(option: Option, opt, value: str): ...
def check_choice(option: Option, opt, value: str) -> str: ...

class OptParseError(Exception):
msg: str
Expand All @@ -54,26 +55,26 @@ class HelpFormatter:
_short_opt_fmt: str
current_indent: int
default_tag: str
help_position: Any
help_width: Any
help_position: int
help_width: int | Any # initialized as None and computed later as int when storing option strings
indent_increment: int
level: int
max_help_position: int
option_strings: dict[Option, str]
parser: OptionParser
short_first: Any
short_first: Incomplete
width: int
def __init__(self, indent_increment: int, max_help_position: int, width: int | None, short_first: int) -> None: ...
def dedent(self) -> None: ...
def expand_default(self, option: Option) -> str: ...
def format_description(self, description: str) -> str: ...
def format_epilog(self, epilog: str) -> str: ...
def format_description(self, description: str | None) -> str: ...
def format_epilog(self, epilog: str | None) -> str: ...
@abstractmethod
def format_heading(self, heading: Any) -> str: ...
def format_heading(self, heading: str) -> str: ...
def format_option(self, option: Option) -> str: ...
def format_option_strings(self, option: Option) -> str: ...
@abstractmethod
def format_usage(self, usage: Any) -> str: ...
def format_usage(self, usage: str) -> str: ...
def indent(self) -> None: ...
def set_long_opt_delimiter(self, delim: str) -> None: ...
def set_parser(self, parser: OptionParser) -> None: ...
Expand All @@ -98,25 +99,25 @@ class Option:
ACTIONS: tuple[str, ...]
ALWAYS_TYPED_ACTIONS: tuple[str, ...]
ATTRS: list[str]
CHECK_METHODS: list[Callable[..., Any]] | None
CHECK_METHODS: list[Callable[..., Incomplete]] | None
CONST_ACTIONS: tuple[str, ...]
STORE_ACTIONS: tuple[str, ...]
TYPED_ACTIONS: tuple[str, ...]
TYPES: tuple[str, ...]
TYPE_CHECKER: dict[str, Callable[..., Any]]
TYPE_CHECKER: dict[str, Callable[[Option, str, Incomplete], Any]]
_long_opts: list[str]
_short_opts: list[str]
action: str
dest: str | None
default: Any
default: Incomplete
nargs: int
type: Any
callback: Callable[..., Any] | None
callback_args: tuple[Any, ...] | None
callback_kwargs: dict[str, Any] | None
type: Incomplete
callback: Callable[..., Incomplete] | None
callback_args: tuple[Incomplete, ...] | None
callback_kwargs: dict[str, Incomplete] | None
help: str | None
metavar: str | None
def __init__(self, *opts: str | None, **attrs: Any) -> None: ...
def __init__(self, *opts: str | None, **attrs) -> None: ...
def _check_action(self) -> None: ...
def _check_callback(self) -> None: ...
def _check_choice(self) -> None: ...
Expand All @@ -125,13 +126,13 @@ class Option:
def _check_nargs(self) -> None: ...
def _check_opt_strings(self, opts: Iterable[str | None]) -> list[str]: ...
def _check_type(self) -> None: ...
def _set_attrs(self, attrs: dict[str, Any]) -> None: ...
def _set_attrs(self, attrs: dict[str, Incomplete]) -> None: ...
def _set_opt_strings(self, opts: Iterable[str]) -> None: ...
def check_value(self, opt: str, value: Any) -> Any: ...
def convert_value(self, opt: str, value: Any) -> Any: ...
def check_value(self, opt: str, value): ...
def convert_value(self, opt: str, value): ...
def get_opt_string(self) -> str: ...
def process(self, opt: Any, value: Any, values: Any, parser: OptionParser) -> int: ...
def take_action(self, action: str, dest: str, opt: Any, value: Any, values: Any, parser: OptionParser) -> int: ...
def process(self, opt, value, values, parser: OptionParser) -> int: ...
def take_action(self, action: str, dest: str, opt, value, values, parser: OptionParser) -> int: ...
def takes_value(self) -> bool: ...

make_option = Option
Expand All @@ -140,28 +141,30 @@ class OptionContainer:
_long_opt: dict[str, Option]
_short_opt: dict[str, Option]
conflict_handler: str
defaults: dict[str, Any]
description: Any
defaults: dict[str, Incomplete]
description: str | None
option_class: type[Option]
def __init__(self, option_class: type[Option], conflict_handler: Any, description: Any) -> None: ...
def _check_conflict(self, option: Any) -> None: ...
def __init__(
self, option_class: type[Option], conflict_handler: Literal["error", "resolve"], description: str | None
) -> None: ...
def _check_conflict(self, option: Option) -> None: ...
def _create_option_mappings(self) -> None: ...
def _share_option_mappings(self, parser: OptionParser) -> None: ...
@overload
def add_option(self, opt: Option) -> Option: ...
@overload
def add_option(self, *args: str | None, **kwargs: Any) -> Any: ...
def add_option(self, arg: str, /, *args: str | None, **kwargs) -> Option: ...
def add_options(self, option_list: Iterable[Option]) -> None: ...
def destroy(self) -> None: ...
def format_description(self, formatter: HelpFormatter | None) -> Any: ...
def format_help(self, formatter: HelpFormatter | None) -> str: ...
def format_option_help(self, formatter: HelpFormatter | None) -> str: ...
def get_description(self) -> Any: ...
def format_option_help(self, formatter: HelpFormatter) -> str: ...
def format_description(self, formatter: HelpFormatter) -> str: ...
def format_help(self, formatter: HelpFormatter) -> str: ...
def get_description(self) -> str | None: ...
def get_option(self, opt_str: str) -> Option | None: ...
def has_option(self, opt_str: str) -> bool: ...
def remove_option(self, opt_str: str) -> None: ...
def set_conflict_handler(self, handler: Any) -> None: ...
def set_description(self, description: Any) -> None: ...
def set_conflict_handler(self, handler: Literal["error", "resolve"]) -> None: ...
def set_description(self, description: str | None) -> None: ...

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

class Values:
def __init__(self, defaults: Mapping[str, Any] | None = None) -> None: ...
def _update(self, dict: Mapping[str, Any], mode: Any) -> None: ...
def _update_careful(self, dict: Mapping[str, Any]) -> None: ...
def _update_loose(self, dict: Mapping[str, Any]) -> None: ...
def ensure_value(self, attr: str, value: Any) -> Any: ...
def __init__(self, defaults: Mapping[str, Incomplete] | None = None) -> None: ...
def _update(self, dict: Mapping[str, Incomplete], mode) -> None: ...
def _update_careful(self, dict: Mapping[str, Incomplete]) -> None: ...
def _update_loose(self, dict: Mapping[str, Incomplete]) -> None: ...
def ensure_value(self, attr: str, value): ...
def read_file(self, filename: str, mode: str = "careful") -> None: ...
def read_module(self, modname: str, mode: str = "careful") -> None: ...
def __getattr__(self, name: str) -> Any: ...
def __setattr__(self, name: str, value: Any, /) -> None: ...
def __getattr__(self, name: str): ...
def __setattr__(self, name: str, value, /) -> None: ...
def __eq__(self, other: object) -> bool: ...

class OptionParser(OptionContainer):
Expand All @@ -190,9 +193,9 @@ class OptionParser(OptionContainer):
largs: list[str] | None
option_groups: list[OptionGroup]
option_list: list[Option]
process_default_values: Any
process_default_values: bool
prog: str | None
rargs: list[Any] | None
rargs: list[str] | None
standard_option_list: list[Option]
usage: str | None
values: Values | None
Expand All @@ -214,28 +217,28 @@ class OptionParser(OptionContainer):
def _add_version_option(self) -> None: ...
def _create_option_list(self) -> None: ...
def _get_all_options(self) -> list[Option]: ...
def _get_args(self, args: Iterable[Any]) -> list[Any]: ...
def _get_args(self, args: Iterable[Incomplete]) -> list[Incomplete]: ...
def _init_parsing_state(self) -> None: ...
def _match_long_opt(self, opt: str) -> str: ...
def _populate_option_list(self, option_list: Iterable[Option], add_help: bool = True) -> None: ...
def _process_args(self, largs: list[Any], rargs: list[Any], values: Values) -> None: ...
def _process_long_opt(self, rargs: list[Any], values: Any) -> None: ...
def _process_short_opts(self, rargs: list[Any], values: Any) -> None: ...
def _process_args(self, largs: list[Incomplete], rargs: list[Incomplete], values: Values) -> None: ...
def _process_long_opt(self, rargs: list[Incomplete], values) -> None: ...
def _process_short_opts(self, rargs: list[Incomplete], values) -> None: ...
@overload
def add_option_group(self, opt_group: OptionGroup, /) -> OptionGroup: ...
@overload
def add_option_group(self, *args: Any, **kwargs: Any) -> OptionGroup: ...
def add_option_group(self, *args, **kwargs) -> OptionGroup: ...
def check_values(self, values: Values, args: list[str]) -> tuple[Values, list[str]]: ...
def disable_interspersed_args(self) -> None: ...
def enable_interspersed_args(self) -> None: ...
def error(self, msg: str) -> None: ...
def exit(self, status: int = 0, msg: str | None = None) -> None: ...
def expand_prog_name(self, s: str | None) -> Any: ...
def format_epilog(self, formatter: HelpFormatter) -> Any: ...
def expand_prog_name(self, s: str) -> str: ...
def format_epilog(self, formatter: HelpFormatter) -> str: ...
def format_help(self, formatter: HelpFormatter | None = None) -> str: ...
def format_option_help(self, formatter: HelpFormatter | None = None) -> str: ...
def get_default_values(self) -> Values: ...
def get_option_group(self, opt_str: str) -> Any: ...
def get_option_group(self, opt_str: str) -> OptionGroup | None: ...
def get_prog_name(self) -> str: ...
def get_usage(self) -> str: ...
def get_version(self) -> str: ...
Expand All @@ -246,7 +249,7 @@ class OptionParser(OptionContainer):
def print_usage(self, file: IO[str] | None = None) -> None: ...
def print_help(self, file: IO[str] | None = None) -> None: ...
def print_version(self, file: IO[str] | None = None) -> None: ...
def set_default(self, dest: Any, value: Any) -> None: ...
def set_defaults(self, **kwargs: Any) -> None: ...
def set_process_default_values(self, process: Any) -> None: ...
def set_default(self, dest, value) -> None: ...
def set_defaults(self, **kwargs) -> None: ...
def set_process_default_values(self, process) -> None: ...
def set_usage(self, usage: str) -> None: ...