From df516fab5973bbaf883eebffcc1ffca4e87ce0e4 Mon Sep 17 00:00:00 2001 From: Philipp Hahn Date: Wed, 22 Aug 2018 06:51:30 +0200 Subject: [PATCH] Some optparse improvements (#2290) * optparse.Option.dest is a string * optparse.OptionParser.epilog is a string * optparse.OptionParser.prog is string * optparse.OptionParser.values is Values Shuffle code to resolve forward reference * optparse.OptionParser.*option_list is a list of Options * optparse.OptionParser.parse_args returns 2-tuple * minor improvements to Values --- stdlib/2and3/optparse.pyi | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/stdlib/2and3/optparse.pyi b/stdlib/2and3/optparse.pyi index 03532d910..52ca10428 100644 --- a/stdlib/2and3/optparse.pyi +++ b/stdlib/2and3/optparse.pyi @@ -101,7 +101,7 @@ class Option: _long_opts = ... # type: List[_Text] _short_opts = ... # type: List[_Text] action = ... # type: _Text - dest = ... # type: Any + dest = ... # type: Optional[_Text] nargs = ... # type: int type = ... # type: Any def __init__(self, *opts, **attrs) -> None: ... @@ -156,19 +156,29 @@ class OptionGroup(OptionContainer): def _create_option_list(self) -> None: ... def set_title(self, title: _Text) -> None: ... +class Values: + def __init__(self, defaults: Optional[Mapping[str, Any]] = ...) -> None: ... + def _update(self, dict: Mapping[_Text, Any], mode: Any) -> None: ... + def _update_careful(self, dict: Mapping[_Text, Any]) -> None: ... + def _update_loose(self, dict: Mapping[_Text, Any]) -> None: ... + def ensure_value(self, attr: _Text, value: Any) -> Any: ... + def read_file(self, filename: _Text, mode: _Text) -> None: ... + def read_module(self, modname: _Text, mode: _Text) -> None: ... + def __getattr__(self, name: str) -> Any: ... + class OptionParser(OptionContainer): allow_interspersed_args = ... # type: bool - epilog = ... # type: Any + epilog = ... # type: Optional[_Text] formatter = ... # type: HelpFormatter largs = ... # type: Optional[List[_Text]] option_groups = ... # type: List[OptionParser] - option_list = ... # type: List[Any] + option_list = ... # type: List[Option] process_default_values = ... # type: Any - prog = ... # type: Any + prog = ... # type: Optional[_Text] rargs = ... # type: Optional[List[Any]] - standard_option_list = ... # type: List + standard_option_list = ... # type: List[Option] usage = ... # type: Optional[_Text] - values = ... # type: Any + values = ... # type: Optional[Values] version = ... # type: _Text def __init__(self, usage: Optional[_Text] = ..., option_list: Iterable[Option] = ..., @@ -183,7 +193,7 @@ class OptionParser(OptionContainer): def _add_help_option(self) -> None: ... def _add_version_option(self) -> None: ... def _create_option_list(self) -> None: ... - def _get_all_options(self) -> List[Any]: ... + def _get_all_options(self) -> List[Option]: ... def _get_args(self, args: Iterable) -> List[Any]: ... def _init_parsing_state(self) -> None: ... def _match_long_opt(self, opt: _Text) -> _Text: ... @@ -192,7 +202,7 @@ class OptionParser(OptionContainer): def _process_long_opt(self, rargs: List, values: Any) -> None: ... def _process_short_opts(self, rargs: List, values: Any) -> None: ... def add_option_group(self, *args, **kwargs) -> OptionParser: ... - def check_values(self, values: Any, args) -> Tuple[Any, ...]: ... + def check_values(self, values: Values, args: List[_Text]) -> Tuple[Values, List[_Text]]: ... def disable_interspersed_args(self) -> None: ... def enable_interspersed_args(self) -> None: ... def error(self, msg: _Text) -> None: ... @@ -206,7 +216,7 @@ class OptionParser(OptionContainer): def get_prog_name(self) -> _Text: ... def get_usage(self) -> _Text: ... def get_version(self) -> _Text: ... - def parse_args(self, args: Optional[Sequence[_Text]] = ..., values: Optional[Values] = ...) -> Tuple[Any, ...]: ... + def parse_args(self, args: Optional[Sequence[_Text]] = ..., values: Optional[Values] = ...) -> Tuple[Values, List[_Text]]: ... def print_usage(self, file: Optional[IO[str]] = ...) -> None: ... def print_help(self, file: Optional[IO[str]] = ...) -> None: ... def print_version(self, file: Optional[IO[str]] = ...) -> None: ... @@ -214,14 +224,3 @@ class OptionParser(OptionContainer): def set_defaults(self, **kwargs) -> None: ... def set_process_default_values(self, process: Any) -> None: ... def set_usage(self, usage: _Text) -> None: ... - - -class Values: - def __init__(self, defaults: Optional[Mapping[str, Any]] = ...) -> None: ... - def _update(self, dict: Dict[_Text, Any], mode: Any) -> None: ... - def _update_careful(self, dict: Dict[_Text, Any]) -> None: ... - def _update_loose(self, dict: Dict[_Text, Any]) -> None: ... - def ensure_value(self, attr: Any, value: Any) -> Any: ... - def read_file(self, filename: _Text, mode: _Text) -> None: ... - def read_module(self, modname: _Text, mode: _Text) -> None: ... - def __getattr__(self, name: str) -> Any: ...