From 18806a495667f9a54ec26b17020e15ad61dc2153 Mon Sep 17 00:00:00 2001 From: "Eric N. Vander Weele" Date: Fri, 30 Aug 2019 15:17:16 -0400 Subject: [PATCH] Add typing to `OptionManager.parse_args()` Note that the `assert` is necessary to "cast" `self.parser` since it is specified as a `Union`. --- src/flake8/options/manager.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/flake8/options/manager.py b/src/flake8/options/manager.py index a5e5906..2594865 100644 --- a/src/flake8/options/manager.py +++ b/src/flake8/options/manager.py @@ -426,12 +426,16 @@ class OptionManager(object): ) def parse_args(self, args=None, values=None): + # type: (Optional[List[str]], Optional[argparse.Namespace]) -> Tuple[argparse.Namespace, List[str]] # noqa: E501 """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]]