summaryrefslogtreecommitdiff
path: root/src/flake8/options
diff options
context:
space:
mode:
authorEric N. Vander Weele <ericvw@gmail.com>2019-08-30 12:47:56 -0400
committerEric N. Vander Weele <ericvw@gmail.com>2019-08-30 14:17:20 -0400
commit8ea3c6321d07af39abb6b95505bbaf6b37845faa (patch)
tree979dfd4c14193ee167b04a28eeed99c618116b79 /src/flake8/options
parent220a9287f51ffce656202ef238d69978ada12910 (diff)
downloadflake8-8ea3c6321d07af39abb6b95505bbaf6b37845faa.tar.gz
Add typing to `OptionManager.parse_known_args()`
Note that type casting is necessary given that `self.parser` is annotated as a `Union`.
Diffstat (limited to 'src/flake8/options')
-rw-r--r--src/flake8/options/manager.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/flake8/options/manager.py b/src/flake8/options/manager.py
index 5998c11..a5e5906 100644
--- a/src/flake8/options/manager.py
+++ b/src/flake8/options/manager.py
@@ -4,7 +4,7 @@ import collections
import contextlib
import functools
import logging
-from typing import Any, Dict, Generator, List, Optional, Set, Union
+from typing import Any, Dict, Generator, List, Optional, Set, Tuple, Union
from flake8 import utils
@@ -434,6 +434,7 @@ class OptionManager(object):
return args, args.filenames
def parse_known_args(self, args=None):
+ # type: (Optional[List[str]]) -> Tuple[argparse.Namespace, List[str]]
"""Parse only the known arguments from the argument values.
Replicate a little argparse behaviour while we're still on
@@ -441,8 +442,12 @@ class OptionManager(object):
"""
self.generate_epilog()
self.update_version_string()
- args, rest = self.parser.parse_known_args(args)
- return args, rest
+ # TODO: Re-evaluate `self.parser` swap happening in `group()` to
+ # avoid needing to assert to satify static type checking.
+ assert isinstance( # nosec (for bandit)
+ self.parser, argparse.ArgumentParser
+ ), self.parser
+ return self.parser.parse_known_args(args)
def register_plugin(self, name, version, local=False):
"""Register a plugin relying on the OptionManager.