mirror of
https://fuchsia.googlesource.com/third_party/github.com/pylint-dev/pylint
synced 2024-09-21 16:19:21 +00:00
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
|
# 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
|