Add typing to OptionManager.parse_args()

Note that the `assert` is necessary to "cast" `self.parser` since it is
specified as a `Union`.
This commit is contained in:
Eric N. Vander Weele 2019-08-30 15:17:16 -04:00
parent eee53d9440
commit ec8fcfc8f8

View file

@ -425,13 +425,21 @@ class OptionManager(object):
plugin_version_format
)
def parse_args(self, args=None, values=None):
def parse_args(
self,
args=None, # type: Optional[List[str]]
values=None, # type: Optional[argparse.Namespace]
):
# type: (...) -> Tuple[argparse.Namespace, List[str]]
"""Proxy to calling the OptionParser's parse_args method."""
self.generate_epilog()
self.update_version_string()
args = self.parser.parse_args(args, values)
assert isinstance( # nosec (for bandit)
self.parser, argparse.ArgumentParser
), self.parser
parsed_args = self.parser.parse_args(args, values)
# TODO: refactor callers to not need this
return args, args.filenames
return parsed_args, parsed_args.filenames
def parse_known_args(self, args=None):
# type: (Optional[List[str]]) -> Tuple[argparse.Namespace, List[str]]