From e038a0e1c3502d456a29a0287b1bd5e077b24719 Mon Sep 17 00:00:00 2001 From: Semyon Moroz Date: Mon, 7 Jul 2025 14:10:34 +0000 Subject: [PATCH] [flake8-typing-imports] Complete stubs (#14262) --- pyrightconfig.stricter.json | 1 - stubs/flake8-typing-imports/METADATA.toml | 4 --- .../flake8_typing_imports.pyi | 36 +++++++++++++++---- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/pyrightconfig.stricter.json b/pyrightconfig.stricter.json index 197608bbe..a9b884f27 100644 --- a/pyrightconfig.stricter.json +++ b/pyrightconfig.stricter.json @@ -36,7 +36,6 @@ "stubs/defusedxml", "stubs/docker", "stubs/docutils", - "stubs/flake8-typing-imports", "stubs/Flask-SocketIO", "stubs/fpdf2", "stubs/gdb", diff --git a/stubs/flake8-typing-imports/METADATA.toml b/stubs/flake8-typing-imports/METADATA.toml index 141ae45b4..4c3b5ede4 100644 --- a/stubs/flake8-typing-imports/METADATA.toml +++ b/stubs/flake8-typing-imports/METADATA.toml @@ -1,6 +1,2 @@ version = "1.16.*" upstream_repository = "https://github.com/asottile/flake8-typing-imports" -partial_stub = true - -[tool.stubtest] -ignore_missing_stub = true diff --git a/stubs/flake8-typing-imports/flake8_typing_imports.pyi b/stubs/flake8-typing-imports/flake8_typing_imports.pyi index e9da0dae4..f2dd55ee9 100644 --- a/stubs/flake8-typing-imports/flake8_typing_imports.pyi +++ b/stubs/flake8-typing-imports/flake8_typing_imports.pyi @@ -1,16 +1,40 @@ import argparse import ast from collections.abc import Generator -from typing import Any, ClassVar +from typing import Any, Final, NamedTuple +from typing_extensions import Self + +class Version(NamedTuple): + major: int = 0 + minor: int = 0 + patch: int = 0 + @classmethod + def parse(cls, s: str) -> Self: ... + +SYMBOLS: Final[list[tuple[Version, frozenset[str]]]] +VERSIONS: Final[frozenset[Version]] + +class Visitor(ast.NodeVisitor): + imports: dict[str, list[tuple[int, int]]] + attributes: dict[str, list[tuple[int, int]]] + defined_overload: bool + unions_pattern_or_match: list[tuple[int, int]] + from_imported_names: set[str] + namedtuple_methods: list[tuple[int, int]] + namedtuple_defaults: list[tuple[int, int]] + def __init__(self) -> None: ... + def visit_ImportFrom(self, node: ast.ImportFrom) -> None: ... + def visit_Attribute(self, node: ast.Attribute) -> None: ... + def visit_FunctionDef(self, node: ast.FunctionDef) -> None: ... + def visit_Subscript(self, node: ast.Subscript) -> None: ... + def visit_ClassDef(self, node: ast.ClassDef) -> None: ... + def visit_AnnAssign(self, node: ast.AnnAssign) -> None: ... + def generic_visit(self, node: ast.AST) -> None: ... class Plugin: - name: ClassVar[str] - version: ClassVar[str] @staticmethod def add_options(option_manager: Any) -> None: ... @classmethod def parse_options(cls, options: argparse.Namespace) -> None: ... def __init__(self, tree: ast.AST) -> None: ... - def run(self) -> Generator[tuple[int, int, str, type[Any]], None, None]: ... - -def __getattr__(name: str): ... # incomplete module (other attributes are normally not accessed) + def run(self) -> Generator[tuple[int, int, str, type[Any]]]: ...