diff options
| author | Anthony Sottile <asottile@umich.edu> | 2019-08-19 15:58:34 -0700 |
|---|---|---|
| committer | Anthony Sottile <asottile@umich.edu> | 2019-08-19 15:58:34 -0700 |
| commit | 8fd36ba15b2673d0d9a230da88c7353013e44574 (patch) | |
| tree | da3ab723f712b1e67ab70b4aeee20ebee7b3ce31 /src/flake8/options | |
| parent | f265b2275b2d131df7af023f0c8b4835bc3b2575 (diff) | |
| download | flake8-8fd36ba15b2673d0d9a230da88c7353013e44574.tar.gz | |
Put plugin options into separate argparse groups
Diffstat (limited to 'src/flake8/options')
| -rw-r--r-- | src/flake8/options/manager.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/flake8/options/manager.py b/src/flake8/options/manager.py index 219e0ad..9dd9128 100644 --- a/src/flake8/options/manager.py +++ b/src/flake8/options/manager.py @@ -1,9 +1,10 @@ """Option handling and Option management logic.""" import argparse import collections +import contextlib import functools import logging -from typing import Any, Dict, List, Optional, Set +from typing import Any, Dict, Generator, List, Optional, Set, Union from flake8 import utils @@ -312,7 +313,9 @@ class OptionManager(object): :param str usage: Basic usage string used by the OptionParser. """ - self.parser = argparse.ArgumentParser(prog=prog, usage=usage) + self.parser = argparse.ArgumentParser( + prog=prog, usage=usage + ) # type: Union[argparse.ArgumentParser, argparse._ArgumentGroup] self.version_action = self.parser.add_argument( "--version", action="version", version=version ) @@ -330,6 +333,16 @@ class OptionManager(object): """Convert a PluginVersion into a dictionary mapping name to value.""" return {attr: getattr(plugin, attr) for attr in ["name", "version"]} + @contextlib.contextmanager + def group(self, name): # type: (str) -> Generator[None, None, None] + """Attach options to an argparse group during this context.""" + group = self.parser.add_argument_group(name) + self.parser, orig_parser = group, self.parser + try: + yield + finally: + self.parser = orig_parser + def add_option(self, *args, **kwargs): """Create and register a new option. |
