summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2020-05-03 13:26:42 +0200
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2020-05-03 14:40:55 +0200
commitf9baa0939ee8e3b5b5ee76ca3e9bdad16906d588 (patch)
tree6cbbbff5305fa44b9c0c5ac3194a6d2fe84ffc58
parent206018aa9105c2b2103fdf700b734c49d3600e8c (diff)
downloadpylint-git-f9baa0939ee8e3b5b5ee76ca3e9bdad16906d588.tar.gz
Creating a file for OptionParser and helper functions
-rw-r--r--pylint/config/__init__.py42
-rw-r--r--pylint/config/option_parser.py47
2 files changed, 48 insertions, 41 deletions
diff --git a/pylint/config/__init__.py b/pylint/config/__init__.py
index 7e2f6f8d6..a0945d7a5 100644
--- a/pylint/config/__init__.py
+++ b/pylint/config/__init__.py
@@ -61,6 +61,7 @@ from pylint.config.option import (
_regexp_validator,
_validate,
)
+from pylint.config.option_parser import OptionParser
__all__ = ["_csv_validator", "_regexp_csv_validator", "_regexp_validator"]
@@ -134,15 +135,6 @@ class UnsupportedAction(Exception):
"""raised by set_option when it doesn't know what to do for an action"""
-def _level_options(group, outputlevel):
- return [
- option
- for option in group.option_list
- if (getattr(option, "level", 0) or 0) <= outputlevel
- and option.help is not optparse.SUPPRESS_HELP
- ]
-
-
def _expand_default(self, option):
"""Patch OptionParser.expand_default with custom behaviour
@@ -176,38 +168,6 @@ def _patch_optparse():
optparse.HelpFormatter.expand_default = orig_default
-class OptionParser(optparse.OptionParser):
- def __init__(self, option_class, *args, **kwargs):
- optparse.OptionParser.__init__(self, option_class=Option, *args, **kwargs)
-
- def format_option_help(self, formatter=None):
- if formatter is None:
- formatter = self.formatter
- outputlevel = getattr(formatter, "output_level", 0)
- formatter.store_option_strings(self)
- result = []
- result.append(formatter.format_heading("Options"))
- formatter.indent()
- if self.option_list:
- result.append(optparse.OptionContainer.format_option_help(self, formatter))
- result.append("\n")
- for group in self.option_groups:
- if group.level <= outputlevel and (
- group.description or _level_options(group, outputlevel)
- ):
- result.append(group.format_help(formatter))
- result.append("\n")
- formatter.dedent()
- # Drop the last "\n", or the header if no options or option groups:
- return "".join(result[:-1])
-
- def _match_long_opt(self, opt):
- """Disable abbreviations."""
- if opt not in self._long_opt:
- raise optparse.BadOptionError(opt)
- return opt
-
-
class OptionsManagerMixIn:
"""Handle configuration from both a configuration file and command line options"""
diff --git a/pylint/config/option_parser.py b/pylint/config/option_parser.py
new file mode 100644
index 000000000..36ebbe5fa
--- /dev/null
+++ b/pylint/config/option_parser.py
@@ -0,0 +1,47 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/master/COPYING
+
+import optparse
+
+from pylint.config.option import Option
+
+
+def _level_options(group, outputlevel):
+ return [
+ option
+ for option in group.option_list
+ if (getattr(option, "level", 0) or 0) <= outputlevel
+ and option.help is not optparse.SUPPRESS_HELP
+ ]
+
+
+class OptionParser(optparse.OptionParser):
+ def __init__(self, option_class, *args, **kwargs):
+ optparse.OptionParser.__init__(self, option_class=Option, *args, **kwargs)
+
+ def format_option_help(self, formatter=None):
+ if formatter is None:
+ formatter = self.formatter
+ outputlevel = getattr(formatter, "output_level", 0)
+ formatter.store_option_strings(self)
+ result = []
+ result.append(formatter.format_heading("Options"))
+ formatter.indent()
+ if self.option_list:
+ result.append(optparse.OptionContainer.format_option_help(self, formatter))
+ result.append("\n")
+ for group in self.option_groups:
+ if group.level <= outputlevel and (
+ group.description or _level_options(group, outputlevel)
+ ):
+ result.append(group.format_help(formatter))
+ result.append("\n")
+ formatter.dedent()
+ # Drop the last "\n", or the header if no options or option groups:
+ return "".join(result[:-1])
+
+ def _match_long_opt(self, opt):
+ """Disable abbreviations."""
+ if opt not in self._long_opt:
+ raise optparse.BadOptionError(opt)
+ return opt