Viewing file: typing.py (3.17 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# 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
"""A collection of typing utilities."""
from __future__ import annotations
import argparse import sys from pathlib import Path from typing import ( TYPE_CHECKING, Any, Callable, Dict, Iterable, NamedTuple, Optional, Pattern, Tuple, Type, Union, )
if sys.version_info >= (3, 8): from typing import Literal, Protocol, TypedDict else: from typing_extensions import Literal, Protocol, TypedDict
if TYPE_CHECKING: from pylint.config.callback_actions import _CallbackAction from pylint.pyreverse.inspector import Project from pylint.reporters.ureports.nodes import Section from pylint.utils import LinterStats
class FileItem(NamedTuple): """Represents data about a file handled by pylint.
Each file item has: - name: full name of the module - filepath: path of the file - modname: module name """
name: str filepath: str modpath: str
class ModuleDescriptionDict(TypedDict): """Represents data about a checked module."""
path: str name: str isarg: bool basepath: str basename: str
class ErrorDescriptionDict(TypedDict): """Represents data about errors collected during checking of a module."""
key: Literal["fatal"] mod: str ex: ImportError | SyntaxError
class MessageLocationTuple(NamedTuple): """Tuple with information about the location of a to-be-displayed message."""
abspath: str path: str module: str obj: str line: int column: int end_line: int | None = None end_column: int | None = None
class ManagedMessage(NamedTuple): """Tuple with information about a managed message of the linter."""
name: str | None msgid: str symbol: str line: int | None is_disabled: bool
MessageTypesFullName = Literal[ "convention", "error", "fatal", "info", "refactor", "statement", "warning" ] """All possible message categories."""
OptionDict = Dict[ str, Union[ None, str, bool, int, Pattern[str], Iterable[Union[str, int, Pattern[str]]], Type["_CallbackAction"], Callable[[Any], Any], Callable[[Any, Any, Any, Any], Any], ], ] Options = Tuple[Tuple[str, OptionDict], ...]
ReportsCallable = Callable[["Section", "LinterStats", Optional["LinterStats"]], None] """Callable to create a report."""
class ExtraMessageOptions(TypedDict, total=False): """All allowed keys in the extra options for message definitions."""
scope: str old_names: list[tuple[str, str]] maxversion: tuple[int, int] minversion: tuple[int, int] shared: bool default_enabled: bool
MessageDefinitionTuple = Union[ Tuple[str, str, str], Tuple[str, str, str, ExtraMessageOptions], ] DirectoryNamespaceDict = Dict[Path, Tuple[argparse.Namespace, "DirectoryNamespaceDict"]]
class GetProjectCallable(Protocol): def __call__(self, module: str, name: str | None = "No Name") -> Project: ... # pragma: no cover
|