From 383b5877bc4c49160b4f8772c5e1afd82fd8e500 Mon Sep 17 00:00:00 2001 From: kasium <15907922+kasium@users.noreply.github.com> Date: Mon, 13 Dec 2021 01:38:10 +0100 Subject: [PATCH] Add stubs for flake8-plugin-utils (#6506) --- .../@tests/stubtest_allowlist.txt | 6 ++++ stubs/flake8-plugin-utils/METADATA.toml | 1 + .../flake8_plugin_utils/__init__.pyi | 9 +++++ .../flake8_plugin_utils/plugin.pyi | 36 +++++++++++++++++++ .../flake8_plugin_utils/utils/__init__.pyi | 3 ++ .../flake8_plugin_utils/utils/assertions.pyi | 8 +++++ .../flake8_plugin_utils/utils/constants.pyi | 5 +++ .../flake8_plugin_utils/utils/equiv_nodes.pyi | 3 ++ 8 files changed, 71 insertions(+) create mode 100644 stubs/flake8-plugin-utils/@tests/stubtest_allowlist.txt create mode 100644 stubs/flake8-plugin-utils/METADATA.toml create mode 100644 stubs/flake8-plugin-utils/flake8_plugin_utils/__init__.pyi create mode 100644 stubs/flake8-plugin-utils/flake8_plugin_utils/plugin.pyi create mode 100644 stubs/flake8-plugin-utils/flake8_plugin_utils/utils/__init__.pyi create mode 100644 stubs/flake8-plugin-utils/flake8_plugin_utils/utils/assertions.pyi create mode 100644 stubs/flake8-plugin-utils/flake8_plugin_utils/utils/constants.pyi create mode 100644 stubs/flake8-plugin-utils/flake8_plugin_utils/utils/equiv_nodes.pyi diff --git a/stubs/flake8-plugin-utils/@tests/stubtest_allowlist.txt b/stubs/flake8-plugin-utils/@tests/stubtest_allowlist.txt new file mode 100644 index 000000000..c458a5410 --- /dev/null +++ b/stubs/flake8-plugin-utils/@tests/stubtest_allowlist.txt @@ -0,0 +1,6 @@ +flake8_plugin_utils +flake8_plugin_utils.plugin +flake8_plugin_utils.utils +flake8_plugin_utils.utils.assertions +flake8_plugin_utils.utils.constants +flake8_plugin_utils.utils.equiv_nodes diff --git a/stubs/flake8-plugin-utils/METADATA.toml b/stubs/flake8-plugin-utils/METADATA.toml new file mode 100644 index 000000000..3ea18392d --- /dev/null +++ b/stubs/flake8-plugin-utils/METADATA.toml @@ -0,0 +1 @@ +version = "1.3.*" diff --git a/stubs/flake8-plugin-utils/flake8_plugin_utils/__init__.pyi b/stubs/flake8-plugin-utils/flake8_plugin_utils/__init__.pyi new file mode 100644 index 000000000..0c3f4bced --- /dev/null +++ b/stubs/flake8-plugin-utils/flake8_plugin_utils/__init__.pyi @@ -0,0 +1,9 @@ +from .plugin import Error as Error, Plugin as Plugin, Visitor as Visitor +from .utils import ( + assert_error as assert_error, + assert_not_error as assert_not_error, + check_equivalent_nodes as check_equivalent_nodes, + is_false as is_false, + is_none as is_none, + is_true as is_true, +) diff --git a/stubs/flake8-plugin-utils/flake8_plugin_utils/plugin.pyi b/stubs/flake8-plugin-utils/flake8_plugin_utils/plugin.pyi new file mode 100644 index 000000000..066a43e53 --- /dev/null +++ b/stubs/flake8-plugin-utils/flake8_plugin_utils/plugin.pyi @@ -0,0 +1,36 @@ +import argparse +import ast +from typing import Any, Generic, Iterable, Iterator, Tuple, Type, TypeVar + +FLAKE8_ERROR = Tuple[int, int, str, Type[Any]] +TConfig = TypeVar("TConfig") # noqa: Y001 + +class Error: + code: str + message: str + lineno: int + col_offset: int + def __init__(self, lineno: int, col_offset: int, **kwargs: Any) -> None: ... + @classmethod + def formatted_message(cls, **kwargs: Any) -> str: ... + +class Visitor(ast.NodeVisitor, Generic[TConfig]): + errors: list[Error] + def __init__(self, config: TConfig | None = ...) -> None: ... + @property + def config(self) -> TConfig: ... + def error_from_node(self, error: Type[Error], node: ast.AST, **kwargs: Any) -> None: ... + +class Plugin(Generic[TConfig]): + name: str + version: str + visitors: list[Type[Visitor[TConfig]]] + config: TConfig + def __init__(self, tree: ast.AST) -> None: ... + def run(self) -> Iterable[FLAKE8_ERROR]: ... + @classmethod + def parse_options(cls, option_manager: Any, options: argparse.Namespace, args: list[str]) -> None: ... + @classmethod + def parse_options_to_config(cls, option_manager: Any, options: argparse.Namespace, args: list[str]) -> TConfig | None: ... + @classmethod + def test_config(cls, config: TConfig) -> Iterator[None]: ... diff --git a/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/__init__.pyi b/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/__init__.pyi new file mode 100644 index 000000000..095dbe4c7 --- /dev/null +++ b/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/__init__.pyi @@ -0,0 +1,3 @@ +from .assertions import assert_error as assert_error, assert_not_error as assert_not_error +from .constants import is_false as is_false, is_none as is_none, is_true as is_true +from .equiv_nodes import check_equivalent_nodes as check_equivalent_nodes diff --git a/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/assertions.pyi b/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/assertions.pyi new file mode 100644 index 000000000..2bd61dd84 --- /dev/null +++ b/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/assertions.pyi @@ -0,0 +1,8 @@ +from typing import Any, Type + +from ..plugin import Error as Error, TConfig as TConfig, Visitor as Visitor + +def assert_error( + visitor_cls: Type[Visitor[TConfig]], src: str, expected: Type[Error], config: TConfig | None = ..., **kwargs: Any +) -> None: ... +def assert_not_error(visitor_cls: Type[Visitor[TConfig]], src: str, config: TConfig | None = ...) -> None: ... diff --git a/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/constants.pyi b/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/constants.pyi new file mode 100644 index 000000000..8503693c6 --- /dev/null +++ b/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/constants.pyi @@ -0,0 +1,5 @@ +import ast + +def is_none(node: ast.AST) -> bool: ... +def is_false(node: ast.AST) -> bool: ... +def is_true(node: ast.AST) -> bool: ... diff --git a/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/equiv_nodes.pyi b/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/equiv_nodes.pyi new file mode 100644 index 000000000..641945b10 --- /dev/null +++ b/stubs/flake8-plugin-utils/flake8_plugin_utils/utils/equiv_nodes.pyi @@ -0,0 +1,3 @@ +import ast + +def check_equivalent_nodes(node1: ast.AST, node2: ast.AST) -> bool: ...