aboutsummaryrefslogtreecommitdiff
path: root/pylint/config/configuration_mixin.py
diff options
context:
space:
mode:
Diffstat (limited to 'pylint/config/configuration_mixin.py')
-rw-r--r--pylint/config/configuration_mixin.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/pylint/config/configuration_mixin.py b/pylint/config/configuration_mixin.py
new file mode 100644
index 000000000..deca7f4bc
--- /dev/null
+++ b/pylint/config/configuration_mixin.py
@@ -0,0 +1,26 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+
+from pylint.config.option_manager_mixin import OptionsManagerMixIn
+from pylint.config.options_provider_mixin import OptionsProviderMixIn
+
+
+class ConfigurationMixIn(OptionsManagerMixIn, OptionsProviderMixIn):
+ """basic mixin for simple configurations which don't need the
+ manager / providers model"""
+
+ def __init__(self, *args, **kwargs):
+ if not args:
+ kwargs.setdefault("usage", "")
+ OptionsManagerMixIn.__init__(self, *args, **kwargs)
+ OptionsProviderMixIn.__init__(self)
+ if not getattr(self, "option_groups", None):
+ self.option_groups = []
+ for _, optdict in self.options:
+ try:
+ gdef = (optdict["group"].upper(), "")
+ except KeyError:
+ continue
+ if gdef not in self.option_groups:
+ self.option_groups.append(gdef)
+ self.register_options_provider(self, own_group=False)