summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEric N. Vander Weele <ericvw@gmail.com>2019-10-25 15:01:30 -0400
committerEric N. Vander Weele <ericvw@gmail.com>2019-10-25 17:07:43 -0400
commit1d7558f7da77d67272352d6ab8ca8a476cf80411 (patch)
tree4ce306cb5c0e5f359dfdc6b833290d478656e84d /src
parent2a5c2bb6969046b607bbb44bf5c7d2c774768d7c (diff)
downloadflake8-1d7558f7da77d67272352d6ab8ca8a476cf80411.tar.gz
optmanager: Inherit options from parent argument parsers
Allow for including options from parent `argparse.ArgumentParser` objects in preparation of splitting out the handling of preliminary options from the `OptionManager`.
Diffstat (limited to 'src')
-rw-r--r--src/flake8/options/manager.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/flake8/options/manager.py b/src/flake8/options/manager.py
index a7f678d..def4c96 100644
--- a/src/flake8/options/manager.py
+++ b/src/flake8/options/manager.py
@@ -338,8 +338,12 @@ class OptionManager(object):
"""Manage Options and OptionParser while adding post-processing."""
def __init__(
- self, prog, version, usage="%(prog)s [options] file file ..."
- ): # type: (str, str, str) -> None
+ self,
+ prog,
+ version,
+ usage="%(prog)s [options] file file ...",
+ parents=None,
+ ): # type: (str, str, str, Optional[List[argparse.ArgumentParser]]) -> None # noqa: E501
"""Initialize an instance of an OptionManager.
:param str prog:
@@ -348,9 +352,15 @@ class OptionManager(object):
Version string for the program.
:param str usage:
Basic usage string used by the OptionParser.
+ :param argparse.ArgumentParser parents:
+ A list of ArgumentParser objects whose arguments should also be
+ included.
"""
+ if parents is None:
+ parents = []
+
self.parser = argparse.ArgumentParser(
- prog=prog, usage=usage
+ prog=prog, usage=usage, parents=parents
) # type: argparse.ArgumentParser
self._current_group = None # type: Optional[argparse._ArgumentGroup]
self.version_action = cast(