third_party.pylibs.pylint.src/pylint/config/callback_actions.py

41 lines
1.1 KiB
Python
Raw Normal View History

# 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
"""Callback actions for various options."""
import abc
import argparse
from typing import Any, Optional, Sequence, Union
class _CallbackAction(argparse.Action):
"""Custom callback action."""
@abc.abstractmethod
def __call__(
self,
parser: argparse.ArgumentParser,
namespace: argparse.Namespace,
values: Union[str, Sequence[Any], None],
option_string: Optional[str] = None,
) -> None:
raise NotImplementedError
class _DoNothingAction(_CallbackAction):
"""Action that just passes.
This action is used to allow pre-processing of certain options
without erroring when they are then processed again by argparse.
"""
def __call__(
self,
parser: argparse.ArgumentParser,
namespace: argparse.Namespace,
values: Union[str, Sequence[Any], None],
option_string: Optional[str] = None,
) -> None:
return None