summaryrefslogtreecommitdiff
path: root/pylint/config/arguments_provider.py
diff options
context:
space:
mode:
Diffstat (limited to 'pylint/config/arguments_provider.py')
-rw-r--r--pylint/config/arguments_provider.py177
1 files changed, 13 insertions, 164 deletions
diff --git a/pylint/config/arguments_provider.py b/pylint/config/arguments_provider.py
index f5aac2f1d..7f75718ca 100644
--- a/pylint/config/arguments_provider.py
+++ b/pylint/config/arguments_provider.py
@@ -1,14 +1,11 @@
# 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
-# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+# For details: https://github.com/pylint-dev/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/pylint-dev/pylint/blob/main/CONTRIBUTORS.txt
"""Arguments provider class used to expose options."""
from __future__ import annotations
-import argparse
-import optparse # pylint: disable=deprecated-module
-import warnings
from collections.abc import Iterator
from typing import Any
@@ -16,19 +13,6 @@ from pylint.config.arguments_manager import _ArgumentsManager
from pylint.typing import OptionDict, Options
-class UnsupportedAction(Exception):
- """Raised by set_option when it doesn't know what to do for an action."""
-
- def __init__(self, *args: object) -> None:
- # TODO: 3.0: Remove deprecated exception
- warnings.warn(
- "UnsupportedAction has been deprecated and will be removed in pylint 3.0",
- DeprecationWarning,
- stacklevel=2,
- )
- super().__init__(*args)
-
-
class _ArgumentsProvider:
"""Base class for classes that provide arguments."""
@@ -47,170 +31,35 @@ class _ArgumentsProvider:
self._arguments_manager._register_options_provider(self)
- self._level = 0
-
- @property
- def level(self) -> int:
- # TODO: 3.0: Remove deprecated attribute
- warnings.warn(
- "The level attribute has been deprecated. It was used to display the checker in the help or not,"
- " and everything is displayed in the help now. It will be removed in pylint 3.0.",
- DeprecationWarning,
- stacklevel=2,
- )
- return self._level
-
- @level.setter
- def level(self, value: int) -> None:
- # TODO: 3.0: Remove deprecated attribute
- warnings.warn(
- "Setting the level attribute has been deprecated. It was used to display the checker "
- "in the help or not, and everything is displayed in the help now. It will be removed "
- "in pylint 3.0.",
- DeprecationWarning,
- stacklevel=2,
- )
- self._level = value
-
- @property
- def config(self) -> argparse.Namespace:
- # TODO: 3.0: Remove deprecated attribute
- warnings.warn(
- "The checker-specific config attribute has been deprecated. Please use "
- "'linter.config' to access the global configuration object.",
- DeprecationWarning,
- stacklevel=2,
- )
- return self._arguments_manager.config
-
- def load_defaults(self) -> None: # pragma: no cover
- """DEPRECATED: Initialize the provider using default values."""
- warnings.warn(
- "load_defaults has been deprecated. Option groups should be "
- "registered by initializing an ArgumentsProvider. "
- "This automatically registers the group on the ArgumentsManager.",
- DeprecationWarning,
- stacklevel=2,
- )
- for opt, optdict in self.options:
- action = optdict.get("action")
- if action != "callback":
- # callback action have no default
- if optdict is None:
- with warnings.catch_warnings():
- warnings.filterwarnings("ignore", category=DeprecationWarning)
- optdict = self.get_option_def(opt)
- default = optdict.get("default")
- self.set_option(opt, default, action, optdict)
-
- def option_attrname(
- self, opt: str, optdict: OptionDict | None = None
- ) -> str: # pragma: no cover
- """DEPRECATED: Get the config attribute corresponding to opt."""
- warnings.warn(
- "option_attrname has been deprecated. It will be removed "
- "in a future release.",
- DeprecationWarning,
- stacklevel=2,
- )
- if optdict is None:
- with warnings.catch_warnings():
- warnings.filterwarnings("ignore", category=DeprecationWarning)
- optdict = self.get_option_def(opt)
- return optdict.get("dest", opt.replace("-", "_")) # type: ignore[return-value]
-
- def option_value(self, opt: str) -> Any: # pragma: no cover
- """DEPRECATED: Get the current value for the given option."""
- warnings.warn(
- "option_value has been deprecated. It will be removed "
- "in a future release.",
- DeprecationWarning,
- stacklevel=2,
- )
+ def _option_value(self, opt: str) -> Any:
+ """Get the current value for the given option."""
return getattr(self._arguments_manager.config, opt.replace("-", "_"), None)
- def set_option( # pragma: no cover
- self,
- optname: Any,
- value: Any,
- action: Any = None, # pylint: disable=unused-argument
- optdict: Any = None, # pylint: disable=unused-argument
- ) -> None:
- """DEPRECATED: Method called to set an option (registered in the options
- list).
- """
- # TODO: 3.0: Remove deprecated method.
- warnings.warn(
- "set_option has been deprecated. You can use _arguments_manager.set_option "
- "or linter.set_option to set options on the global configuration object.",
- DeprecationWarning,
- stacklevel=2,
- )
- self._arguments_manager.set_option(optname, value)
-
- def get_option_def(self, opt: str) -> OptionDict: # pragma: no cover
- """DEPRECATED: Return the dictionary defining an option given its name.
-
- :raises OptionError: If the option isn't found.
- """
- warnings.warn(
- "get_option_def has been deprecated. It will be removed "
- "in a future release.",
- DeprecationWarning,
- stacklevel=2,
- )
- assert self.options
- for option in self.options:
- if option[0] == opt:
- return option[1]
- raise optparse.OptionError(
- f"no such option {opt} in section {self.name!r}", opt # type: ignore[arg-type]
- )
-
- def options_by_section(
+ def _options_by_section(
self,
) -> Iterator[
tuple[str, list[tuple[str, OptionDict, Any]]]
| tuple[None, dict[str, list[tuple[str, OptionDict, Any]]]]
- ]: # pragma: no cover
- """DEPRECATED: Return an iterator on options grouped by section.
+ ]:
+ """Return an iterator on options grouped by section.
(section, [list of (optname, optdict, optvalue)])
"""
- # TODO 3.0: Make this function private see
- # https://github.com/PyCQA/pylint/pull/6665#discussion_r880143229
- # It's only used in '_get_global_options_documentation'
- warnings.warn(
- "options_by_section has been deprecated. It will be removed "
- "in a future release.",
- DeprecationWarning,
- stacklevel=2,
- )
sections: dict[str, list[tuple[str, OptionDict, Any]]] = {}
for optname, optdict in self.options:
- with warnings.catch_warnings():
- warnings.filterwarnings("ignore", category=DeprecationWarning)
- sections.setdefault(optdict.get("group"), []).append( # type: ignore[arg-type]
- (optname, optdict, self.option_value(optname))
- )
+ sections.setdefault(optdict.get("group"), []).append( # type: ignore[arg-type]
+ (optname, optdict, self._option_value(optname))
+ )
if None in sections:
yield None, sections.pop(None) # type: ignore[call-overload]
for section, options in sorted(sections.items()):
yield section.upper(), options
- def options_and_values(
+ def _options_and_values(
self, options: Options | None = None
- ) -> Iterator[tuple[str, OptionDict, Any]]: # pragma: no cover
+ ) -> Iterator[tuple[str, OptionDict, Any]]:
"""DEPRECATED."""
- warnings.warn(
- "options_and_values has been deprecated. It will be removed "
- "in a future release.",
- DeprecationWarning,
- stacklevel=2,
- )
if options is None:
options = self.options
for optname, optdict in options:
- with warnings.catch_warnings():
- warnings.filterwarnings("ignore", category=DeprecationWarning)
- yield optname, optdict, self.option_value(optname)
+ yield optname, optdict, self._option_value(optname)