diff --git a/stdlib/@tests/test_cases/builtins/check_pow.py b/stdlib/@tests/test_cases/builtins/check_pow.py index 6ad6116cf578..01de2eb5fc8b 100644 --- a/stdlib/@tests/test_cases/builtins/check_pow.py +++ b/stdlib/@tests/test_cases/builtins/check_pow.py @@ -15,7 +15,7 @@ # that passing 0 for the third argument will lead to an exception being raised # (see discussion in #8566) # -# assert_type(pow(2, 4, 0), NoReturn) +# assert_type(pow(2, 4, 0), Never) assert_type(pow(2, 4), int) # pyright infers a literal type here, but mypy does not. diff --git a/stdlib/_sitebuiltins.pyi b/stdlib/_sitebuiltins.pyi index eb6c81129421..99abd02386b2 100644 --- a/stdlib/_sitebuiltins.pyi +++ b/stdlib/_sitebuiltins.pyi @@ -1,12 +1,13 @@ import sys from collections.abc import Iterable -from typing import ClassVar, Literal, NoReturn +from typing import ClassVar, Literal +from typing_extensions import Never class Quitter: name: str eof: str def __init__(self, name: str, eof: str) -> None: ... - def __call__(self, code: sys._ExitCode = None) -> NoReturn: ... + def __call__(self, code: sys._ExitCode = None) -> Never: ... class _Printer: MAXLINES: ClassVar[Literal[23]] diff --git a/stdlib/_thread.pyi b/stdlib/_thread.pyi index e2d257c9ec0b..57622e936a3b 100644 --- a/stdlib/_thread.pyi +++ b/stdlib/_thread.pyi @@ -4,8 +4,8 @@ from _typeshed import structseq from collections.abc import Callable from threading import Thread from types import TracebackType -from typing import Any, Final, NoReturn, final, overload -from typing_extensions import TypeVarTuple, Unpack, deprecated, disjoint_base +from typing import Any, Final, final, overload +from typing_extensions import Never, TypeVarTuple, Unpack, deprecated, disjoint_base _Ts = TypeVarTuple("_Ts") @@ -82,9 +82,9 @@ def start_new(function: Callable[[Unpack[_Ts]], object], args: tuple[Unpack[_Ts] def start_new(function: Callable[..., object], args: tuple[Any, ...], kwargs: dict[str, Any], /) -> int: ... # undocumented def interrupt_main(signum: signal.Signals = signal.SIGINT, /) -> None: ... -def exit() -> NoReturn: ... +def exit() -> Never: ... @deprecated("Obsolete synonym. Use `exit()` instead.") -def exit_thread() -> NoReturn: ... # undocumented +def exit_thread() -> Never: ... # undocumented def allocate_lock() -> LockType: ... @deprecated("Obsolete synonym. Use `allocate_lock()` instead.") def allocate() -> LockType: ... # undocumented diff --git a/stdlib/_winapi.pyi b/stdlib/_winapi.pyi index 4d5a9fe8290c..a9ad4f19a62e 100644 --- a/stdlib/_winapi.pyi +++ b/stdlib/_winapi.pyi @@ -1,7 +1,8 @@ import sys from _typeshed import ReadableBuffer from collections.abc import Sequence -from typing import Any, Final, Literal, NoReturn, final, overload +from typing import Any, Final, Literal, final, overload +from typing_extensions import Never if sys.platform == "win32": ABOVE_NORMAL_PRIORITY_CLASS: Final = 0x8000 @@ -238,7 +239,7 @@ if sys.platform == "win32": options: int = 0, /, ) -> int: ... - def ExitProcess(ExitCode: int, /) -> NoReturn: ... + def ExitProcess(ExitCode: int, /) -> Never: ... def GetACP() -> int: ... if sys.version_info >= (3, 15): def DeregisterEventSource(handle: int, /) -> None: ... diff --git a/stdlib/argparse.pyi b/stdlib/argparse.pyi index 58056bc06f8f..36ea1981af3f 100644 --- a/stdlib/argparse.pyi +++ b/stdlib/argparse.pyi @@ -2,8 +2,8 @@ import sys from _typeshed import SupportsWrite, sentinel from collections.abc import Callable, Generator, Iterable, Sequence from re import Pattern -from typing import IO, Any, ClassVar, Final, Generic, NoReturn, Protocol, TypeAlias, TypeVar, overload, type_check_only -from typing_extensions import Self, deprecated +from typing import IO, Any, ClassVar, Final, Generic, Protocol, TypeAlias, TypeVar, overload, type_check_only +from typing_extensions import Never, Self, deprecated __all__ = [ "ArgumentParser", @@ -123,7 +123,7 @@ class _ActionsContainer: def _pop_action_class(self, kwargs: Any, default: type[Action] | None = None) -> type[Action]: ... def _get_handler(self) -> Callable[[Action, Iterable[tuple[str, Action]]], Any]: ... def _check_conflict(self, action: Action) -> None: ... - def _handle_conflict_error(self, action: Action, conflicting_actions: Iterable[tuple[str, Action]]) -> NoReturn: ... + def _handle_conflict_error(self, action: Action, conflicting_actions: Iterable[tuple[str, Action]]) -> Never: ... def _handle_conflict_resolve(self, action: Action, conflicting_actions: Iterable[tuple[str, Action]]) -> None: ... @type_check_only @@ -264,8 +264,8 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): def parse_known_args(self, *, namespace: _N) -> tuple[_N, list[str]]: ... def convert_arg_line_to_args(self, arg_line: str) -> list[str]: ... - def exit(self, status: int = 0, message: str | None = None) -> NoReturn: ... - def error(self, message: str) -> NoReturn: ... + def exit(self, status: int = 0, message: str | None = None) -> Never: ... + def error(self, message: str) -> Never: ... @overload def parse_intermixed_args(self, args: Iterable[str] | None = None, namespace: None = None) -> Namespace: ... diff --git a/stdlib/asyncio/trsock.pyi b/stdlib/asyncio/trsock.pyi index f621240d668a..d2e972fee49c 100644 --- a/stdlib/asyncio/trsock.pyi +++ b/stdlib/asyncio/trsock.pyi @@ -4,8 +4,8 @@ from _typeshed import ReadableBuffer from builtins import type as Type # alias to avoid name clashes with property named "type" from collections.abc import Iterable from types import TracebackType -from typing import Any, BinaryIO, NoReturn, TypeAlias, overload -from typing_extensions import deprecated +from typing import Any, BinaryIO, TypeAlias, overload +from typing_extensions import Never, deprecated # These are based in socket, maybe move them out into _typeshed.pyi or such _Address: TypeAlias = socket._Address @@ -22,7 +22,7 @@ class TransportSocket: def type(self) -> int: ... @property def proto(self) -> int: ... - def __getstate__(self) -> NoReturn: ... + def __getstate__(self) -> Never: ... def fileno(self) -> int: ... def dup(self) -> socket.socket: ... def get_inheritable(self) -> bool: ... @@ -40,7 +40,7 @@ class TransportSocket: def getpeername(self) -> _RetAddress: ... def getsockname(self) -> _RetAddress: ... - def getsockbyname(self) -> NoReturn: ... # This method doesn't exist on socket, yet is passed through? + def getsockbyname(self) -> Never: ... # This method doesn't exist on socket, yet is passed through? def settimeout(self, value: float | None) -> None: ... def gettimeout(self) -> float | None: ... def setblocking(self, flag: bool) -> None: ... @@ -60,7 +60,7 @@ class TransportSocket: def ioctl(self, control: int, option: int | tuple[int, int, int] | bool) -> None: ... else: @deprecated("Removed in Python 3.11") - def ioctl(self, control: int, option: int | tuple[int, int, int] | bool) -> NoReturn: ... + def ioctl(self, control: int, option: int | tuple[int, int, int] | bool) -> Never: ... @deprecated("Removed in Python 3.11") def listen(self, backlog: int = ..., /) -> None: ... @@ -82,7 +82,7 @@ class TransportSocket: @deprecated("Removed in Python 3.11.") def sendmsg_afalg( self, msg: Iterable[ReadableBuffer] = ..., *, op: int, iv: Any = ..., assoclen: int = ..., flags: int = 0 - ) -> NoReturn: ... + ) -> Never: ... @deprecated("Removed in Python 3.11.") def sendmsg( @@ -113,7 +113,7 @@ class TransportSocket: def share(self, process_id: int) -> bytes: ... else: @deprecated("Removed in Python 3.11.") - def share(self, process_id: int) -> NoReturn: ... + def share(self, process_id: int) -> Never: ... @deprecated("Removed in Python 3.11.") def recv_into(self, buffer: _WriteBuffer, nbytes: int = 0, flags: int = 0) -> int: ... diff --git a/stdlib/asyncio/windows_events.pyi b/stdlib/asyncio/windows_events.pyi index a32381bfb3e6..a2428e425f2f 100644 --- a/stdlib/asyncio/windows_events.pyi +++ b/stdlib/asyncio/windows_events.pyi @@ -2,7 +2,8 @@ import socket import sys from _typeshed import Incomplete, ReadableBuffer, WriteableBuffer from collections.abc import Callable -from typing import IO, Any, ClassVar, Final, NoReturn +from typing import IO, Any, ClassVar, Final +from typing_extensions import Never from . import events, futures, proactor_events, selector_events, streams, windows_utils @@ -105,13 +106,13 @@ if sys.platform == "win32": else: class WindowsSelectorEventLoopPolicy(events.BaseDefaultEventLoopPolicy): _loop_factory: ClassVar[type[SelectorEventLoop]] - def get_child_watcher(self) -> NoReturn: ... - def set_child_watcher(self, watcher: Any) -> NoReturn: ... + def get_child_watcher(self) -> Never: ... + def set_child_watcher(self, watcher: Any) -> Never: ... class WindowsProactorEventLoopPolicy(events.BaseDefaultEventLoopPolicy): _loop_factory: ClassVar[type[ProactorEventLoop]] - def get_child_watcher(self) -> NoReturn: ... - def set_child_watcher(self, watcher: Any) -> NoReturn: ... + def get_child_watcher(self) -> Never: ... + def set_child_watcher(self, watcher: Any) -> Never: ... if sys.version_info >= (3, 14): _DefaultEventLoopPolicy = _WindowsProactorEventLoopPolicy diff --git a/stdlib/builtins.pyi b/stdlib/builtins.pyi index 9512864ac345..3c549d97316c 100644 --- a/stdlib/builtins.pyi +++ b/stdlib/builtins.pyi @@ -2112,7 +2112,7 @@ _SupportsSomeKindOfPow = ( # noqa: Y026 # TODO: Use TypeAlias once mypy bugs a ) # TODO: `pow(int, int, Literal[0])` fails at runtime, -# but adding a `NoReturn` overload isn't a good solution for expressing that (see #8566). +# but adding a `Never` overload isn't a good solution for expressing that (see #8566). @overload def pow(base: int, exp: int, mod: int) -> int: ... @overload diff --git a/stdlib/collections/__init__.pyi b/stdlib/collections/__init__.pyi index 087746409ecb..bea145e424dd 100644 --- a/stdlib/collections/__init__.pyi +++ b/stdlib/collections/__init__.pyi @@ -14,8 +14,8 @@ from collections.abc import ( ValuesView, ) from types import GenericAlias -from typing import Any, ClassVar, Generic, NoReturn, SupportsIndex, TypeVar, final, overload, type_check_only -from typing_extensions import Self, disjoint_base +from typing import Any, ClassVar, Generic, SupportsIndex, TypeVar, final, overload, type_check_only +from typing_extensions import Never, Self, disjoint_base if sys.version_info >= (3, 15): from builtins import frozendict @@ -300,7 +300,7 @@ class Counter(dict[_T, int], Generic[_T]): def elements(self) -> Iterator[_T]: ... def most_common(self, n: int | None = None) -> list[tuple[_T, int]]: ... @classmethod - def fromkeys(cls, iterable: Any, v: int | None = None) -> NoReturn: ... # type: ignore[override] + def fromkeys(cls, iterable: Any, v: int | None = None) -> Never: ... # type: ignore[override] @overload def subtract(self, iterable: None = None, /) -> None: ... diff --git a/stdlib/datetime.pyi b/stdlib/datetime.pyi index 95c62a9c1b71..0a21f72b09de 100644 --- a/stdlib/datetime.pyi +++ b/stdlib/datetime.pyi @@ -1,8 +1,8 @@ import sys from abc import abstractmethod from time import struct_time -from typing import ClassVar, Final, NoReturn, SupportsIndex, TypeAlias, final, overload, type_check_only -from typing_extensions import CapsuleType, Self, deprecated, disjoint_base +from typing import ClassVar, Final, SupportsIndex, TypeAlias, final, overload, type_check_only +from typing_extensions import CapsuleType, Never, Self, deprecated, disjoint_base if sys.version_info >= (3, 11): __all__ = ("date", "datetime", "time", "timedelta", "timezone", "tzinfo", "MINYEAR", "MAXYEAR", "UTC") @@ -114,7 +114,7 @@ class date: def __radd__(self, value: timedelta, /) -> Self: ... @overload - def __sub__(self, value: datetime, /) -> NoReturn: ... + def __sub__(self, value: datetime, /) -> Never: ... @overload def __sub__(self, value: Self, /) -> timedelta: ... @overload diff --git a/stdlib/decimal.pyi b/stdlib/decimal.pyi index f16fa8aaae31..f116603cf0f2 100644 --- a/stdlib/decimal.pyi +++ b/stdlib/decimal.pyi @@ -184,7 +184,7 @@ class Context: # even settable attributes like `prec` and `rounding`, # but that's inexpressible in the stub. # Type checkers either ignore it or misinterpret it - # if you add a `def __delattr__(self, name: str, /) -> NoReturn` method to the stub + # if you add a `def __delattr__(self, name: str, /) -> Never` method to the stub prec: int rounding: str Emin: int diff --git a/stdlib/importlib/readers.pyi b/stdlib/importlib/readers.pyi index 50f06ea5434d..c02f29d0a722 100644 --- a/stdlib/importlib/readers.pyi +++ b/stdlib/importlib/readers.pyi @@ -9,7 +9,7 @@ from _typeshed import StrPath from collections.abc import Iterable, Iterator from importlib._bootstrap_external import FileLoader from io import BufferedReader -from typing import Literal, NoReturn, TypeVar +from typing import Literal, TypeVar from typing_extensions import Never from zipimport import zipimporter @@ -43,8 +43,8 @@ class ZipReader(abc.TraversableResources): class MultiplexedPath(abc.Traversable): def __init__(self, *paths: abc.Traversable) -> None: ... def iterdir(self) -> Iterator[abc.Traversable]: ... - def read_bytes(self) -> NoReturn: ... - def read_text(self, *args: Never, **kwargs: Never) -> NoReturn: ... # type: ignore[override] + def read_bytes(self) -> Never: ... + def read_text(self, *args: Never, **kwargs: Never) -> Never: ... # type: ignore[override] def is_dir(self) -> Literal[True]: ... def is_file(self) -> Literal[False]: ... @@ -58,7 +58,7 @@ class MultiplexedPath(abc.Traversable): if sys.version_info < (3, 12): __truediv__ = joinpath - def open(self, *args: Never, **kwargs: Never) -> NoReturn: ... # type: ignore[override] + def open(self, *args: Never, **kwargs: Never) -> Never: ... # type: ignore[override] @property def name(self) -> str: ... diff --git a/stdlib/importlib/resources/simple.pyi b/stdlib/importlib/resources/simple.pyi index ef9882056a9c..933a6ff164df 100644 --- a/stdlib/importlib/resources/simple.pyi +++ b/stdlib/importlib/resources/simple.pyi @@ -3,7 +3,7 @@ import sys from _typeshed import StrPath from collections.abc import Iterator from io import TextIOWrapper -from typing import IO, Any, BinaryIO, Literal, NoReturn, overload +from typing import IO, Any, BinaryIO, Literal, overload from typing_extensions import Never if sys.version_info >= (3, 11): @@ -43,7 +43,7 @@ if sys.version_info >= (3, 11): @overload def open(self, mode: str) -> IO[Any]: ... - def joinpath(self, name: Never) -> NoReturn: ... # type: ignore[override] + def joinpath(self, name: Never) -> Never: ... # type: ignore[override] class ResourceContainer(Traversable, metaclass=abc.ABCMeta): reader: SimpleReader @@ -51,7 +51,7 @@ if sys.version_info >= (3, 11): def is_dir(self) -> Literal[True]: ... def is_file(self) -> Literal[False]: ... def iterdir(self) -> Iterator[ResourceHandle | ResourceContainer]: ... - def open(self, *args: Never, **kwargs: Never) -> NoReturn: ... # type: ignore[override] + def open(self, *args: Never, **kwargs: Never) -> Never: ... # type: ignore[override] if sys.version_info < (3, 12): def joinpath(self, *descendants: StrPath) -> Traversable: ... diff --git a/stdlib/lib2to3/pgen2/pgen.pyi b/stdlib/lib2to3/pgen2/pgen.pyi index 4b951e1489e1..e0e2b8593a34 100644 --- a/stdlib/lib2to3/pgen2/pgen.pyi +++ b/stdlib/lib2to3/pgen2/pgen.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, StrPath from collections.abc import Iterable, Iterator -from typing import IO, ClassVar, NoReturn, overload +from typing import IO, ClassVar, overload +from typing_extensions import Never from . import grammar from .tokenize import _TokenInfo @@ -31,9 +32,9 @@ class ParserGenerator: def gettoken(self) -> None: ... @overload - def raise_error(self, msg: object) -> NoReturn: ... + def raise_error(self, msg: object) -> Never: ... @overload - def raise_error(self, msg: str, *args: object) -> NoReturn: ... + def raise_error(self, msg: str, *args: object) -> Never: ... class NFAState: arcs: list[tuple[str | None, NFAState]] diff --git a/stdlib/lib2to3/refactor.pyi b/stdlib/lib2to3/refactor.pyi index dfec28b758b5..b365d64a1de1 100644 --- a/stdlib/lib2to3/refactor.pyi +++ b/stdlib/lib2to3/refactor.pyi @@ -3,7 +3,8 @@ from collections.abc import Container, Generator, Iterable, Mapping from logging import Logger, _ExcInfoType from multiprocessing import JoinableQueue from multiprocessing.synchronize import Lock -from typing import Any, ClassVar, Final, NoReturn, overload +from typing import Any, ClassVar, Final, overload +from typing_extensions import Never from .btm_matcher import BottomMatcher from .fixer_base import BaseFix @@ -39,7 +40,7 @@ class RefactoringTool: self, fixer_names: Iterable[str], options: Mapping[str, object] | None = None, explicit: Container[str] | None = None ) -> None: ... def get_fixers(self) -> tuple[list[BaseFix], list[BaseFix]]: ... - def log_error(self, msg: str, *args: Iterable[str], **kwargs: _ExcInfoType) -> NoReturn: ... + def log_error(self, msg: str, *args: Iterable[str], **kwargs: _ExcInfoType) -> Never: ... @overload def log_message(self, msg: object) -> None: ... diff --git a/stdlib/mmap.pyi b/stdlib/mmap.pyi index 587b91d86c08..7aedd6711b01 100644 --- a/stdlib/mmap.pyi +++ b/stdlib/mmap.pyi @@ -2,8 +2,8 @@ import os import sys from _typeshed import ReadableBuffer, Unused from collections.abc import Iterator -from typing import Final, Literal, NoReturn, SupportsIndex, overload -from typing_extensions import Self, disjoint_base +from typing import Final, Literal, SupportsIndex, overload +from typing_extensions import Never, Self, disjoint_base ACCESS_DEFAULT: Final = 0 ACCESS_READ: Final = 1 @@ -113,7 +113,7 @@ class mmap: @overload def __getitem__(self, key: slice[SupportsIndex | None], /) -> bytes: ... - def __delitem__(self, key: SupportsIndex | slice[SupportsIndex | None], /) -> NoReturn: ... + def __delitem__(self, key: SupportsIndex | slice[SupportsIndex | None], /) -> Never: ... @overload def __setitem__(self, key: SupportsIndex, value: int, /) -> None: ... diff --git a/stdlib/optparse.pyi b/stdlib/optparse.pyi index 9e5536610272..35dfc54a9d49 100644 --- a/stdlib/optparse.pyi +++ b/stdlib/optparse.pyi @@ -2,8 +2,8 @@ import builtins from _typeshed import MaybeNone, SupportsWrite from abc import abstractmethod from collections.abc import Callable, Iterable, Mapping, Sequence -from typing import Any, ClassVar, Final, Literal, NoReturn, overload -from typing_extensions import Self +from typing import Any, ClassVar, Final, Literal, overload +from typing_extensions import Never, Self __all__ = [ "Option", @@ -291,8 +291,8 @@ class OptionParser(OptionContainer): def check_values(self, values: Values, args: list[str]) -> tuple[Values, list[str]]: ... def disable_interspersed_args(self) -> None: ... def enable_interspersed_args(self) -> None: ... - def error(self, msg: str) -> NoReturn: ... - def exit(self, status: int = 0, msg: str | None = None) -> NoReturn: ... + def error(self, msg: str) -> Never: ... + def exit(self, status: int = 0, msg: str | None = None) -> Never: ... def expand_prog_name(self, s: str) -> str: ... def format_epilog(self, formatter: HelpFormatter) -> str: ... def format_help(self, formatter: HelpFormatter | None = None) -> str: ... diff --git a/stdlib/os/__init__.pyi b/stdlib/os/__init__.pyi index 00c155956fb0..5f99c35132ed 100644 --- a/stdlib/os/__init__.pyi +++ b/stdlib/os/__init__.pyi @@ -33,7 +33,6 @@ from typing import ( Final, Generic, Literal, - NoReturn, Protocol, TypeAlias, TypeVar, @@ -42,7 +41,7 @@ from typing import ( runtime_checkable, type_check_only, ) -from typing_extensions import LiteralString, Self, Unpack, deprecated +from typing_extensions import LiteralString, Never, Self, Unpack, deprecated from . import path as _path @@ -1471,19 +1470,17 @@ if sys.platform != "win32": follow_symlinks: bool = True, ) -> None: ... -def abort() -> NoReturn: ... +def abort() -> Never: ... # These are defined as execl(file, *args) but the first *arg is mandatory. -def execl(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]]]]) -> NoReturn: ... -def execlp(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]]]]) -> NoReturn: ... +def execl(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]]]]) -> Never: ... +def execlp(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]]]]) -> Never: ... # These are: execle(file, *args, env) but env is pulled from the last element of the args. -def execle( - file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]], _ExecEnv]] -) -> NoReturn: ... +def execle(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]], _ExecEnv]]) -> Never: ... def execlpe( file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]], _ExecEnv]] -) -> NoReturn: ... +) -> Never: ... # The docs say `args: tuple or list of strings` # The implementation enforces tuple or list so we can't use Sequence. @@ -1506,11 +1503,11 @@ _ExecVArgs: TypeAlias = ( # we limit to str | bytes. _ExecEnv: TypeAlias = Mapping[bytes, bytes | str] | Mapping[str, bytes | str] -def execv(path: StrOrBytesPath, argv: _ExecVArgs, /) -> NoReturn: ... -def execve(path: FileDescriptorOrPath, argv: _ExecVArgs, env: _ExecEnv) -> NoReturn: ... -def execvp(file: StrOrBytesPath, args: _ExecVArgs) -> NoReturn: ... -def execvpe(file: StrOrBytesPath, args: _ExecVArgs, env: _ExecEnv) -> NoReturn: ... -def _exit(status: int) -> NoReturn: ... +def execv(path: StrOrBytesPath, argv: _ExecVArgs, /) -> Never: ... +def execve(path: FileDescriptorOrPath, argv: _ExecVArgs, env: _ExecEnv) -> Never: ... +def execvp(file: StrOrBytesPath, args: _ExecVArgs) -> Never: ... +def execvpe(file: StrOrBytesPath, args: _ExecVArgs, env: _ExecEnv) -> Never: ... +def _exit(status: int) -> Never: ... def kill(pid: int, signal: int, /) -> None: ... if sys.platform != "win32": diff --git a/stdlib/poplib.pyi b/stdlib/poplib.pyi index d4555a6b5ec0..59d95c0882f1 100644 --- a/stdlib/poplib.pyi +++ b/stdlib/poplib.pyi @@ -4,8 +4,8 @@ import sys from _typeshed import StrOrBytesPath from builtins import list as _list # conflicts with a method named "list" from re import Pattern -from typing import Any, BinaryIO, Final, NoReturn, TypeAlias, overload -from typing_extensions import deprecated +from typing import Any, BinaryIO, Final, TypeAlias, overload +from typing_extensions import Never, deprecated __all__ = ["POP3", "error_proto", "POP3_SSL"] @@ -59,7 +59,7 @@ class POP3_SSL(POP3): def __init__( self, host: str, port: int = 995, *, timeout: float = ..., context: ssl.SSLContext | None = None ) -> None: ... - def stls(self, context: Any = None) -> NoReturn: ... + def stls(self, context: Any = None) -> Never: ... else: @overload def __init__( @@ -90,4 +90,4 @@ class POP3_SSL(POP3): certfile: StrOrBytesPath | None # "context" is actually the last argument, # but that breaks LSP and it doesn't really matter because all the arguments are ignored - def stls(self, context: Any = None, keyfile: Any = None, certfile: Any = None) -> NoReturn: ... + def stls(self, context: Any = None, keyfile: Any = None, certfile: Any = None) -> Never: ... diff --git a/stdlib/pydoc.pyi b/stdlib/pydoc.pyi index 8b8c7f8a8ec2..34b2e656f435 100644 --- a/stdlib/pydoc.pyi +++ b/stdlib/pydoc.pyi @@ -5,8 +5,8 @@ from builtins import list as _list # "list" conflicts with method name from collections.abc import Callable, Container, Mapping, MutableMapping from reprlib import Repr from types import MethodType, ModuleType, TracebackType -from typing import IO, Any, AnyStr, Final, NoReturn, Protocol, TypeGuard, TypeVar, overload, type_check_only -from typing_extensions import deprecated +from typing import IO, Any, AnyStr, Final, Protocol, TypeGuard, TypeVar, overload, type_check_only +from typing_extensions import Never, deprecated __all__ = ["help"] @@ -60,7 +60,7 @@ class Doc: STDLIB_DIR: str def document(self, object: object, name: str | None = None, *args: Any) -> str: ... - def fail(self, object: object, name: str | None = None, *args: Any) -> NoReturn: ... + def fail(self, object: object, name: str | None = None, *args: Any) -> Never: ... @abstractmethod def docmodule(self, object: object, name: str | None = None, *args: Any) -> str: ... @abstractmethod diff --git a/stdlib/random.pyi b/stdlib/random.pyi index 80fd2c7628a5..c70c8364684c 100644 --- a/stdlib/random.pyi +++ b/stdlib/random.pyi @@ -3,8 +3,8 @@ import sys from _typeshed import SupportsLenAndGetItem from collections.abc import Callable, Iterable, MutableSequence, Sequence, Set as AbstractSet from fractions import Fraction -from typing import Any, ClassVar, NoReturn, TypeVar, overload -from typing_extensions import deprecated +from typing import Any, ClassVar, TypeVar, overload +from typing_extensions import Never, deprecated __all__ = [ "Random", @@ -104,8 +104,8 @@ class Random(_random.Random): # SystemRandom is not implemented for all OS's; good on Windows & Linux class SystemRandom(Random): def getrandbits(self, k: int) -> int: ... # k can be passed by keyword - def getstate(self, *args: Any, **kwds: Any) -> NoReturn: ... - def setstate(self, *args: Any, **kwds: Any) -> NoReturn: ... + def getstate(self, *args: Any, **kwds: Any) -> Never: ... + def setstate(self, *args: Any, **kwds: Any) -> Never: ... _inst: Random seed = _inst.seed diff --git a/stdlib/shutil.pyi b/stdlib/shutil.pyi index badb0bae220d..5919106f3ed9 100644 --- a/stdlib/shutil.pyi +++ b/stdlib/shutil.pyi @@ -3,8 +3,8 @@ import sys from _typeshed import BytesPath, ExcInfo, FileDescriptorOrPath, MaybeNone, StrOrBytesPath, StrPath, SupportsRead, SupportsWrite from collections.abc import Callable, Iterable, Sequence from tarfile import _TarfileFilter -from typing import Any, AnyStr, NamedTuple, NoReturn, Protocol, TypeAlias, TypeVar, overload, type_check_only -from typing_extensions import deprecated +from typing import Any, AnyStr, NamedTuple, Protocol, TypeAlias, TypeVar, overload, type_check_only +from typing_extensions import Never, deprecated __all__ = [ "copyfileobj", @@ -191,7 +191,7 @@ else: if sys.platform == "win32" and sys.version_info < (3, 12): @overload @deprecated("On Windows before Python 3.12, using a PathLike as `cmd` would always fail or return `None`.") - def which(cmd: os.PathLike[str], mode: int = 1, path: StrPath | None = None) -> NoReturn: ... + def which(cmd: os.PathLike[str], mode: int = 1, path: StrPath | None = None) -> Never: ... @overload def which(cmd: StrPath, mode: int = 1, path: StrPath | None = None) -> str | None: ... diff --git a/stdlib/sunau.pyi b/stdlib/sunau.pyi index 1f18c041465e..e4b9fcb6b8ca 100644 --- a/stdlib/sunau.pyi +++ b/stdlib/sunau.pyi @@ -1,6 +1,6 @@ from _typeshed import Unused -from typing import IO, Any, Final, Literal, NamedTuple, NoReturn, TypeAlias, overload -from typing_extensions import Self +from typing import IO, Any, Final, Literal, NamedTuple, TypeAlias, overload +from typing_extensions import Never, Self _File: TypeAlias = str | IO[bytes] @@ -46,7 +46,7 @@ class Au_read: def getcompname(self) -> str: ... def getparams(self) -> _sunau_params: ... def getmarkers(self) -> None: ... - def getmark(self, id: Any) -> NoReturn: ... + def getmark(self, id: Any) -> Never: ... def setpos(self, pos: int) -> None: ... def readframes(self, nframes: int) -> bytes | None: ... diff --git a/stdlib/sys/__init__.pyi b/stdlib/sys/__init__.pyi index 72e894b9305f..11c78b73af5b 100644 --- a/stdlib/sys/__init__.pyi +++ b/stdlib/sys/__init__.pyi @@ -5,8 +5,8 @@ from builtins import object as _object from collections.abc import AsyncGenerator, Callable, Sequence from io import TextIOWrapper from types import FrameType, ModuleType, SimpleNamespace, TracebackType -from typing import Any, Final, Literal, NoReturn, Protocol, TextIO, TypeAlias, TypeVar, final, overload, type_check_only -from typing_extensions import LiteralString, deprecated +from typing import Any, Final, Literal, Protocol, TextIO, TypeAlias, TypeVar, final, overload, type_check_only +from typing_extensions import LiteralString, Never, deprecated _T = TypeVar("_T") _LazyImportMode: TypeAlias = Literal["normal", "all", "none"] @@ -377,7 +377,7 @@ def exc_info() -> OptExcInfo: ... if sys.version_info >= (3, 11): def exception() -> BaseException | None: ... -def exit(status: _ExitCode = None, /) -> NoReturn: ... +def exit(status: _ExitCode = None, /) -> Never: ... if sys.platform == "android": # noqa: Y008 def getandroidapilevel() -> int: ... @@ -521,7 +521,7 @@ if sys.version_info >= (3, 12): if sys.platform == "linux": def activate_stack_trampoline(backend: str, /) -> None: ... else: - def activate_stack_trampoline(backend: str, /) -> NoReturn: ... + def activate_stack_trampoline(backend: str, /) -> Never: ... from . import _monitoring diff --git a/stdlib/typing_extensions.pyi b/stdlib/typing_extensions.pyi index 5a8848e9151d..b89d96b2be9c 100644 --- a/stdlib/typing_extensions.pyi +++ b/stdlib/typing_extensions.pyi @@ -629,7 +629,7 @@ else: def __module__(self) -> str | None: ... # type: ignore[override] # Returns typing._GenericAlias, which isn't stubbed. def __getitem__(self, parameters: Incomplete | tuple[Incomplete, ...]) -> AnnotationForm: ... - def __init_subclass__(cls, *args: Unused, **kwargs: Unused) -> NoReturn: ... + def __init_subclass__(cls, *args: Unused, **kwargs: Unused) -> Never: ... def __or__(self, right: Any, /) -> _SpecialForm: ... def __ror__(self, left: Any, /) -> _SpecialForm: ... diff --git a/stdlib/unittest/case.pyi b/stdlib/unittest/case.pyi index 942154ea53ae..1d1206b7fc36 100644 --- a/stdlib/unittest/case.pyi +++ b/stdlib/unittest/case.pyi @@ -12,7 +12,6 @@ from typing import ( AnyStr, Final, Generic, - NoReturn, ParamSpec, Protocol, SupportsAbs, @@ -91,7 +90,7 @@ class TestCase: def tearDownClass(cls) -> None: ... def run(self, result: unittest.result.TestResult | None = None) -> unittest.result.TestResult | None: ... def __call__(self, result: unittest.result.TestResult | None = ...) -> unittest.result.TestResult | None: ... - def skipTest(self, reason: Any) -> NoReturn: ... + def skipTest(self, reason: Any) -> Never: ... def subTest(self, msg: Any = ..., **params: Any) -> AbstractContextManager[None]: ... def debug(self) -> None: ... if sys.version_info < (3, 11): @@ -267,7 +266,7 @@ class TestCase: # assertDictEqual accepts only true dict instances. We can't use that here, since that would make # assertDictEqual incompatible with TypedDict. def assertDictEqual(self, d1: Mapping[Any, object], d2: Mapping[Any, object], msg: Any = None) -> None: ... - def fail(self, msg: Any = None) -> NoReturn: ... + def fail(self, msg: Any = None) -> Never: ... def countTestCases(self) -> int: ... def defaultTestResult(self) -> unittest.result.TestResult: ... def id(self) -> str: ... diff --git a/stdlib/urllib/request.pyi b/stdlib/urllib/request.pyi index 0ec26052b23c..17a283321df4 100644 --- a/stdlib/urllib/request.pyi +++ b/stdlib/urllib/request.pyi @@ -6,8 +6,8 @@ from email.message import Message from http.client import HTTPConnection, HTTPMessage, HTTPResponse from http.cookiejar import CookieJar from re import Pattern -from typing import IO, Any, ClassVar, Literal, NoReturn, Protocol, TypeAlias, TypeVar, overload, type_check_only -from typing_extensions import deprecated +from typing import IO, Any, ClassVar, Literal, Protocol, TypeAlias, TypeVar, overload, type_check_only +from typing_extensions import Never, deprecated from urllib.error import HTTPError as HTTPError from urllib.response import addclosehook, addinfourl @@ -336,7 +336,7 @@ class CacheFTPHandler(FTPHandler): def clear_cache(self) -> None: ... # undocumented class UnknownHandler(BaseHandler): - def unknown_open(self, req: Request) -> NoReturn: ... + def unknown_open(self, req: Request) -> Never: ... class HTTPErrorProcessor(BaseHandler): def http_response(self, request: Request, response: HTTPResponse) -> _UrlopenRet: ... diff --git a/stdlib/uuid.pyi b/stdlib/uuid.pyi index 06285e03aea7..1b5d0c1fbf5a 100644 --- a/stdlib/uuid.pyi +++ b/stdlib/uuid.pyi @@ -2,8 +2,8 @@ import builtins import sys from _typeshed import Unused from enum import Enum -from typing import Final, NoReturn, TypeAlias -from typing_extensions import LiteralString +from typing import Final, TypeAlias +from typing_extensions import LiteralString, Never _FieldsType: TypeAlias = tuple[int, int, int, int, int, int] @@ -65,7 +65,7 @@ class UUID: def __gt__(self, other: UUID) -> bool: ... def __ge__(self, other: UUID) -> bool: ... def __hash__(self) -> builtins.int: ... - def __setattr__(self, name: Unused, value: Unused) -> NoReturn: ... + def __setattr__(self, name: Unused, value: Unused) -> Never: ... def getnode() -> int: ... def uuid1(node: int | None = None, clock_seq: int | None = None) -> UUID: ... diff --git a/stdlib/wave.pyi b/stdlib/wave.pyi index 1bb3a3329126..70bf87281550 100644 --- a/stdlib/wave.pyi +++ b/stdlib/wave.pyi @@ -1,7 +1,7 @@ import sys from _typeshed import ReadableBuffer, StrOrBytesPath, Unused -from typing import IO, Any, BinaryIO, Final, Literal, NamedTuple, NoReturn, TypeAlias, overload -from typing_extensions import Self, deprecated +from typing import IO, Any, BinaryIO, Final, Literal, NamedTuple, TypeAlias, overload +from typing_extensions import Never, Self, deprecated __all__ = ["open", "Error", "Wave_read", "Wave_write"] if sys.version_info >= (3, 15): @@ -50,7 +50,7 @@ class Wave_read: @deprecated("Deprecated; will be removed in Python 3.15.") def getmarkers(self) -> None: ... @deprecated("Deprecated; will be removed in Python 3.15.") - def getmark(self, id: Any) -> NoReturn: ... + def getmark(self, id: Any) -> Never: ... def setpos(self, pos: int) -> None: ... def readframes(self, nframes: int) -> bytes: ... @@ -86,9 +86,9 @@ class Wave_write: if sys.version_info < (3, 15): @deprecated("Deprecated; will be removed in Python 3.15.") - def setmark(self, id: Any, pos: Any, name: Any) -> NoReturn: ... + def setmark(self, id: Any, pos: Any, name: Any) -> Never: ... @deprecated("Deprecated; will be removed in Python 3.15.") - def getmark(self, id: Any) -> NoReturn: ... + def getmark(self, id: Any) -> Never: ... @deprecated("Deprecated; will be removed in Python 3.15.") def getmarkers(self) -> None: ... diff --git a/stdlib/wsgiref/validate.pyi b/stdlib/wsgiref/validate.pyi index 498e03aa3673..ce3e79f341f9 100644 --- a/stdlib/wsgiref/validate.pyi +++ b/stdlib/wsgiref/validate.pyi @@ -1,6 +1,7 @@ from _typeshed.wsgi import ErrorStream, InputStream, WSGIApplication from collections.abc import Callable, Iterable, Iterator -from typing import Any, NoReturn, TypeAlias +from typing import Any, TypeAlias +from typing_extensions import Never __all__ = ["validator"] @@ -15,7 +16,7 @@ class InputWrapper: def readline(self, size: int = ...) -> bytes: ... def readlines(self, hint: int = ...) -> bytes: ... def __iter__(self) -> Iterator[bytes]: ... - def close(self) -> NoReturn: ... + def close(self) -> Never: ... class ErrorWrapper: errors: ErrorStream @@ -23,7 +24,7 @@ class ErrorWrapper: def write(self, s: str) -> None: ... def flush(self) -> None: ... def writelines(self, seq: Iterable[str]) -> None: ... - def close(self) -> NoReturn: ... + def close(self) -> Never: ... _WriterCallback: TypeAlias = Callable[[bytes], Any] diff --git a/stdlib/xml/dom/expatbuilder.pyi b/stdlib/xml/dom/expatbuilder.pyi index e41067182935..5aef384ff0f2 100644 --- a/stdlib/xml/dom/expatbuilder.pyi +++ b/stdlib/xml/dom/expatbuilder.pyi @@ -1,5 +1,6 @@ from _typeshed import ReadableBuffer, SupportsRead -from typing import Any, Final, NoReturn, TypeAlias +from typing import Any, Final, TypeAlias +from typing_extensions import Never from xml.dom.minidom import Document, DocumentFragment, DOMImplementation, Element, Node, TypeInfo from xml.dom.xmlbuilder import DOMBuilderFilter, Options from xml.parsers.expat import XMLParserType @@ -115,8 +116,8 @@ class InternalSubsetExtractor(ExpatBuilder): def start_doctype_decl_handler( # type: ignore[override] self, name: str, publicId: str | None, systemId: str | None, has_internal_subset: bool ) -> None: ... - def end_doctype_decl_handler(self) -> NoReturn: ... - def start_element_handler(self, name: str, attrs: list[str]) -> NoReturn: ... + def end_doctype_decl_handler(self) -> Never: ... + def start_element_handler(self, name: str, attrs: list[str]) -> Never: ... def parse(file: str | SupportsRead[ReadableBuffer | str], namespaces: bool = True) -> Document: ... def parseString(string: str | ReadableBuffer, namespaces: bool = True) -> Document: ... diff --git a/stdlib/xml/dom/minidom.pyi b/stdlib/xml/dom/minidom.pyi index c54b0de86e55..7d287a6c9b60 100644 --- a/stdlib/xml/dom/minidom.pyi +++ b/stdlib/xml/dom/minidom.pyi @@ -3,8 +3,8 @@ from _collections_abc import dict_keys, dict_values from _typeshed import Incomplete, ReadableBuffer, SupportsRead, SupportsWrite from collections.abc import Iterable, Sequence from types import TracebackType -from typing import Any, ClassVar, Generic, Literal, NoReturn, Protocol, TypeAlias, TypeVar, overload, type_check_only -from typing_extensions import Self +from typing import Any, ClassVar, Generic, Literal, Protocol, TypeAlias, TypeVar, overload, type_check_only +from typing_extensions import Never, Self from xml.dom.minicompat import EmptyNodeList, NodeList from xml.dom.xmlbuilder import DocumentLS, DOMImplementationLS from xml.sax.xmlreader import XMLReader @@ -367,14 +367,14 @@ class Childless: def firstChild(self) -> None: ... @property def lastChild(self) -> None: ... - def appendChild(self, node: _NodesThatAreChildren | DocumentFragment) -> NoReturn: ... + def appendChild(self, node: _NodesThatAreChildren | DocumentFragment) -> Never: ... def hasChildNodes(self) -> Literal[False]: ... def insertBefore( self, newChild: _NodesThatAreChildren | DocumentFragment, refChild: _NodesThatAreChildren | None - ) -> NoReturn: ... - def removeChild(self, oldChild: _NodesThatAreChildren) -> NoReturn: ... + ) -> Never: ... + def removeChild(self, oldChild: _NodesThatAreChildren) -> Never: ... def normalize(self) -> None: ... - def replaceChild(self, newChild: _NodesThatAreChildren | DocumentFragment, oldChild: _NodesThatAreChildren) -> NoReturn: ... + def replaceChild(self, newChild: _NodesThatAreChildren | DocumentFragment, oldChild: _NodesThatAreChildren) -> Never: ... class ProcessingInstruction(Childless, Node): __slots__ = ("target", "data") @@ -501,10 +501,10 @@ class ReadOnlySequentialNamedNodeMap(Generic[_N]): def getNamedItemNS(self, namespaceURI: str | None, localName: str) -> _N | None: ... def __getitem__(self, name_or_tuple: str | _NSName) -> _N | None: ... def item(self, index: int) -> _N | None: ... - def removeNamedItem(self, name: str) -> NoReturn: ... - def removeNamedItemNS(self, namespaceURI: str | None, localName: str) -> NoReturn: ... - def setNamedItem(self, node: Node) -> NoReturn: ... - def setNamedItemNS(self, node: Node) -> NoReturn: ... + def removeNamedItem(self, name: str) -> Never: ... + def removeNamedItemNS(self, namespaceURI: str | None, localName: str) -> Never: ... + def setNamedItem(self, node: Node) -> Never: ... + def setNamedItemNS(self, node: Node) -> Never: ... @property def length(self) -> int: ... @@ -568,10 +568,10 @@ class Entity(Identified, Node): notationName: str | None def __init__(self, name: str, publicId: str | None, systemId: str | None, notation: str | None) -> None: ... - def appendChild(self, newChild: _EntityChildren) -> NoReturn: ... # type: ignore[override] - def insertBefore(self, newChild: _EntityChildren, refChild: _EntityChildren | None) -> NoReturn: ... # type: ignore[override] - def removeChild(self, oldChild: _EntityChildren) -> NoReturn: ... # type: ignore[override] - def replaceChild(self, newChild: _EntityChildren, oldChild: _EntityChildren) -> NoReturn: ... # type: ignore[override] + def appendChild(self, newChild: _EntityChildren) -> Never: ... # type: ignore[override] + def insertBefore(self, newChild: _EntityChildren, refChild: _EntityChildren | None) -> Never: ... # type: ignore[override] + def removeChild(self, oldChild: _EntityChildren) -> Never: ... # type: ignore[override] + def replaceChild(self, newChild: _EntityChildren, oldChild: _EntityChildren) -> Never: ... # type: ignore[override] class Notation(Identified, Childless, Node): nodeType: ClassVar[Literal[12]] diff --git a/stdlib/xml/dom/pulldom.pyi b/stdlib/xml/dom/pulldom.pyi index 4ede39015585..7014c865bcdd 100644 --- a/stdlib/xml/dom/pulldom.pyi +++ b/stdlib/xml/dom/pulldom.pyi @@ -1,8 +1,8 @@ import sys from _typeshed import Incomplete, Unused from collections.abc import MutableSequence, Sequence -from typing import Final, Literal, NoReturn, TypeAlias -from typing_extensions import Self +from typing import Final, Literal, TypeAlias +from typing_extensions import Never, Self from xml.dom.minidom import Comment, Document, DOMImplementation, Element, ProcessingInstruction, Text from xml.sax import _SupportsReadClose from xml.sax.handler import ContentHandler @@ -73,8 +73,8 @@ class PullDOM(ContentHandler): class ErrorHandler: def warning(self, exception: BaseException) -> None: ... - def error(self, exception: BaseException) -> NoReturn: ... - def fatalError(self, exception: BaseException) -> NoReturn: ... + def error(self, exception: BaseException) -> Never: ... + def fatalError(self, exception: BaseException) -> Never: ... class DOMEventStream: stream: _SupportsReadClose[bytes] | _SupportsReadClose[str] diff --git a/stdlib/xml/dom/xmlbuilder.pyi b/stdlib/xml/dom/xmlbuilder.pyi index f19f7050b08d..686c9d8efe8f 100644 --- a/stdlib/xml/dom/xmlbuilder.pyi +++ b/stdlib/xml/dom/xmlbuilder.pyi @@ -1,5 +1,6 @@ from _typeshed import SupportsRead -from typing import Any, Final, Literal, NoReturn +from typing import Any, Final, Literal +from typing_extensions import Never from xml.dom.minidom import Document, Node, _DOMErrorHandler __all__ = ["DOMBuilder", "DOMEntityResolver", "DOMInputSource"] @@ -41,7 +42,7 @@ class DOMBuilder: def getFeature(self, name: str) -> Any: ... def parseURI(self, uri: str) -> Document: ... def parse(self, input: DOMInputSource) -> Document: ... - def parseWithContext(self, input: DOMInputSource, cnode: Node, action: Literal[1, 2, 3, 4]) -> NoReturn: ... + def parseWithContext(self, input: DOMInputSource, cnode: Node, action: Literal[1, 2, 3, 4]) -> Never: ... class DOMEntityResolver: __slots__ = ("_opener",) @@ -68,14 +69,14 @@ class DOMBuilderFilter: class DocumentLS: async_: bool - def abort(self) -> NoReturn: ... - def load(self, uri: str) -> NoReturn: ... - def loadXML(self, source: str) -> NoReturn: ... + def abort(self) -> Never: ... + def load(self, uri: str) -> Never: ... + def loadXML(self, source: str) -> Never: ... def saveXML(self, snode: Node | None) -> str: ... class DOMImplementationLS: MODE_SYNCHRONOUS: Final = 1 MODE_ASYNCHRONOUS: Final = 2 def createDOMBuilder(self, mode: Literal[1], schemaType: None) -> DOMBuilder: ... - def createDOMWriter(self) -> NoReturn: ... + def createDOMWriter(self) -> Never: ... def createDOMInputSource(self) -> DOMInputSource: ... diff --git a/stdlib/xml/sax/_exceptions.pyi b/stdlib/xml/sax/_exceptions.pyi index e9cc8856a9c8..8f5e3a827185 100644 --- a/stdlib/xml/sax/_exceptions.pyi +++ b/stdlib/xml/sax/_exceptions.pyi @@ -1,11 +1,11 @@ -from typing import NoReturn +from typing_extensions import Never from xml.sax.xmlreader import Locator class SAXException(Exception): def __init__(self, msg: str, exception: Exception | None = None) -> None: ... def getMessage(self) -> str: ... def getException(self) -> Exception | None: ... - def __getitem__(self, ix: object) -> NoReturn: ... + def __getitem__(self, ix: object) -> Never: ... class SAXParseException(SAXException): def __init__(self, msg: str, exception: Exception | None, locator: Locator) -> None: ... diff --git a/stdlib/xml/sax/handler.pyi b/stdlib/xml/sax/handler.pyi index e1e080ac2d1a..654c98866cfb 100644 --- a/stdlib/xml/sax/handler.pyi +++ b/stdlib/xml/sax/handler.pyi @@ -1,17 +1,18 @@ -from typing import Final, NoReturn, Protocol, type_check_only +from typing import Final, Protocol, type_check_only +from typing_extensions import Never from xml.sax import xmlreader version: Final[str] @type_check_only class _ErrorHandlerProtocol(Protocol): # noqa: Y046 # Protocol is not used - def error(self, exception: BaseException) -> NoReturn: ... - def fatalError(self, exception: BaseException) -> NoReturn: ... + def error(self, exception: BaseException) -> Never: ... + def fatalError(self, exception: BaseException) -> Never: ... def warning(self, exception: BaseException) -> None: ... class ErrorHandler: - def error(self, exception: BaseException) -> NoReturn: ... - def fatalError(self, exception: BaseException) -> NoReturn: ... + def error(self, exception: BaseException) -> Never: ... + def fatalError(self, exception: BaseException) -> Never: ... def warning(self, exception: BaseException) -> None: ... @type_check_only diff --git a/stdlib/xml/sax/saxutils.pyi b/stdlib/xml/sax/saxutils.pyi index a29588faae2a..0f5251def6b0 100644 --- a/stdlib/xml/sax/saxutils.pyi +++ b/stdlib/xml/sax/saxutils.pyi @@ -2,7 +2,8 @@ from _typeshed import SupportsWrite from codecs import StreamReaderWriter, StreamWriter from collections.abc import Mapping from io import RawIOBase, TextIOBase -from typing import Literal, NoReturn +from typing import Literal +from typing_extensions import Never from xml.sax import _Source, handler, xmlreader def escape(data: str, entities: Mapping[str, str] = {}) -> str: ... @@ -32,8 +33,8 @@ class XMLGenerator(handler.ContentHandler): class XMLFilterBase(xmlreader.XMLReader): def __init__(self, parent: xmlreader.XMLReader | None = None) -> None: ... # ErrorHandler methods - def error(self, exception: BaseException) -> NoReturn: ... - def fatalError(self, exception: BaseException) -> NoReturn: ... + def error(self, exception: BaseException) -> Never: ... + def fatalError(self, exception: BaseException) -> Never: ... def warning(self, exception: BaseException) -> None: ... # ContentHandler methods def setDocumentLocator(self, locator: xmlreader.Locator) -> None: ... diff --git a/stubs/Authlib/authlib/integrations/flask_oauth2/errors.pyi b/stubs/Authlib/authlib/integrations/flask_oauth2/errors.pyi index 258839271bd5..63389264ebcc 100644 --- a/stubs/Authlib/authlib/integrations/flask_oauth2/errors.pyi +++ b/stubs/Authlib/authlib/integrations/flask_oauth2/errors.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete -from typing import NoReturn +from typing_extensions import Never # Inherits from werkzeug.exceptions.HTTPException class _HTTPException: @@ -11,4 +11,4 @@ class _HTTPException: def get_body(self, environ=None, scope=None): ... def get_headers(self, environ=None, scope=None): ... -def raise_http_exception(status, body, headers) -> NoReturn: ... +def raise_http_exception(status, body, headers) -> Never: ... diff --git a/stubs/Authlib/authlib/integrations/flask_oauth2/resource_protector.pyi b/stubs/Authlib/authlib/integrations/flask_oauth2/resource_protector.pyi index a4c4928a04df..c0b262f8faf7 100644 --- a/stubs/Authlib/authlib/integrations/flask_oauth2/resource_protector.pyi +++ b/stubs/Authlib/authlib/integrations/flask_oauth2/resource_protector.pyi @@ -1,12 +1,12 @@ from _typeshed import Incomplete from collections.abc import Generator from contextlib import contextmanager -from typing import NoReturn +from typing_extensions import Never from authlib.oauth2 import ResourceProtector as _ResourceProtector class ResourceProtector(_ResourceProtector): - def raise_error_response(self, error) -> NoReturn: ... + def raise_error_response(self, error) -> Never: ... def acquire_token(self, scopes=None, **kwargs): ... @contextmanager def acquire(self, scopes=None) -> Generator[Incomplete]: ... diff --git a/stubs/Authlib/authlib/integrations/httpx_client/oauth1_client.pyi b/stubs/Authlib/authlib/integrations/httpx_client/oauth1_client.pyi index 9d99c64d4d5d..423172e9913e 100644 --- a/stubs/Authlib/authlib/integrations/httpx_client/oauth1_client.pyi +++ b/stubs/Authlib/authlib/integrations/httpx_client/oauth1_client.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete from collections.abc import Generator -from typing import NoReturn, TypeAlias +from typing import TypeAlias +from typing_extensions import Never from authlib.oauth1 import ClientAuth from authlib.oauth1.client import OAuth1Client as _OAuth1Client @@ -32,7 +33,7 @@ class AsyncOAuth1Client(_OAuth1Client): ) -> None: ... async def fetch_access_token(self, url, verifier=None, **kwargs): ... @staticmethod - def handle_error(error_type: str | None, error_description: str | None) -> NoReturn: ... + def handle_error(error_type: str | None, error_description: str | None) -> Never: ... # Inherits from httpx.Client class OAuth1Client(_OAuth1Client): @@ -52,4 +53,4 @@ class OAuth1Client(_OAuth1Client): **kwargs, ) -> None: ... @staticmethod - def handle_error(error_type: str | None, error_description: str | None) -> NoReturn: ... + def handle_error(error_type: str | None, error_description: str | None) -> Never: ... diff --git a/stubs/Authlib/authlib/integrations/httpx_client/oauth2_client.pyi b/stubs/Authlib/authlib/integrations/httpx_client/oauth2_client.pyi index 9493842b5378..2fc9facabeb5 100644 --- a/stubs/Authlib/authlib/integrations/httpx_client/oauth2_client.pyi +++ b/stubs/Authlib/authlib/integrations/httpx_client/oauth2_client.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete from collections.abc import Generator -from typing import NoReturn, TypeAlias +from typing import TypeAlias +from typing_extensions import Never from authlib.oauth2.auth import ClientAuth, TokenAuth from authlib.oauth2.client import OAuth2Client as _OAuth2Client @@ -66,6 +67,6 @@ class OAuth2Client(_OAuth2Client): **kwargs, ) -> None: ... @staticmethod - def handle_error(error_type: str | None, error_description: str | None) -> NoReturn: ... + def handle_error(error_type: str | None, error_description: str | None) -> Never: ... def request(self, method, url, withhold_token: bool = False, auth=..., **kwargs): ... def stream(self, method, url, withhold_token: bool = False, auth=..., **kwargs): ... diff --git a/stubs/Authlib/authlib/integrations/requests_client/oauth1_session.pyi b/stubs/Authlib/authlib/integrations/requests_client/oauth1_session.pyi index deead135e951..d197f07f7e9e 100644 --- a/stubs/Authlib/authlib/integrations/requests_client/oauth1_session.pyi +++ b/stubs/Authlib/authlib/integrations/requests_client/oauth1_session.pyi @@ -1,4 +1,4 @@ -from typing import NoReturn +from typing_extensions import Never from authlib.oauth1 import ClientAuth from authlib.oauth1.client import OAuth1Client @@ -26,4 +26,4 @@ class OAuth1Session(OAuth1Client): ) -> None: ... def rebuild_auth(self, prepared_request, response) -> None: ... @staticmethod - def handle_error(error_type: str | None, error_description: str | None) -> NoReturn: ... + def handle_error(error_type: str | None, error_description: str | None) -> Never: ... diff --git a/stubs/Authlib/authlib/oauth1/client.pyi b/stubs/Authlib/authlib/oauth1/client.pyi index 25a169c46bf5..07b0221f9c15 100644 --- a/stubs/Authlib/authlib/oauth1/client.pyi +++ b/stubs/Authlib/authlib/oauth1/client.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete -from typing import Any, NoReturn +from typing import Any +from typing_extensions import Never from authlib.oauth1 import ClientAuth @@ -40,5 +41,5 @@ class OAuth1Client: def parse_authorization_response(self, url: str) -> dict[str, str]: ... def parse_response_token(self, status_code: int, text: str): ... @staticmethod - def handle_error(error_type: str, error_description: str) -> NoReturn: ... + def handle_error(error_type: str, error_description: str) -> Never: ... def __del__(self) -> None: ... diff --git a/stubs/Authlib/authlib/oauth2/rfc9068/revocation.pyi b/stubs/Authlib/authlib/oauth2/rfc9068/revocation.pyi index 13eee4f99868..befb05a1702d 100644 --- a/stubs/Authlib/authlib/oauth2/rfc9068/revocation.pyi +++ b/stubs/Authlib/authlib/oauth2/rfc9068/revocation.pyi @@ -1,10 +1,10 @@ from _typeshed import Incomplete -from typing import NoReturn +from typing_extensions import Never from authlib.oauth2.rfc7009 import RevocationEndpoint class JWTRevocationEndpoint(RevocationEndpoint): issuer: Incomplete def __init__(self, issuer, server=None, *args, **kwargs) -> None: ... - def authenticate_token(self, request, client) -> NoReturn: ... + def authenticate_token(self, request, client) -> Never: ... def get_jwks(self): ... diff --git a/stubs/JACK-Client/jack/__init__.pyi b/stubs/JACK-Client/jack/__init__.pyi index c173e7be07cc..d577f8f2742d 100644 --- a/stubs/JACK-Client/jack/__init__.pyi +++ b/stubs/JACK-Client/jack/__init__.pyi @@ -1,7 +1,7 @@ from _typeshed import Unused from collections.abc import Callable, Generator, Iterable, Iterator, Sequence -from typing import Any, Final, Literal, NoReturn, overload, type_check_only -from typing_extensions import Self +from typing import Any, Final, Literal, overload, type_check_only +from typing_extensions import Never, Self import numpy from _cffi_backend import _CDataBase @@ -239,8 +239,8 @@ class OwnMidiPort(MidiPort, OwnPort): def __init__(self, port_ptr: _CDataBase, client: Client) -> None: ... # The implementation raises NotImplementedError, but this is not an abstract class. # `get_buffer()` and `get_array()` are disabled for OwnMidiPort - def get_buffer(self) -> NoReturn: ... - def get_array(self) -> NoReturn: ... + def get_buffer(self) -> Never: ... + def get_array(self) -> Never: ... @property def max_event_size(self) -> int: ... @property diff --git a/stubs/PyMySQL/pymysql/converters.pyi b/stubs/PyMySQL/pymysql/converters.pyi index e7a80135d612..dcda0644fb05 100644 --- a/stubs/PyMySQL/pymysql/converters.pyi +++ b/stubs/PyMySQL/pymysql/converters.pyi @@ -4,15 +4,15 @@ import time from _typeshed import Unused from collections.abc import Callable, Mapping, Sequence from decimal import Decimal -from typing import Any, NoReturn, TypeAlias, TypeVar -from typing_extensions import deprecated +from typing import Any, TypeAlias, TypeVar +from typing_extensions import Never, deprecated _EscaperMapping: TypeAlias = Mapping[type[object], Callable[..., str]] | None _T = TypeVar("_T") def escape_item(val: object, charset: object, mapping: _EscaperMapping = None) -> str: ... @deprecated("dict cannot be used as parameter. It didn't produce valid SQL and might cause SQL injection.") -def escape_dict(val: Mapping[str, object], charset: object, mapping: _EscaperMapping = None) -> NoReturn: ... +def escape_dict(val: Mapping[str, object], charset: object, mapping: _EscaperMapping = None) -> Never: ... def escape_sequence(val: Sequence[object], charset: object, mapping: _EscaperMapping = None) -> str: ... def escape_set(val: set[object], charset: object, mapping: _EscaperMapping = None) -> str: ... def escape_bool(value: bool, mapping: _EscaperMapping = None) -> str: ... diff --git a/stubs/PyMySQL/pymysql/err.pyi b/stubs/PyMySQL/pymysql/err.pyi index 9484ab64798f..d8a2d837761c 100644 --- a/stubs/PyMySQL/pymysql/err.pyi +++ b/stubs/PyMySQL/pymysql/err.pyi @@ -1,5 +1,5 @@ import builtins -from typing import NoReturn +from typing_extensions import Never from .constants import ER as ER @@ -21,4 +21,4 @@ class NotSupportedError(DatabaseError): ... error_map: dict[int, type[DatabaseError]] -def raise_mysql_exception(data: bytes | bytearray) -> NoReturn: ... +def raise_mysql_exception(data: bytes | bytearray) -> Never: ... diff --git a/stubs/PyYAML/yaml/emitter.pyi b/stubs/PyYAML/yaml/emitter.pyi index 6d7f2b0e6bd0..3a19e94a31a9 100644 --- a/stubs/PyYAML/yaml/emitter.pyi +++ b/stubs/PyYAML/yaml/emitter.pyi @@ -1,5 +1,6 @@ from collections.abc import Callable -from typing import Any, NoReturn, Protocol, TypeVar, type_check_only +from typing import Any, Protocol, TypeVar, type_check_only +from typing_extensions import Never from yaml.error import YAMLError @@ -74,7 +75,7 @@ class Emitter: def need_events(self, count: int) -> bool: ... def increase_indent(self, flow: bool = False, indentless: bool = False) -> None: ... def expect_stream_start(self) -> None: ... - def expect_nothing(self) -> NoReturn: ... + def expect_nothing(self) -> Never: ... def expect_first_document_start(self) -> None: ... def expect_document_start(self, first: bool = False) -> None: ... def expect_document_end(self) -> None: ... diff --git a/stubs/PyYAML/yaml/representer.pyi b/stubs/PyYAML/yaml/representer.pyi index b0629b245ccb..ac10d892949b 100644 --- a/stubs/PyYAML/yaml/representer.pyi +++ b/stubs/PyYAML/yaml/representer.pyi @@ -2,8 +2,8 @@ import datetime from _typeshed import Incomplete, ReadableBuffer, SupportsItems from collections.abc import Callable, Iterable, Mapping from types import BuiltinFunctionType, FunctionType, ModuleType -from typing import Any, ClassVar, NoReturn, TypeVar -from typing_extensions import Self +from typing import Any, ClassVar, TypeVar +from typing_extensions import Never, Self from yaml.error import YAMLError as YAMLError from yaml.nodes import MappingNode as MappingNode, Node as Node, ScalarNode as ScalarNode, SequenceNode as SequenceNode @@ -50,7 +50,7 @@ class SafeRepresenter(BaseRepresenter): def represent_date(self, data: datetime.date) -> ScalarNode: ... def represent_datetime(self, data: datetime.datetime) -> ScalarNode: ... def represent_yaml_object(self, tag: str, data, cls, flow_style: bool | None = None) -> MappingNode: ... - def represent_undefined(self, data) -> NoReturn: ... + def represent_undefined(self, data) -> Never: ... class Representer(SafeRepresenter): def represent_complex(self, data: complex) -> ScalarNode: ... diff --git a/stubs/boltons/boltons/dictutils.pyi b/stubs/boltons/boltons/dictutils.pyi index 8d5e578437a8..e2a8277fca00 100644 --- a/stubs/boltons/boltons/dictutils.pyi +++ b/stubs/boltons/boltons/dictutils.pyi @@ -1,7 +1,7 @@ from _typeshed import SupportsKeysAndGetItem from collections.abc import Generator, ItemsView, Iterable, Iterator, KeysView, ValuesView -from typing import Any, Generic, NoReturn, TypeAlias, TypeVar, overload -from typing_extensions import Self +from typing import Any, Generic, TypeAlias, TypeVar, overload +from typing_extensions import Never, Self _KT = TypeVar("_KT") _VT = TypeVar("_VT") @@ -117,13 +117,13 @@ class FrozenDict(dict[_KT, _VT]): @classmethod def fromkeys(cls, keys: Iterable[_KT], value: _VT | None = None) -> Self: ... # type: ignore[override] def updated(self, *a, **kw) -> Self: ... - def __ior__(self, *a, **kw) -> NoReturn: ... # type: ignore[misc] # noqa: Y034 # Signature conflicts with superclass - def __setitem__(self, *a, **kw) -> NoReturn: ... - def __delitem__(self, *a, **kw) -> NoReturn: ... - def update(self, *a, **kw) -> NoReturn: ... - def pop(self, *a, **kw) -> NoReturn: ... - def popitem(self, *a, **kw) -> NoReturn: ... - def setdefault(self, *a, **kw) -> NoReturn: ... - def clear(self, *a, **kw) -> NoReturn: ... + def __ior__(self, *a, **kw) -> Never: ... # type: ignore[misc] # noqa: Y034 # Signature conflicts with superclass + def __setitem__(self, *a, **kw) -> Never: ... + def __delitem__(self, *a, **kw) -> Never: ... + def update(self, *a, **kw) -> Never: ... + def pop(self, *a, **kw) -> Never: ... + def popitem(self, *a, **kw) -> Never: ... + def setdefault(self, *a, **kw) -> Never: ... + def clear(self, *a, **kw) -> Never: ... __all__ = ["MultiDict", "OMD", "OrderedMultiDict", "OneToOne", "ManyToMany", "subdict", "FrozenDict"] diff --git a/stubs/boltons/boltons/easterutils.pyi b/stubs/boltons/boltons/easterutils.pyi index 4ccfba3eee9a..bea7b390f909 100644 --- a/stubs/boltons/boltons/easterutils.pyi +++ b/stubs/boltons/boltons/easterutils.pyi @@ -1,3 +1,3 @@ -from typing import NoReturn +from typing_extensions import Never -def gobs_program() -> NoReturn: ... +def gobs_program() -> Never: ... diff --git a/stubs/boltons/boltons/fileutils.pyi b/stubs/boltons/boltons/fileutils.pyi index c880b762b361..8e2fb8b75b27 100644 --- a/stubs/boltons/boltons/fileutils.pyi +++ b/stubs/boltons/boltons/fileutils.pyi @@ -2,8 +2,8 @@ from _typeshed import BytesPath, StrOrBytesPath, StrPath from collections.abc import Callable, Generator, Iterable from os import PathLike from types import TracebackType -from typing import IO, Any, NoReturn, TypeVar, overload -from typing_extensions import Self +from typing import IO, Any, TypeVar, overload +from typing_extensions import Never, Self _StrPathT = TypeVar("_StrPathT", bound=StrPath) _BytesPathT = TypeVar("_BytesPathT", bound=BytesPath) @@ -80,7 +80,7 @@ class DummyFile: def close(self) -> None: ... def fileno(self) -> int: ... def flush(self) -> None: ... - def next(self) -> NoReturn: ... + def next(self) -> Never: ... def read(self, size: int = 0) -> str: ... def readline(self, size: int = 0) -> str: ... def readlines(self, size: int = 0) -> list[str]: ... @@ -89,7 +89,7 @@ class DummyFile: def truncate(self) -> None: ... def write(self, string: str) -> None: ... def writelines(self, list_of_strings: list[str]) -> None: ... - def __next__(self) -> NoReturn: ... + def __next__(self) -> Never: ... def __enter__(self) -> None: ... def __exit__(self, exc_type, exc_val, exc_tb) -> None: ... diff --git a/stubs/braintree/braintree/credit_card_gateway.pyi b/stubs/braintree/braintree/credit_card_gateway.pyi index 7ec3fac2cb04..2661ad018aea 100644 --- a/stubs/braintree/braintree/credit_card_gateway.pyi +++ b/stubs/braintree/braintree/credit_card_gateway.pyi @@ -1,6 +1,6 @@ from _typeshed import Incomplete, Unused from datetime import date, datetime -from typing import NoReturn +from typing_extensions import Never from braintree.credit_card import CreditCard from braintree.error_result import ErrorResult @@ -16,7 +16,7 @@ class CreditCardGateway: def expired(self) -> ResourceCollection: ... def expiring_between(self, start_date: date | datetime, end_date: date | datetime) -> ResourceCollection: ... def find(self, credit_card_token: str) -> CreditCard: ... - def forward(self, credit_card_token: Unused, receiving_merchant_id: Unused) -> NoReturn: ... + def forward(self, credit_card_token: Unused, receiving_merchant_id: Unused) -> Never: ... def from_nonce(self, nonce: str) -> CreditCard: ... def update( self, credit_card_token: str, params: dict[str, Incomplete] | None = None diff --git a/stubs/capturer/capturer.pyi b/stubs/capturer/capturer.pyi index 48759b77ae76..0bd324a760ea 100644 --- a/stubs/capturer/capturer.pyi +++ b/stubs/capturer/capturer.pyi @@ -6,8 +6,8 @@ from multiprocessing.queues import Queue from multiprocessing.synchronize import Event from signal import Signals from types import FrameType, TracebackType -from typing import IO, Any, NoReturn -from typing_extensions import Self +from typing import IO, Any +from typing_extensions import Never, Self __version__: str aliases: dict[str, Any] @@ -28,7 +28,7 @@ class MultiProcessHelper: def stop_children(self) -> None: ... def wait_for_children(self) -> None: ... def enable_graceful_shutdown(self) -> None: ... - def raise_shutdown_request(self, signum: int, frame: FrameType | None) -> NoReturn: ... + def raise_shutdown_request(self, signum: int, frame: FrameType | None) -> Never: ... class CaptureOutput(MultiProcessHelper): chunk_size: int diff --git a/stubs/convertdate/convertdate/mayan.pyi b/stubs/convertdate/convertdate/mayan.pyi index fda5faaa18c7..310f04093135 100644 --- a/stubs/convertdate/convertdate/mayan.pyi +++ b/stubs/convertdate/convertdate/mayan.pyi @@ -1,6 +1,7 @@ from _typeshed import Unused from collections.abc import Generator -from typing import Final, Literal, NoReturn, overload +from typing import Final, Literal, overload +from typing_extensions import Never EPOCH: Final = 584282.5 HAAB: Final[list[str]] @@ -22,7 +23,7 @@ def translate_tzolkin(tz: str) -> str | None: ... def tzolkin_generator(number: int | None = None, name: str | None = None) -> Generator[tuple[int, str]]: ... def longcount_generator( baktun: int, katun: int, tun: int, uinal: int, kin: int -) -> Generator[tuple[int, int, int, int, int], None, NoReturn]: ... +) -> Generator[tuple[int, int, int, int, int], None, Never]: ... def next_haab(month: str, jd: float) -> float: ... def next_tzolkin(tzolkin: tuple[int, str], jd: float) -> float: ... def next_tzolkin_haab(tzolkin: tuple[int, str], haab: tuple[int, str], jd: float) -> float: ... diff --git a/stubs/django-import-export/import_export/resources.pyi b/stubs/django-import-export/import_export/resources.pyi index 1baf4cba7ac6..4f1c75dac782 100644 --- a/stubs/django-import-export/import_export/resources.pyi +++ b/stubs/django-import-export/import_export/resources.pyi @@ -3,8 +3,8 @@ from collections import OrderedDict from collections.abc import Iterator, Sequence from functools import partial from logging import Logger -from typing import Any, ClassVar, Generic, Literal, NoReturn, TypeAlias, TypeVar, overload -from typing_extensions import deprecated +from typing import Any, ClassVar, Generic, Literal, TypeAlias, TypeVar, overload +from typing_extensions import Never, deprecated from django.db.models import Field as DjangoField, Model, QuerySet from django.utils.safestring import SafeString @@ -104,7 +104,7 @@ class Resource(Generic[_ModelT], metaclass=DeclarativeMetaclass): def after_init_instance(self, instance: _ModelT, new: bool, row: dict[str, Any], **kwargs: Any) -> None: ... @overload - def handle_import_error(self, result: Result, error: Exception, raise_errors: Literal[True]) -> NoReturn: ... + def handle_import_error(self, result: Result, error: Exception, raise_errors: Literal[True]) -> Never: ... @overload def handle_import_error(self, result: Result, error: Exception, raise_errors: Literal[False] = False) -> None: ... diff --git a/stubs/docker/docker/client.pyi b/stubs/docker/docker/client.pyi index 9a0eb9194aa1..eef6be705974 100644 --- a/stubs/docker/docker/client.pyi +++ b/stubs/docker/docker/client.pyi @@ -1,7 +1,8 @@ from _typeshed import Incomplete from collections.abc import Iterable, Mapping from datetime import datetime -from typing import Any, Literal, NoReturn, Protocol, overload, type_check_only +from typing import Any, Literal, Protocol, overload, type_check_only +from typing_extensions import Never from docker import APIClient from docker.models.configs import ConfigCollection @@ -120,7 +121,7 @@ class DockerClient: # Please keep in sync with docker.api.daemon.DaemonApiMixin.version def version(self, api_version: bool = True) -> dict[str, Any]: ... def close(self) -> None: ... - def __getattr__(self, name: str) -> NoReturn: ... + def __getattr__(self, name: str) -> Never: ... from_env = DockerClient.from_env from_context = DockerClient.from_context diff --git a/stubs/docker/docker/errors.pyi b/stubs/docker/docker/errors.pyi index da2c69053452..407f1afb13f9 100644 --- a/stubs/docker/docker/errors.pyi +++ b/stubs/docker/docker/errors.pyi @@ -1,5 +1,6 @@ from collections.abc import Iterator, Mapping -from typing import Any, NoReturn +from typing import Any +from typing_extensions import Never from docker.models.containers import Container from docker.models.images import Image @@ -7,7 +8,7 @@ from requests import HTTPError, Response class DockerException(Exception): ... -def create_api_error_from_http_exception(e: HTTPError) -> NoReturn: ... +def create_api_error_from_http_exception(e: HTTPError) -> Never: ... class APIError(HTTPError, DockerException): response: Response | None @@ -54,7 +55,7 @@ class BuildError(DockerException): class ImageLoadError(DockerException): ... -def create_unexpected_kwargs_error(name, kwargs: Mapping[str, Any]) -> NoReturn: ... +def create_unexpected_kwargs_error(name, kwargs: Mapping[str, Any]) -> Never: ... class MissingContextParameter(DockerException): param: str diff --git a/stubs/docker/docker/models/resource.pyi b/stubs/docker/docker/models/resource.pyi index 20b153c173e3..4e22b67516ff 100644 --- a/stubs/docker/docker/models/resource.pyi +++ b/stubs/docker/docker/models/resource.pyi @@ -1,6 +1,6 @@ from builtins import list as _list -from typing import Any, Generic, NoReturn, TypeVar -from typing_extensions import Self +from typing import Any, Generic, TypeVar +from typing_extensions import Never, Self from docker import DockerClient @@ -26,7 +26,7 @@ class Collection(Generic[_T]): model: type[_T] client: DockerClient def __init__(self, client: DockerClient | None = None) -> None: ... - def __call__(self, *args, **kwargs) -> NoReturn: ... + def __call__(self, *args, **kwargs) -> Never: ... def list(self) -> _list[_T]: ... def get(self, key: str) -> _T: ... def create(self, attrs: Any | None = None) -> _T: ... diff --git a/stubs/docker/docker/transport/npipesocket.pyi b/stubs/docker/docker/transport/npipesocket.pyi index e7cc2538c8e3..f68d4785b082 100644 --- a/stubs/docker/docker/transport/npipesocket.pyi +++ b/stubs/docker/docker/transport/npipesocket.pyi @@ -1,6 +1,7 @@ import io from _typeshed import ReadableBuffer -from typing import Any, Literal, NoReturn, TypeAlias +from typing import Any, Literal, TypeAlias +from typing_extensions import Never cERROR_PIPE_BUSY: int cSECURITY_SQOS_PRESENT: int @@ -24,11 +25,11 @@ class NpipeSocket: def getpeername(self) -> str: ... def getsockname(self) -> str: ... # NotImplementedError - def getsockopt(self, level, optname, buflen=None) -> NoReturn: ... + def getsockopt(self, level, optname, buflen=None) -> Never: ... # NotImplementedError - def ioctl(self, control, option) -> NoReturn: ... + def ioctl(self, control, option) -> Never: ... # NotImplementedError - def listen(self, backlog) -> NoReturn: ... + def listen(self, backlog) -> Never: ... def makefile(self, mode: str | None = None, bufsize: int | None = None) -> io.BufferedReader: ... def recv(self, bufsize: int, flags: int = 0) -> str: ... def recvfrom(self, bufsize: int, flags: int = 0) -> tuple[str, str]: ... @@ -41,7 +42,7 @@ class NpipeSocket: def settimeout(self, value: float | None) -> None: ... def gettimeout(self) -> int | None: ... # NotImplementedError - def setsockopt(self, level, optname, value) -> NoReturn: ... + def setsockopt(self, level, optname, value) -> Never: ... def shutdown(self, how) -> None: ... class NpipeFileIOBase(io.RawIOBase): diff --git a/stubs/docker/docker/utils/utils.pyi b/stubs/docker/docker/utils/utils.pyi index 07333ef59ac5..7b248df23535 100644 --- a/stubs/docker/docker/utils/utils.pyi +++ b/stubs/docker/docker/utils/utils.pyi @@ -2,8 +2,8 @@ import datetime from _typeshed import FileDescriptorOrPath, ReadableBuffer, Unused from collections.abc import Iterable, Mapping from shlex import _ShlexInstream -from typing import Literal, NamedTuple, NoReturn, TypedDict, TypeVar, overload, type_check_only -from typing_extensions import deprecated +from typing import Literal, NamedTuple, TypedDict, TypeVar, overload, type_check_only +from typing_extensions import Never, deprecated from ..tls import TLSConfig @@ -25,9 +25,9 @@ class URLComponents(NamedTuple): fragment: str | None @deprecated("utils.create_ipam_pool has been removed. Please use a docker.types.IPAMPool object instead.") -def create_ipam_pool(*args: Unused, **kwargs: Unused) -> NoReturn: ... +def create_ipam_pool(*args: Unused, **kwargs: Unused) -> Never: ... @deprecated("utils.create_ipam_config has been removed. Please use a docker.types.IPAMConfig object instead.") -def create_ipam_config(*args: Unused, **kwargs: Unused) -> NoReturn: ... +def create_ipam_config(*args: Unused, **kwargs: Unused) -> Never: ... def decode_json_header(header: str | ReadableBuffer): ... def compare_version(v1: str, v2: str) -> Literal[0, -1, 1]: ... def version_lt(v1: str, v2: str) -> bool: ... @@ -75,4 +75,4 @@ def format_extra_hosts( extra_hosts: Mapping[object, object], task: bool = False # keys and values are converted to str ) -> list[str]: ... @deprecated("utils.create_host_config has been removed. Please use a docker.types.HostConfig object instead.") -def create_host_config(self, *args: Unused, **kwargs: Unused) -> NoReturn: ... +def create_host_config(self, *args: Unused, **kwargs: Unused) -> Never: ... diff --git a/stubs/docutils/docutils/parsers/rst/states.pyi b/stubs/docutils/docutils/parsers/rst/states.pyi index d6f7ad79dae4..d148d2521222 100644 --- a/stubs/docutils/docutils/parsers/rst/states.pyi +++ b/stubs/docutils/docutils/parsers/rst/states.pyi @@ -2,7 +2,8 @@ from _typeshed import Incomplete from collections.abc import Callable, Iterable, Sequence from re import Match, Pattern from types import ModuleType, SimpleNamespace as Struct -from typing import Any, ClassVar, Final, NoReturn, TypeAlias +from typing import Any, ClassVar, Final, TypeAlias +from typing_extensions import Never from docutils import ApplicationError, DataError, nodes from docutils.nodes import Node, system_message @@ -249,7 +250,7 @@ class RFC2822Body(Body): class SpecializedBody(Body): def invalid_input( self, match: Match[str] | None = None, context: list[str] | None = None, next_state: str | None = None - ) -> NoReturn: ... + ) -> Never: ... indent = invalid_input # type: ignore[assignment] bullet = invalid_input enumerator = invalid_input @@ -345,7 +346,7 @@ class SpecializedText(Text): def eof(self, context): ... def invalid_input( self, match: Match[str] | None = None, context: list[str] | None = None, next_state: str | None = None - ) -> NoReturn: ... + ) -> Never: ... blank = invalid_input indent = invalid_input underline = invalid_input @@ -377,7 +378,7 @@ class QuotedLiteralBlock(RSTState): def __init__(self, state_machine, debug: bool = False) -> None: ... def blank(self, match, context, next_state): ... def eof(self, context): ... - def indent(self, match: Match[str] | None, context: list[str], next_state: str | None) -> NoReturn: ... + def indent(self, match: Match[str] | None, context: list[str], next_state: str | None) -> Never: ... def initial_quoted( self, match: Match[str], context: list[str] | None, next_state: str | None ) -> tuple[list[str], str | None, list[str]]: ... diff --git a/stubs/docutils/docutils/transforms/parts.pyi b/stubs/docutils/docutils/transforms/parts.pyi index 219f64d7876a..39aa9e2aa8df 100644 --- a/stubs/docutils/docutils/transforms/parts.pyi +++ b/stubs/docutils/docutils/transforms/parts.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, Unused from collections.abc import Iterable, Sequence -from typing import ClassVar, Final, NoReturn +from typing import ClassVar, Final +from typing_extensions import Never from docutils import nodes from docutils.transforms import Transform @@ -28,7 +29,7 @@ class Contents(Transform): class ContentsFilter(nodes.TreeCopyVisitor): def get_entry_text(self) -> Sequence[nodes.Node]: ... - def ignore_node_but_process_children(self, node: Unused) -> NoReturn: ... + def ignore_node_but_process_children(self, node: Unused) -> Never: ... visit_problematic = ignore_node_but_process_children visit_reference = ignore_node_but_process_children visit_target = ignore_node_but_process_children diff --git a/stubs/docutils/docutils/writers/_html_base.pyi b/stubs/docutils/docutils/writers/_html_base.pyi index 9169869aa1a8..dccf180e85ce 100644 --- a/stubs/docutils/docutils/writers/_html_base.pyi +++ b/stubs/docutils/docutils/writers/_html_base.pyi @@ -1,7 +1,8 @@ from _typeshed import Incomplete, StrPath from collections.abc import Callable from re import Pattern -from typing import ClassVar, Final, NoReturn +from typing import ClassVar, Final +from typing_extensions import Never from docutils import nodes, writers from docutils.frontend import Values @@ -269,7 +270,7 @@ class HTMLTranslator(nodes.NodeVisitor): def depart_transition(self, node: nodes.transition) -> None: ... def visit_version(self, node: nodes.version) -> None: ... def depart_version(self, node: nodes.version) -> None: ... - def unimplemented_visit(self, node: nodes.Node) -> NoReturn: ... + def unimplemented_visit(self, node: nodes.Node) -> Never: ... class SimpleListChecker(nodes.GenericNodeVisitor): def visit_list_item(self, node: nodes.list_item) -> None: ... diff --git a/stubs/docutils/docutils/writers/latex2e/__init__.pyi b/stubs/docutils/docutils/writers/latex2e/__init__.pyi index 8879d2068d18..5b75055a0140 100644 --- a/stubs/docutils/docutils/writers/latex2e/__init__.pyi +++ b/stubs/docutils/docutils/writers/latex2e/__init__.pyi @@ -3,8 +3,8 @@ from _typeshed import Incomplete, StrPath from collections.abc import Callable, Iterable from io import TextIOWrapper from pathlib import Path -from typing import ClassVar, Final, Literal, NoReturn, TypeVar, overload -from typing_extensions import deprecated +from typing import ClassVar, Final, Literal, TypeVar, overload +from typing_extensions import Never, deprecated from docutils import nodes from docutils.frontend import Values @@ -420,4 +420,4 @@ class LaTeXTranslator(nodes.NodeVisitor): def depart_transition(self, node: nodes.transition) -> None: ... def visit_version(self, node: nodes.version) -> None: ... def depart_version(self, node: nodes.version) -> None: ... - def unimplemented_visit(self, node: nodes.Node) -> NoReturn: ... + def unimplemented_visit(self, node: nodes.Node) -> Never: ... diff --git a/stubs/docutils/docutils/writers/manpage.pyi b/stubs/docutils/docutils/writers/manpage.pyi index 6eb88a13c497..9b9606008bb3 100644 --- a/stubs/docutils/docutils/writers/manpage.pyi +++ b/stubs/docutils/docutils/writers/manpage.pyi @@ -1,7 +1,8 @@ import re from _typeshed import Incomplete from collections.abc import Callable -from typing import ClassVar, Final, NoReturn, Protocol, type_check_only +from typing import ClassVar, Final, Protocol, type_check_only +from typing_extensions import Never from docutils import nodes, writers from docutils.frontend import Values @@ -249,4 +250,4 @@ class Translator(nodes.NodeVisitor): def visit_version(self, node: nodes.version) -> None: ... def visit_warning(self, node: nodes.warning) -> None: ... def depart_warning(self, node: nodes.warning) -> None: ... - def unimplemented_visit(self, node: nodes.Node) -> NoReturn: ... + def unimplemented_visit(self, node: nodes.Node) -> Never: ... diff --git a/stubs/ephem/ephem/__init__.pyi b/stubs/ephem/ephem/__init__.pyi index a62d0f68dd4c..477799ef2be7 100644 --- a/stubs/ephem/ephem/__init__.pyi +++ b/stubs/ephem/ephem/__init__.pyi @@ -1,7 +1,7 @@ from collections.abc import Callable from datetime import datetime as _datetime, timedelta as _timedelta, tzinfo as _tzinfo -from typing import Final, NoReturn, overload -from typing_extensions import Self +from typing import Final, overload +from typing_extensions import Never, Self from . import _libastro @@ -226,7 +226,7 @@ def localtime(date: Date | float) -> _datetime: ... class _UTC(_tzinfo): ZERO: _timedelta - def tzname(self, dt: _datetime | None, /) -> NoReturn: ... + def tzname(self, dt: _datetime | None, /) -> Never: ... def utcoffset(self, dt: _datetime | None) -> _timedelta: ... def dst(self, dt: _datetime | None) -> _timedelta: ... diff --git a/stubs/ephem/ephem/_libastro.pyi b/stubs/ephem/ephem/_libastro.pyi index 1501df7a3b4d..1d21f7e04c70 100644 --- a/stubs/ephem/ephem/_libastro.pyi +++ b/stubs/ephem/ephem/_libastro.pyi @@ -1,8 +1,8 @@ import builtins from _typeshed import Unused from datetime import datetime as _datetime -from typing import Final, NoReturn, TypeAlias, TypedDict, overload, type_check_only -from typing_extensions import Self, deprecated, disjoint_base +from typing import Final, TypeAlias, TypedDict, overload, type_check_only +from typing_extensions import Never, Self, deprecated, disjoint_base _DateInitType: TypeAlias = ( Date @@ -66,7 +66,7 @@ sun_radius: Final[float] @disjoint_base class Angle(float): # type: ignore[type-var] - def __new__(cls, *args: Unused, **kwargs: Unused) -> NoReturn: ... + def __new__(cls, *args: Unused, **kwargs: Unused) -> Never: ... @property def norm(self) -> Angle: ... @property diff --git a/stubs/fpdf2/fpdf/deprecation.pyi b/stubs/fpdf2/fpdf/deprecation.pyi index a1399a56191a..7766bb38ab4c 100644 --- a/stubs/fpdf2/fpdf/deprecation.pyi +++ b/stubs/fpdf2/fpdf/deprecation.pyi @@ -1,10 +1,11 @@ from types import ModuleType -from typing import Any, NoReturn +from typing import Any +from typing_extensions import Never def support_deprecated_txt_arg(fn): ... class WarnOnDeprecatedModuleAttributes(ModuleType): - def __call__(self) -> NoReturn: ... + def __call__(self) -> Never: ... def __getattr__(self, name: str) -> Any: ... def __setattr__(self, name: str, value: Any) -> None: ... diff --git a/stubs/gevent/gevent/_config.pyi b/stubs/gevent/gevent/_config.pyi index bf5cd4f17c60..7015d9f4252f 100644 --- a/stubs/gevent/gevent/_config.pyi +++ b/stubs/gevent/gevent/_config.pyi @@ -1,5 +1,6 @@ from collections.abc import Callable, Sequence -from typing import Any, Generic, NoReturn, Protocol, TypeVar, overload, type_check_only +from typing import Any, Generic, Protocol, TypeVar, overload, type_check_only +from typing_extensions import Never from gevent._types import _Loop, _Resolver from gevent.fileobject import _FileObjectType @@ -21,7 +22,7 @@ class _SettingDescriptor(Protocol[_T]): class SettingType(type): def fmt_desc(cls, desc: str) -> str: ... -def validate_invalid(value: object) -> NoReturn: ... +def validate_invalid(value: object) -> Never: ... def validate_bool(value: str | bool) -> bool: ... def validate_anything(value: _T) -> _T: ... diff --git a/stubs/gevent/gevent/_greenlet_primitives.pyi b/stubs/gevent/gevent/_greenlet_primitives.pyi index 39c9dda40a22..60356ed148d6 100644 --- a/stubs/gevent/gevent/_greenlet_primitives.pyi +++ b/stubs/gevent/gevent/_greenlet_primitives.pyi @@ -1,6 +1,6 @@ from abc import abstractmethod -from typing import Any, NoReturn -from typing_extensions import disjoint_base +from typing import Any +from typing_extensions import Never, disjoint_base from gevent._types import _Loop from greenlet import greenlet @@ -16,6 +16,6 @@ class SwitchOutGreenletWithLoop(TrackedRawGreenlet): def loop(self, value: _Loop) -> None: ... def switch(self) -> Any: ... - def switch_out(self) -> NoReturn: ... + def switch_out(self) -> Never: ... __all__ = ["TrackedRawGreenlet", "SwitchOutGreenletWithLoop"] diff --git a/stubs/google-cloud-ndb/google/cloud/ndb/model.pyi b/stubs/google-cloud-ndb/google/cloud/ndb/model.pyi index 6a35eaf49d13..54233f0ab42e 100644 --- a/stubs/google-cloud-ndb/google/cloud/ndb/model.pyi +++ b/stubs/google-cloud-ndb/google/cloud/ndb/model.pyi @@ -1,8 +1,8 @@ import datetime from _typeshed import Unused from collections.abc import Callable, Iterable, Sequence -from typing import Any, Literal, NoReturn, TypeAlias -from typing_extensions import Self +from typing import Any, Literal, TypeAlias +from typing_extensions import Never, Self from google.cloud.ndb import exceptions, key as key_module, query as query_module, tasklets as tasklets_module @@ -58,10 +58,10 @@ class IndexState(_NotEqualMixin): def __hash__(self) -> int: ... class ModelAdapter: - # This actually returns NoReturn, but mypy can't handle that + # This actually returns Never, but mypy can't handle that def __new__(cls, *args, **kwargs) -> Self: ... -def make_connection(*args, **kwargs) -> NoReturn: ... +def make_connection(*args, **kwargs) -> Never: ... class ModelAttribute: ... @@ -118,7 +118,7 @@ class _CompressedValue(bytes): z_val: bytes def __init__(self, z_val: bytes) -> None: ... def __eq__(self, other: object) -> bool: ... - def __hash__(self) -> NoReturn: ... + def __hash__(self) -> Never: ... class BlobProperty(Property): def __init__( @@ -257,7 +257,7 @@ class MetaModel(type): class Model(_NotEqualMixin, metaclass=MetaModel): key: ModelKey def __init__(_self, **kwargs) -> None: ... - def __hash__(self) -> NoReturn: ... + def __hash__(self) -> Never: ... def __eq__(self, other: object) -> bool: ... @classmethod def gql(cls: type[Model], query_string: str, *args, **kwargs) -> query_module.Query: ... @@ -512,5 +512,5 @@ def delete_multi( force_writes: bool | None = ..., _options: object = None, ) -> list[None]: ... -def get_indexes_async(**options: Unused) -> NoReturn: ... -def get_indexes(**options: Unused) -> NoReturn: ... +def get_indexes_async(**options: Unused) -> Never: ... +def get_indexes(**options: Unused) -> Never: ... diff --git a/stubs/grpcio/grpc/__init__.pyi b/stubs/grpcio/grpc/__init__.pyi index 85f1af44e5a8..bd0210796ec4 100644 --- a/stubs/grpcio/grpc/__init__.pyi +++ b/stubs/grpcio/grpc/__init__.pyi @@ -4,8 +4,8 @@ import threading from collections.abc import Callable, Iterable, Iterator, Mapping, Sequence from concurrent import futures from types import ModuleType, TracebackType -from typing import Any, Generic, NoReturn, Protocol, TypeAlias, TypeVar, runtime_checkable, type_check_only -from typing_extensions import Self +from typing import Any, Generic, Protocol, TypeAlias, TypeVar, runtime_checkable, type_check_only +from typing_extensions import Never, Self from . import aio as aio @@ -433,9 +433,9 @@ class StreamStreamClientInterceptor(abc.ABC): class ServicerContext(RpcContext, metaclass=abc.ABCMeta): # misnamed parameter 'details', does not align with status.proto, where it is called 'message': @abc.abstractmethod - def abort(self, code: StatusCode, details: str) -> NoReturn: ... + def abort(self, code: StatusCode, details: str) -> Never: ... @abc.abstractmethod - def abort_with_status(self, status: Status) -> NoReturn: ... + def abort_with_status(self, status: Status) -> Never: ... # FIXME: The docs say "A map of strings to an iterable of bytes for each auth property". # Does that mean 'bytes' (which is iterable), or 'Iterable[bytes]'? diff --git a/stubs/grpcio/grpc/aio/__init__.pyi b/stubs/grpcio/grpc/aio/__init__.pyi index cb3c27ebaa58..13d347569d1b 100644 --- a/stubs/grpcio/grpc/aio/__init__.pyi +++ b/stubs/grpcio/grpc/aio/__init__.pyi @@ -15,8 +15,8 @@ from collections.abc import ( ) from concurrent import futures from types import TracebackType -from typing import Any, Final, Generic, Literal, NoReturn, TypeAlias, TypeVar, overload, type_check_only -from typing_extensions import Self +from typing import Any, Final, Generic, Literal, TypeAlias, TypeVar, overload, type_check_only +from typing_extensions import Never, Self from grpc import ( CallCredentials, @@ -270,7 +270,7 @@ class _DoneCallback(Generic[_TRequest, _TResponse]): class ServicerContext(Generic[_TRequest, _TResponse], metaclass=abc.ABCMeta): @abc.abstractmethod - async def abort(self, code: StatusCode, details: str = "", trailing_metadata: _MetadataType = ()) -> NoReturn: ... + async def abort(self, code: StatusCode, details: str = "", trailing_metadata: _MetadataType = ()) -> Never: ... @abc.abstractmethod async def read(self) -> _TRequest: ... @abc.abstractmethod diff --git a/stubs/gunicorn/gunicorn/reloader.pyi b/stubs/gunicorn/gunicorn/reloader.pyi index f6f0ff9cc92d..62371ed476e0 100644 --- a/stubs/gunicorn/gunicorn/reloader.pyi +++ b/stubs/gunicorn/gunicorn/reloader.pyi @@ -2,7 +2,8 @@ import sys import threading from collections.abc import Callable, Iterable from re import Pattern -from typing import Final, NoReturn, TypeAlias, TypedDict, type_check_only +from typing import Final, TypeAlias, TypedDict, type_check_only +from typing_extensions import Never COMPILED_EXT_RE: Final[Pattern[str]] @@ -33,9 +34,7 @@ if sys.platform == "linux": else: class InotifyReloader: - def __init__( - self, extra_files: Iterable[str] | None = None, callback: Callable[[str], None] | None = None - ) -> NoReturn: ... + def __init__(self, extra_files: Iterable[str] | None = None, callback: Callable[[str], None] | None = None) -> Never: ... _PreferredReloaderType: TypeAlias = type[InotifyReloader | Reloader] _ReloaderType: TypeAlias = InotifyReloader | Reloader # noqa: Y047 diff --git a/stubs/gunicorn/gunicorn/util.pyi b/stubs/gunicorn/gunicorn/util.pyi index 5bec0621ad15..bc71a50e5d2b 100644 --- a/stubs/gunicorn/gunicorn/util.pyi +++ b/stubs/gunicorn/gunicorn/util.pyi @@ -2,7 +2,8 @@ import types from _typeshed import FileDescriptorLike, FileDescriptorOrPath, StrOrBytesPath from inspect import _IntrospectableCallable, _ParameterKind from socket import socket -from typing import Any, Literal, NoReturn +from typing import Any, Literal +from typing_extensions import Never from urllib.parse import SplitResult from ._types import _AddressType, _WSGIAppType @@ -44,6 +45,6 @@ def has_fileno(obj: object) -> bool: ... def warn(msg: str) -> None: ... def make_fail_app(msg: str) -> _WSGIAppType: ... def split_request_uri(uri: str) -> SplitResult: ... -def reraise(tp: type[BaseException], value: BaseException | None, tb: types.TracebackType | None = None) -> NoReturn: ... +def reraise(tp: type[BaseException], value: BaseException | None, tb: types.TracebackType | None = None) -> Never: ... def bytes_to_str(b: bytes) -> str: ... def unquote_to_wsgi_str(string: str) -> str: ... diff --git a/stubs/gunicorn/gunicorn/workers/gasgi.pyi b/stubs/gunicorn/gunicorn/workers/gasgi.pyi index 368556ffab0c..564d6d375a9d 100644 --- a/stubs/gunicorn/gunicorn/workers/gasgi.pyi +++ b/stubs/gunicorn/gunicorn/workers/gasgi.pyi @@ -1,7 +1,7 @@ from _typeshed import Incomplete from asyncio.base_events import Server from asyncio.events import AbstractEventLoop -from typing import NoReturn +from typing_extensions import Never from gunicorn.asgi.lifespan import LifespanManager from gunicorn.config import Config @@ -28,5 +28,5 @@ class ASGIWorker(base.Worker): def handle_exit_signal(self) -> None: ... def handle_usr1_signal(self) -> None: ... def handle_winch_signal(self) -> None: ... - def handle_abort_signal(self) -> NoReturn: ... + def handle_abort_signal(self) -> Never: ... def run(self) -> None: ... diff --git a/stubs/hvac/hvac/utils.pyi b/stubs/hvac/hvac/utils.pyi index 0afd5dc74e86..ba48033a43d4 100644 --- a/stubs/hvac/hvac/utils.pyi +++ b/stubs/hvac/hvac/utils.pyi @@ -1,6 +1,6 @@ from collections.abc import Callable, Iterable, Mapping -from typing import Any, NoReturn, TypedDict, TypeVar, type_check_only -from typing_extensions import NotRequired +from typing import Any, TypedDict, TypeVar, type_check_only +from typing_extensions import Never, NotRequired @type_check_only class _DeprecateProperty(TypedDict): @@ -20,7 +20,7 @@ def raise_for_error( errors: Iterable[str] | str | None = None, text: str | None = None, json: object | None = None, -) -> NoReturn: ... +) -> Never: ... def aliased_parameter( name: str, *aliases: str, removed_in_version: str | None, position: int | None = None, raise_on_multiple: bool = True ) -> Callable[..., Any]: ... diff --git a/stubs/jmespath/jmespath/visitor.pyi b/stubs/jmespath/jmespath/visitor.pyi index 5789b39b018e..9c5da94684d5 100644 --- a/stubs/jmespath/jmespath/visitor.pyi +++ b/stubs/jmespath/jmespath/visitor.pyi @@ -1,6 +1,7 @@ from _typeshed import Unused from collections.abc import Callable, MutableMapping -from typing import Any, ClassVar, NoReturn, TypedDict, TypeVar, type_check_only +from typing import Any, ClassVar, TypedDict, TypeVar, type_check_only +from typing_extensions import Never from jmespath.functions import Functions @@ -25,7 +26,7 @@ class Visitor: # `args` and `kwargs` are passed to the appropriate `visit_*` method. # Its return value is returned from visit. def visit(self, node: _TreeNode, *args: Any, **kwargs: Any) -> Any: ... - def default_visit(self, node: _TreeNode, *args: Unused, **kwargs: Unused) -> NoReturn: ... + def default_visit(self, node: _TreeNode, *args: Unused, **kwargs: Unused) -> Never: ... @type_check_only class _TreeNode(TypedDict): @@ -37,7 +38,7 @@ class TreeInterpreter(Visitor): COMPARATOR_FUNC: ClassVar[dict[str, Callable[[Any, Any], Any]]] MAP_TYPE: ClassVar[Callable[[], MutableMapping[Any, Any]]] def __init__(self, options: Options | None = None) -> None: ... - def default_visit(self, node: _TreeNode, *args: Unused, **kwargs: Unused) -> NoReturn: ... + def default_visit(self, node: _TreeNode, *args: Unused, **kwargs: Unused) -> Never: ... def visit_subexpression(self, node: _TreeNode, value: Any) -> Any: ... def visit_field(self, node: _TreeNode, value: Any) -> Any: ... def visit_comparator(self, node: _TreeNode, value: Any) -> Any: ... diff --git a/stubs/mypy-extensions/mypy_extensions.pyi b/stubs/mypy-extensions/mypy_extensions.pyi index 75721bf1844f..f4f7fa6faf76 100644 --- a/stubs/mypy-extensions/mypy_extensions.pyi +++ b/stubs/mypy-extensions/mypy_extensions.pyi @@ -75,8 +75,7 @@ def KwArg(type: _T) -> _T: ... def KwArg() -> Any: ... # Return type that indicates a function does not return. -# Deprecated: Use typing.NoReturn instead. -@deprecated("Use typing.NoReturn or typing.Never instead") +@deprecated("Use typing.Never instead") class NoReturn: ... # This is consistent with implementation. Usage intends for this as diff --git a/stubs/netaddr/netaddr/ip/sets.pyi b/stubs/netaddr/netaddr/ip/sets.pyi index 720336f82bfa..d8656f69b548 100644 --- a/stubs/netaddr/netaddr/ip/sets.pyi +++ b/stubs/netaddr/netaddr/ip/sets.pyi @@ -1,6 +1,6 @@ from collections.abc import Iterable, Iterator -from typing import NoReturn, TypeAlias -from typing_extensions import Self +from typing import TypeAlias +from typing_extensions import Never, Self from netaddr.ip import IPAddress, IPNetwork, IPRange, _IPNetworkAddr @@ -10,7 +10,7 @@ class IPSet: __slots__ = ("_cidrs", "__weakref__") def __init__(self, iterable: _IPIterable | None = None, flags: int = 0) -> None: ... def compact(self) -> None: ... - def __hash__(self) -> NoReturn: ... + def __hash__(self) -> Never: ... def __contains__(self, ip: _IPNetworkAddr) -> bool: ... def __bool__(self) -> bool: ... def __iter__(self) -> Iterator[IPAddress]: ... diff --git a/stubs/networkx/networkx/algorithms/flow/utils.pyi b/stubs/networkx/networkx/algorithms/flow/utils.pyi index 456660c90f0d..5bc9995b51c9 100644 --- a/stubs/networkx/networkx/algorithms/flow/utils.pyi +++ b/stubs/networkx/networkx/algorithms/flow/utils.pyi @@ -1,6 +1,6 @@ from _typeshed import Incomplete -from typing import NoReturn, overload -from typing_extensions import deprecated +from typing import overload +from typing_extensions import Never, deprecated from networkx.classes.graph import Graph, _Node from networkx.classes.multigraph import MultiGraph @@ -29,7 +29,7 @@ class GlobalRelabelThreshold: @overload @deprecated("MultiGraph and MultiDiGraph not supported (yet).") -def build_residual_network(G: MultiGraph[_Node], capacity, *, backend: str | None = None, **backend_kwargs) -> NoReturn: ... +def build_residual_network(G: MultiGraph[_Node], capacity, *, backend: str | None = None, **backend_kwargs) -> Never: ... @overload def build_residual_network(G: Graph[_Node], capacity, *, backend: str | None = None, **backend_kwargs): ... diff --git a/stubs/networkx/networkx/algorithms/planarity.pyi b/stubs/networkx/networkx/algorithms/planarity.pyi index e731f2d953be..b351c8f2c49f 100644 --- a/stubs/networkx/networkx/algorithms/planarity.pyi +++ b/stubs/networkx/networkx/algorithms/planarity.pyi @@ -1,7 +1,7 @@ from _typeshed import Incomplete, Unused from collections.abc import Generator, Iterable, Mapping, MutableSet, Reversible from decimal import Decimal -from typing import NoReturn +from typing_extensions import Never from networkx.classes.digraph import DiGraph from networkx.classes.graph import Graph, _EdgeData, _EdgePlus, _Node, _NodeData @@ -107,8 +107,8 @@ class PlanarEmbedding(DiGraph[_Node]): self, v: _Node, w: _Node, mark_half_edges: MutableSet[tuple[_Node, _Node]] | None = None ) -> list[_Node]: ... # Overriden in __init__ to always raise - def add_edge(self, u_of_edge: _Node, v_of_edge: _Node, **attr: Unused) -> NoReturn: ... - def add_edges_from(self, ebunch_to_add: Iterable[_EdgePlus[_Node]], **attr: Unused) -> NoReturn: ... + def add_edge(self, u_of_edge: _Node, v_of_edge: _Node, **attr: Unused) -> Never: ... + def add_edges_from(self, ebunch_to_add: Iterable[_EdgePlus[_Node]], **attr: Unused) -> Never: ... def add_weighted_edges_from( self, ebunch_to_add: Iterable[tuple[_Node, _Node, float | Decimal | None]], weight: str = "weight", **attr: Unused - ) -> NoReturn: ... + ) -> Never: ... diff --git a/stubs/oauthlib/oauthlib/oauth2/rfc6749/errors.pyi b/stubs/oauthlib/oauthlib/oauth2/rfc6749/errors.pyi index c0b8901d0b60..d76eea7373a8 100644 --- a/stubs/oauthlib/oauthlib/oauth2/rfc6749/errors.pyi +++ b/stubs/oauthlib/oauthlib/oauth2/rfc6749/errors.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete -from typing import NoReturn +from typing_extensions import Never from oauthlib.common import Request @@ -147,4 +147,4 @@ class CustomOAuth2Error(OAuth2Error): request: Request | None = None, ) -> None: ... -def raise_from_error(error: str, params: dict[str, Incomplete] | None = None) -> NoReturn: ... +def raise_from_error(error: str, params: dict[str, Incomplete] | None = None) -> Never: ... diff --git a/stubs/openpyxl/openpyxl/chart/data_source.pyi b/stubs/openpyxl/openpyxl/chart/data_source.pyi index 78e269889e5a..fa6460de3ae9 100644 --- a/stubs/openpyxl/openpyxl/chart/data_source.pyi +++ b/stubs/openpyxl/openpyxl/chart/data_source.pyi @@ -1,5 +1,6 @@ from _typeshed import ConvertibleToInt, Incomplete, Unused -from typing import ClassVar, Literal, NoReturn, overload +from typing import ClassVar, Literal, overload +from typing_extensions import Never from openpyxl.descriptors import Strict from openpyxl.descriptors.base import Alias, Bool, Integer, String, Typed, _ConvertibleToBool @@ -109,7 +110,7 @@ class AxDataSource(Serialisable): @overload def __init__( self, numRef: None = None, numLit: None = None, strRef: None = None, strLit: None = None, multiLvlStrRef: None = None - ) -> NoReturn: ... + ) -> Never: ... @overload def __init__( self, diff --git a/stubs/openpyxl/openpyxl/descriptors/nested.pyi b/stubs/openpyxl/openpyxl/descriptors/nested.pyi index 44d98a3ebd2c..b2167ac7366d 100644 --- a/stubs/openpyxl/openpyxl/descriptors/nested.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/nested.pyi @@ -1,6 +1,7 @@ from _typeshed import ConvertibleToFloat, ConvertibleToInt, Unused from collections.abc import Iterable -from typing import Any, ClassVar, Literal, NoReturn, TypeAlias, overload +from typing import Any, ClassVar, Literal, TypeAlias, overload +from typing_extensions import Never from openpyxl.descriptors import Strict from openpyxl.descriptors.base import Bool, Convertible, Descriptor, Float, Integer, MinMax, NoneSet, Set, String @@ -153,7 +154,7 @@ class NestedText(NestedValue[_T, _N]): def __set__(self: NestedText[int, Literal[False]], instance: Serialisable | Strict, value: ConvertibleToInt) -> None: ... # If expected type (_T) is not str, it's impossible to use an Element as the value @overload - def __set__(self: NestedText[_T, Literal[True]], instance: Serialisable | Strict, value: _HasTagAndGet[Any]) -> NoReturn: ... + def __set__(self: NestedText[_T, Literal[True]], instance: Serialisable | Strict, value: _HasTagAndGet[Any]) -> Never: ... # Anything else @overload def __set__(self: NestedText[_T, Literal[True]], instance: Serialisable | Strict, value: _T | int | Any | None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi index b9e62a294ef3..4ea4e6bae42b 100644 --- a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi @@ -27,7 +27,7 @@ class Serialisable(metaclass=MetaSerialisable): idx_base: int # Needs overrides in many sub-classes. But a lot of subclasses are instantiated without overriding it, so can't be abstract # Subclasses "overrides" this property with a ClassVar, and Serialisable is too widely used, - # so it can't be typed as NoReturn either without introducing many false-positives. + # so it can't be typed as Never either without introducing many false-positives. @property def tagname(self) -> str: ... namespace: ClassVar[str | None] diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 82244ad9daf1..be41858dc291 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -1,8 +1,8 @@ from _typeshed import ConvertibleToInt, Incomplete from collections.abc import Generator, Iterable, Iterator from types import GeneratorType -from typing import Any, Final, Literal, NoReturn, overload -from typing_extensions import deprecated +from typing import Any, Final, Literal, overload +from typing_extensions import Never, deprecated from openpyxl import _Decodable, _VisibilityType from openpyxl.cell import _AnyCellValue, _CellGetValue, _CellOrMergedCell, _CellSetValue @@ -245,7 +245,7 @@ class Worksheet(_WorkbookChild): # Will always raise: TypeError: 'set' object is not subscriptable @property @deprecated("Use ws.merged_cells.ranges") - def merged_cell_ranges(self) -> NoReturn: ... + def merged_cell_ranges(self) -> Never: ... def unmerge_cells( self, range_string: str | None = None, diff --git a/stubs/paramiko/paramiko/client.pyi b/stubs/paramiko/paramiko/client.pyi index e28309b2ff5b..b020f823fa83 100644 --- a/stubs/paramiko/paramiko/client.pyi +++ b/stubs/paramiko/paramiko/client.pyi @@ -1,6 +1,7 @@ from _typeshed import FileDescriptorOrPath from collections.abc import Iterable, Mapping -from typing import NoReturn, Protocol, type_check_only +from typing import Protocol, type_check_only +from typing_extensions import Never from paramiko.auth_strategy import AuthStrategy from paramiko.channel import Channel, ChannelFile, ChannelStderrFile, ChannelStdinFile @@ -79,7 +80,7 @@ class AutoAddPolicy(MissingHostKeyPolicy): def missing_host_key(self, client: SSHClient, hostname: str, key: PKey) -> None: ... class RejectPolicy(MissingHostKeyPolicy): - def missing_host_key(self, client: SSHClient, hostname: str, key: PKey) -> NoReturn: ... + def missing_host_key(self, client: SSHClient, hostname: str, key: PKey) -> Never: ... class WarningPolicy(MissingHostKeyPolicy): def missing_host_key(self, client: SSHClient, hostname: str, key: PKey) -> None: ... diff --git a/stubs/parsimonious/parsimonious/grammar.pyi b/stubs/parsimonious/parsimonious/grammar.pyi index efe971f205af..7871c183072c 100644 --- a/stubs/parsimonious/parsimonious/grammar.pyi +++ b/stubs/parsimonious/parsimonious/grammar.pyi @@ -2,7 +2,8 @@ import collections.abc from _typeshed import Incomplete from collections import OrderedDict from collections.abc import Callable, Mapping -from typing import Any, NoReturn +from typing import Any +from typing_extensions import Never from parsimonious.expressions import _CALLABLE_TYPE, Expression, Literal, Lookahead, OneOf, Regex, Sequence, TokenMatcher from parsimonious.nodes import Node, NodeVisitor @@ -55,6 +56,6 @@ class TokenRuleVisitor(RuleVisitor): def visit_spaceless_literal( self, spaceless_literal: Node, visited_children: collections.abc.Sequence[Any] ) -> TokenMatcher: ... - def visit_regex(self, node: Node, regex: collections.abc.Sequence[Any]) -> NoReturn: ... + def visit_regex(self, node: Node, regex: collections.abc.Sequence[Any]) -> Never: ... rule_grammar: Grammar diff --git a/stubs/pony/pony/orm/core.pyi b/stubs/pony/pony/orm/core.pyi index 5bee204805bc..d05d3104f456 100644 --- a/stubs/pony/pony/orm/core.pyi +++ b/stubs/pony/pony/orm/core.pyi @@ -6,8 +6,8 @@ from _typeshed import Incomplete from collections import defaultdict from collections.abc import Callable, Generator from logging import Logger -from typing import Literal, NoReturn, TypeAlias, TypeVar -from typing_extensions import Self, deprecated +from typing import Literal, TypeAlias, TypeVar +from typing_extensions import Never, Self, deprecated import pony as pony from pony.orm.asttranslation import TranslationError as TranslationError @@ -296,7 +296,7 @@ class SQLDebuggingContextManager: sql_debugging: SQLDebuggingContextManager -def throw_db_session_is_over(action: str, obj: Entity, attr: Attribute | None = None) -> NoReturn: ... +def throw_db_session_is_over(action: str, obj: Entity, attr: Attribute | None = None) -> Never: ... @deprecated("@with_transaction decorator is deprecated, use @db_session decorator instead.") def with_transaction(*args, **kwargs): ... @@ -762,7 +762,7 @@ del_statuses: set[str] created_or_deleted_statuses: set[str] saved_statuses: set[str] -def throw_object_was_deleted(obj: Entity) -> NoReturn: ... +def throw_object_was_deleted(obj: Entity) -> Never: ... def unpickle_entity(d): ... def safe_repr(obj: Entity) -> str: ... def make_proxy(obj: Entity) -> EntityProxy: ... @@ -872,7 +872,7 @@ class QueryResultIterator: __next__ = next def __length_hint__(self) -> int: ... -def make_query_result_method_error_stub(name: str, title: str | None = None) -> Callable[..., NoReturn]: ... +def make_query_result_method_error_stub(name: str, title: str | None = None) -> Callable[..., Never]: ... class QueryResult: __slots__ = ("_query", "_limit", "_offset", "_items", "_expr_type", "_col_names") diff --git a/stubs/pony/pony/orm/sqltranslation.pyi b/stubs/pony/pony/orm/sqltranslation.pyi index 816405de10c2..98b5a66b0bc1 100644 --- a/stubs/pony/pony/orm/sqltranslation.pyi +++ b/stubs/pony/pony/orm/sqltranslation.pyi @@ -8,8 +8,8 @@ from collections.abc import Generator, Iterable, Sequence from datetime import date, datetime, time, timedelta from decimal import Decimal from random import random -from typing import Any, ClassVar, NoReturn -from typing_extensions import Self +from typing import Any, ClassVar +from typing_extensions import Never, Self from pony.orm import core from pony.orm.asttranslation import ASTTranslator @@ -130,12 +130,12 @@ class SQLTranslator(ASTTranslator): def postAdd(translator, node: ast.Add): ... def postSub(translator, node: ast.Sub): ... def postMult(translator, node: ast.Mult): ... - def postMatMult(translator, node: ast.MatMult) -> NoReturn: ... + def postMatMult(translator, node: ast.MatMult) -> Never: ... def postDiv(translator, node: ast.Div): ... def postFloorDiv(translator, node: ast.FloorDiv): ... def postMod(translator, node: ast.Mod): ... - def postLShift(translator, node: ast.LShift) -> NoReturn: ... - def postRShift(translator, node: ast.RShift) -> NoReturn: ... + def postLShift(translator, node: ast.LShift) -> Never: ... + def postRShift(translator, node: ast.RShift) -> Never: ... def postPow(translator, node: ast.Pow): ... def postUSub(translator, node: ast.USub): ... def postAttribute(translator, node: ast.Attribute): ... @@ -269,8 +269,8 @@ class RawSQLMonad(Monad): typeerror_re_1: re.Pattern[str] typeerror_re_2: re.Pattern[str] -def reraise_improved_typeerror(exc: Exception, func_name: str | tuple[str, ...], orig_func_name: str) -> NoReturn: ... -def raise_forgot_parentheses(monad: Monad) -> NoReturn: ... +def reraise_improved_typeerror(exc: Exception, func_name: str | tuple[str, ...], orig_func_name: str) -> Never: ... +def raise_forgot_parentheses(monad: Monad) -> Never: ... class MethodMonad(Monad): def __init__(monad, parent, attrname) -> None: ... diff --git a/stubs/pony/pony/utils/utils.pyi b/stubs/pony/pony/utils/utils.pyi index 4817e48c40ab..ffe7c493afff 100644 --- a/stubs/pony/pony/utils/utils.pyi +++ b/stubs/pony/pony/utils/utils.pyi @@ -6,7 +6,8 @@ from collections.abc import Callable, Iterable from datetime import datetime from threading import local as _localbase from types import CodeType, FunctionType, TracebackType -from typing import Any, NoReturn, overload +from typing import Any, overload +from typing_extensions import Never localbase = _localbase @@ -22,9 +23,9 @@ cut_traceback_depth: int @overload def reraise(exc_type: Unused, exc: None, tb: TracebackType | None) -> None: ... @overload -def reraise(exc_type: Unused, exc: BaseException, tb: TracebackType | None) -> NoReturn: ... +def reraise(exc_type: Unused, exc: BaseException, tb: TracebackType | None) -> Never: ... -def throw(exc_type: Exception | Callable[..., Exception], *args, **kwargs) -> NoReturn: ... +def throw(exc_type: Exception | Callable[..., Exception], *args, **kwargs) -> Never: ... def truncate_repr(s: object, max_len: int = 100) -> str: ... codeobjects: dict[int, CodeType] @@ -34,7 +35,7 @@ def get_codeobject_id(codeobject: CodeType) -> int: ... lambda_args_cache: dict[int | ast.Lambda, list[str]] def get_lambda_args(func: FunctionType | ast.Lambda) -> list[str]: ... -def error_method(*args: Unused, **kwargs: Unused) -> NoReturn: ... +def error_method(*args: Unused, **kwargs: Unused) -> Never: ... def is_ident(string: str) -> bool: ... def split_name(name: str) -> list[str]: ... def uppercase_name(name: str) -> str: ... diff --git a/stubs/psycopg2/psycopg2/_psycopg.pyi b/stubs/psycopg2/psycopg2/_psycopg.pyi index c40c83048a6e..91e51a53a012 100644 --- a/stubs/psycopg2/psycopg2/_psycopg.pyi +++ b/stubs/psycopg2/psycopg2/_psycopg.pyi @@ -2,8 +2,8 @@ import datetime as dt from _typeshed import ConvertibleToInt, Incomplete, SupportsRead, SupportsReadline, SupportsWrite, Unused from collections.abc import Callable, Iterable, Mapping, Sequence from types import TracebackType -from typing import Any, Literal, NoReturn, Protocol, TextIO, TypeAlias, TypeVar, overload, type_check_only -from typing_extensions import Self, disjoint_base +from typing import Any, Literal, Protocol, TextIO, TypeAlias, TypeVar, overload, type_check_only +from typing_extensions import Never, Self, disjoint_base from psycopg2.extras import ReplicationCursor as extras_ReplicationCursor from psycopg2.sql import Composable @@ -153,7 +153,7 @@ class cursor: def fetchmany(self, size: int | None = None) -> list[tuple[Any, ...]]: ... def fetchone(self) -> tuple[Any, ...] | None: ... def mogrify(self, query: str | bytes | Composable, vars: _Vars | None = None) -> bytes: ... - def nextset(self) -> NoReturn: ... # not supported + def nextset(self) -> Never: ... # not supported def scroll(self, value: int, mode: Literal["absolute", "relative"] = "relative") -> None: ... def setinputsizes(self, sizes: Unused) -> None: ... def setoutputsize(self, size: int, column: int = ..., /) -> None: ... diff --git a/stubs/pyasn1/pyasn1/type/base.pyi b/stubs/pyasn1/pyasn1/type/base.pyi index ab443c197304..0e2da760e4e4 100644 --- a/stubs/pyasn1/pyasn1/type/base.pyi +++ b/stubs/pyasn1/pyasn1/type/base.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete, Unused -from typing import NoReturn, final, type_check_only +from typing import final, type_check_only +from typing_extensions import Never from pyasn1.type import constraint, namedtype from pyasn1.type.tag import TagSet @@ -42,7 +43,7 @@ class NoValue: def __getattr__(self, attr) -> None: ... # def __new__..getPlug..plug @type_check_only - def plug(self, *args: Unused, **kw: Unused) -> NoReturn: ... + def plug(self, *args: Unused, **kw: Unused) -> Never: ... # Magic methods assigned dynamically, priority from right to left: plug < str < int < list < dict __abs__ = int.__abs__ __add__ = list.__add__ diff --git a/stubs/pyflakes/pyflakes/api.pyi b/stubs/pyflakes/pyflakes/api.pyi index b2f910227c5a..c3e9477ab53e 100644 --- a/stubs/pyflakes/pyflakes/api.pyi +++ b/stubs/pyflakes/pyflakes/api.pyi @@ -1,7 +1,8 @@ from _typeshed import GenericPath from collections.abc import Iterable, Iterator, Sequence from re import Pattern -from typing import Final, NoReturn +from typing import Final +from typing_extensions import Never from pyflakes.reporter import Reporter @@ -14,4 +15,4 @@ def checkPath(filename: str, reporter: Reporter | None = None) -> int: ... def isPythonFile(filename: str) -> bool: ... def iterSourceCode(paths: Iterable[GenericPath[str]]) -> Iterator[GenericPath[str]]: ... def checkRecursive(paths: Iterable[GenericPath[str]], reporter: Reporter) -> int: ... -def main(prog: str | None = None, args: Sequence[str] | None = None) -> NoReturn: ... +def main(prog: str | None = None, args: Sequence[str] | None = None) -> Never: ... diff --git a/stubs/pyjks/jks/jks.pyi b/stubs/pyjks/jks/jks.pyi index 7d3bb7d7e0d4..d6c22d6e2998 100644 --- a/stubs/pyjks/jks/jks.pyi +++ b/stubs/pyjks/jks/jks.pyi @@ -1,7 +1,7 @@ from _typeshed import SupportsKeysAndGetItem, Unused from collections.abc import Iterable -from typing import Final, Literal, NoReturn, TypeAlias, overload -from typing_extensions import Self +from typing import Final, Literal, TypeAlias, overload +from typing_extensions import Never, Self from .util import AbstractKeystore, AbstractKeystoreEntry @@ -107,11 +107,9 @@ class SecretKeyEntry(AbstractKeystoreEntry): # Not implemented by pyjks @classmethod - def new( # type: ignore[override] - cls, alias: str, sealed_obj: bool, algorithm: str, key: bytes, key_size: int - ) -> NoReturn: ... + def new(cls, alias: str, sealed_obj: bool, algorithm: str, key: bytes, key_size: int) -> Never: ... # type: ignore[override] # Not implemented by pyjks - def encrypt(self, key_password: str) -> NoReturn: ... + def encrypt(self, key_password: str) -> Never: ... class KeyStore(AbstractKeystore): entries: dict[str, TrustedCertEntry | PrivateKeyEntry | SecretKeyEntry] # type: ignore[assignment] diff --git a/stubs/python-xlib/Xlib/protocol/request.pyi b/stubs/python-xlib/Xlib/protocol/request.pyi index 6cc1da72a1e8..1095bbad5cff 100644 --- a/stubs/python-xlib/Xlib/protocol/request.pyi +++ b/stubs/python-xlib/Xlib/protocol/request.pyi @@ -1,4 +1,5 @@ -from typing import Final, NoReturn +from typing import Final +from typing_extensions import Never from Xlib import display from Xlib.protocol import rq @@ -55,7 +56,7 @@ class ListFonts(rq.ReplyRequest): ... class ListFontsWithInfo(rq.ReplyRequest): def __init__(self, display: display.Display, defer: bool = False, *args: object, **keys: object) -> None: ... - def __getattr__(self, attr: object) -> NoReturn: ... + def __getattr__(self, attr: object) -> Never: ... def __getitem__(self, item: str) -> object: ... def __len__(self) -> int: ... diff --git a/stubs/pywin32/_win32typing.pyi b/stubs/pywin32/_win32typing.pyi index b1055116e6b8..4e61a1565645 100644 --- a/stubs/pywin32/_win32typing.pyi +++ b/stubs/pywin32/_win32typing.pyi @@ -1,7 +1,7 @@ # Not available at runtime. Contains type definitions that are otherwise not exposed and not part of a specific module. from _typeshed import Incomplete, Unused from collections.abc import Iterable, Sequence -from typing import Literal, NoReturn, SupportsIndex, TypeAlias, TypedDict, final, overload, type_check_only +from typing import Literal, SupportsIndex, TypeAlias, TypedDict, final, overload, type_check_only from typing_extensions import Never, Required, Self, deprecated, disjoint_base from win32.lib.pywintypes import TimeType @@ -1038,7 +1038,7 @@ class PyGetSignerCertificate: ... @disjoint_base class PyHANDLE: # type: ignore[type-var] - def __new__(cls, *args: Never) -> NoReturn: ... + def __new__(cls, *args: Never) -> Never: ... @property def handle(self) -> int: ... def Close(self) -> None: ... @@ -3807,7 +3807,7 @@ class PyIFolderView: def GetFolder(self, riid: PyIID | None, /): ... def Item(self, iItemIndex: int, /): ... def ItemCount(self, uFlags: int, /): ... - def Items(self) -> NoReturn: ... # Not Implemented + def Items(self) -> Never: ... # Not Implemented def GetSelectionMarkedItem(self): ... def GetFocusedItem(self): ... def GetItemPosition(self, pidl: PyIDL | None, /): ... @@ -3815,7 +3815,7 @@ class PyIFolderView: def GetDefaultSpacing(self): ... def GetAutoArrange(self): ... def SelectItem(self, iItem: int, dwFlags: int, /): ... - def SelectAndPositionItems(self) -> NoReturn: ... # Not Implemented + def SelectAndPositionItems(self) -> Never: ... # Not Implemented def SelectAndPositionItem(self, apidl: PyIDL | None, pt: tuple[int, int], dwFlags: int, /): ... class PyIIdentityName: ... diff --git a/stubs/pywin32/win32/win32console.pyi b/stubs/pywin32/win32/win32console.pyi index ca6c0661ba0c..e007253a2637 100644 --- a/stubs/pywin32/win32/win32console.pyi +++ b/stubs/pywin32/win32/win32console.pyi @@ -1,4 +1,5 @@ -from typing import Literal, NoReturn, overload +from typing import Literal, overload +from typing_extensions import Never import _win32typing from win32.lib.pywintypes import error as error @@ -25,7 +26,7 @@ def SetConsoleTitle(ConsoleTitle: str) -> None: ... def GetConsoleTitle(): ... @overload -def GenerateConsoleCtrlEvent(CtrlEvent: Literal[1], ProcessGroupId: Literal[0] = 0) -> NoReturn: ... +def GenerateConsoleCtrlEvent(CtrlEvent: Literal[1], ProcessGroupId: Literal[0] = 0) -> Never: ... @overload def GenerateConsoleCtrlEvent(CtrlEvent: Literal[0, 1], ProcessGroupId: int) -> None: ... diff --git a/stubs/pywin32/win32com/client/gencache.pyi b/stubs/pywin32/win32com/client/gencache.pyi index e12756df8887..9f72ce3009aa 100644 --- a/stubs/pywin32/win32com/client/gencache.pyi +++ b/stubs/pywin32/win32com/client/gencache.pyi @@ -2,7 +2,8 @@ from _typeshed import Incomplete, Unused from collections.abc import Generator from contextlib import contextmanager from types import ModuleType -from typing import Literal, NoReturn +from typing import Literal +from typing_extensions import Never from win32.lib.pywintypes import IIDType from win32com.client import dynamic @@ -60,4 +61,4 @@ def EnsureDispatch( def AddModuleToCache(typelibclsid, lcid, major, minor, verbose: Unused = 1, bFlushNow: bool | Literal[0, 1] = ...) -> None: ... def GetGeneratedInfos() -> list[tuple[Incomplete, Incomplete, Incomplete, Incomplete]]: ... def Rebuild(verbose: bool | Literal[0, 1] = 1) -> None: ... -def usage() -> NoReturn: ... +def usage() -> Never: ... diff --git a/stubs/pywin32/win32comext/axscript/client/framework.pyi b/stubs/pywin32/win32comext/axscript/client/framework.pyi index 270eddc67a58..19de3698f06a 100644 --- a/stubs/pywin32/win32comext/axscript/client/framework.pyi +++ b/stubs/pywin32/win32comext/axscript/client/framework.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete -from typing import NoReturn +from typing_extensions import Never def RemoveCR(text): ... @@ -20,7 +20,7 @@ class SafeOutput: def MakeValidSysOuts() -> None: ... def trace(*args) -> None: ... -def RaiseAssert(scode, desc) -> NoReturn: ... +def RaiseAssert(scode, desc) -> Never: ... class AXScriptCodeBlock: name: Incomplete @@ -143,7 +143,7 @@ class COMScript: def CompileInScriptedSection(self, codeBlock: AXScriptCodeBlock, type, realCode=None): ... def ExecInScriptedSection(self, codeBlock: AXScriptCodeBlock, globals, locals=None): ... def EvalInScriptedSection(self, codeBlock, globals, locals=None): ... - def HandleException(self, codeBlock: AXScriptCodeBlock | None) -> NoReturn: ... + def HandleException(self, codeBlock: AXScriptCodeBlock | None) -> Never: ... def BeginScriptedSection(self) -> None: ... def EndScriptedSection(self) -> None: ... def DisableInterrupts(self) -> None: ... diff --git a/stubs/reportlab/reportlab/graphics/shapes.pyi b/stubs/reportlab/reportlab/graphics/shapes.pyi index 253538227f0f..123a551ddc2e 100644 --- a/stubs/reportlab/reportlab/graphics/shapes.pyi +++ b/stubs/reportlab/reportlab/graphics/shapes.pyi @@ -1,8 +1,8 @@ from _typeshed import Incomplete, SupportsItems from abc import abstractmethod from collections.abc import Iterable, Sequence -from typing import Any, Final, Literal, NoReturn, TypeAlias, TypedDict, type_check_only -from typing_extensions import Self, Unpack +from typing import Any, Final, Literal, TypeAlias, TypedDict, type_check_only +from typing_extensions import Never, Self, Unpack from reportlab.lib.colors import Color from reportlab.lib.validators import NoneOr, Validator @@ -197,7 +197,7 @@ class Line(LineShape): y2: float def __init__(self, x1: float, y1: float, x2: float, y2: float, **kw: Unpack[_LineShapeKwArgs]) -> None: ... # NOTE: For some reason Line doesn't implement copy - def copy(self) -> NoReturn: ... + def copy(self) -> Never: ... def getBounds(self) -> tuple[float, float, float, float]: ... class SolidShape(LineShape): diff --git a/stubs/reportlab/reportlab/graphics/widgets/grids.pyi b/stubs/reportlab/reportlab/graphics/widgets/grids.pyi index 3a3a249301e6..e098fe78fc84 100644 --- a/stubs/reportlab/reportlab/graphics/widgets/grids.pyi +++ b/stubs/reportlab/reportlab/graphics/widgets/grids.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete -from typing import Final, NoReturn +from typing import Final +from typing_extensions import Never from reportlab.graphics.shapes import LineShape from reportlab.graphics.widgetbase import Widget @@ -73,4 +74,4 @@ class ShadedPolygon(Widget, LineShape): def __init__(self, **kw) -> None: ... def draw(self): ... # NOTE: widgets don't implement this, only actual shapes - def copy(self) -> NoReturn: ... + def copy(self) -> Never: ... diff --git a/stubs/reportlab/reportlab/lib/rl_safe_eval.pyi b/stubs/reportlab/reportlab/lib/rl_safe_eval.pyi index be8a719e2661..e70536e3ee0f 100644 --- a/stubs/reportlab/reportlab/lib/rl_safe_eval.pyi +++ b/stubs/reportlab/reportlab/lib/rl_safe_eval.pyi @@ -4,8 +4,7 @@ import re import time from _typeshed import Incomplete from collections.abc import Generator -from typing import NoReturn -from typing_extensions import Self +from typing_extensions import Never, Self eval_debug: int strTypes: tuple[type[bytes], type[str]] @@ -27,7 +26,7 @@ class UntrustedAstTransformer(ast.NodeTransformer): def __init__(self, names_seen=None, nameIsAllowed=None) -> None: ... @property def tmpName(self) -> str: ... - def error(self, node, msg) -> NoReturn: ... + def error(self, node, msg) -> Never: ... def guard_iter(self, node): ... def is_starred(self, ob): ... def gen_unpack_spec(self, tpl) -> ast.Dict: ... @@ -60,7 +59,7 @@ class UntrustedAstTransformer(ast.NodeTransformer): visit_For = guard_iter visit_comprehension = guard_iter def generic_visit(self, node: ast.AST) -> None: ... # type: ignore[override] - def not_allowed(self, node: ast.AST) -> NoReturn: ... + def not_allowed(self, node: ast.AST) -> Never: ... def visit_children(self, node) -> ast.AST: ... def visit(self, node): ... visit_Ellipsis = not_allowed diff --git a/stubs/reportlab/reportlab/platypus/flowables.pyi b/stubs/reportlab/reportlab/platypus/flowables.pyi index b3a433df28f0..1cb252411155 100644 --- a/stubs/reportlab/reportlab/platypus/flowables.pyi +++ b/stubs/reportlab/reportlab/platypus/flowables.pyi @@ -1,7 +1,7 @@ from _typeshed import Incomplete, SupportsRead, Unused from collections.abc import Callable, Iterable, Sequence -from typing import Any, Literal, NoReturn, Protocol, TypeAlias, type_check_only -from typing_extensions import Self +from typing import Any, Literal, Protocol, TypeAlias, type_check_only +from typing_extensions import Never, Self from reportlab.lib.colors import Color from reportlab.lib.styles import ListStyle, ParagraphStyle, PropertySet @@ -219,10 +219,10 @@ class ParagraphAndImage(Flowable): def draw(self) -> None: ... class FailOnWrap(NullDraw): - def wrap(self, aW: float, aH: float) -> NoReturn: ... + def wrap(self, aW: float, aH: float) -> Never: ... class FailOnDraw(Flowable): - def draw(self) -> NoReturn: ... + def draw(self) -> Never: ... class HRFlowable(Flowable): width: float | str # type: ignore[assignment] diff --git a/stubs/seaborn/seaborn/_core/plot.pyi b/stubs/seaborn/seaborn/_core/plot.pyi index d5574f604fc8..7f8bf81069c6 100644 --- a/stubs/seaborn/seaborn/_core/plot.pyi +++ b/stubs/seaborn/seaborn/_core/plot.pyi @@ -3,7 +3,7 @@ import os from _typeshed import Incomplete, SupportsKeysAndGetItem from collections.abc import Callable, Generator from contextlib import contextmanager -from typing import IO, Any, Literal, NoReturn, TypedDict, TypeVar +from typing import IO, Any, Literal, TypedDict, TypeVar from typing_extensions import Never, Self import matplotlib as mpl @@ -72,7 +72,7 @@ class Plot: __signature__: inspect.Signature config: PlotConfig def __init__(self, *args: DataSource | VariableSpec, data: DataSource = None, **variables: VariableSpec) -> None: ... - def __add__(self, other: Never) -> NoReturn: ... + def __add__(self, other: Never) -> Never: ... def on(self, target: Axes | SubFigure | Figure) -> Plot: ... def add( self, diff --git a/stubs/setuptools/setuptools/_distutils/compilers/C/cygwin.pyi b/stubs/setuptools/setuptools/_distutils/compilers/C/cygwin.pyi index 814209f3d25c..14fd3bdc641c 100644 --- a/stubs/setuptools/setuptools/_distutils/compilers/C/cygwin.pyi +++ b/stubs/setuptools/setuptools/_distutils/compilers/C/cygwin.pyi @@ -1,7 +1,7 @@ from _typeshed import StrPath from collections.abc import Callable, Iterable from shlex import _ShlexInstream -from typing import ClassVar, Final, Literal, NoReturn +from typing import ClassVar, Final, Literal from typing_extensions import Never, deprecated from ...version import LooseVersion @@ -56,7 +56,7 @@ class Compiler(unix.Compiler): class MinGW32Compiler(Compiler): compiler_type: ClassVar[str] def __init__(self, verbose: bool = False, force: bool = False) -> None: ... - def runtime_library_dir_option(self, dir: str) -> NoReturn: ... + def runtime_library_dir_option(self, dir: str) -> Never: ... CONFIG_H_OK: Final = "ok" CONFIG_H_NOTOK: Final = "not ok" diff --git a/stubs/setuptools/setuptools/build_meta.pyi b/stubs/setuptools/setuptools/build_meta.pyi index 45a733d1128d..08f3128cda37 100644 --- a/stubs/setuptools/setuptools/build_meta.pyi +++ b/stubs/setuptools/setuptools/build_meta.pyi @@ -1,7 +1,8 @@ from _typeshed import Incomplete, StrPath from collections.abc import Mapping from contextlib import _GeneratorContextManager -from typing import NoReturn, TypeAlias +from typing import TypeAlias +from typing_extensions import Never from . import dist @@ -25,7 +26,7 @@ class SetupRequirementsError(BaseException): def __init__(self, specifiers) -> None: ... class Distribution(dist.Distribution): - def fetch_build_eggs(self, specifiers) -> NoReturn: ... + def fetch_build_eggs(self, specifiers) -> Never: ... @classmethod def patch(cls) -> _GeneratorContextManager[None]: ... diff --git a/stubs/setuptools/setuptools/command/test.pyi b/stubs/setuptools/setuptools/command/test.pyi index 2f7b41e5d4d5..536179f18f09 100644 --- a/stubs/setuptools/setuptools/command/test.pyi +++ b/stubs/setuptools/setuptools/command/test.pyi @@ -1,5 +1,5 @@ -from typing import ClassVar, NoReturn -from typing_extensions import deprecated +from typing import ClassVar +from typing_extensions import Never, deprecated from .. import Command @@ -12,4 +12,4 @@ class test(Command): user_options: ClassVar[list[tuple[str, str, str]]] def initialize_options(self) -> None: ... def finalize_options(self) -> None: ... - def run(self) -> NoReturn: ... + def run(self) -> Never: ... diff --git a/stubs/shapely/shapely/geometry/base.pyi b/stubs/shapely/shapely/geometry/base.pyi index a39ed80b3b89..e4138123166b 100644 --- a/stubs/shapely/shapely/geometry/base.pyi +++ b/stubs/shapely/shapely/geometry/base.pyi @@ -1,7 +1,7 @@ from array import array from collections.abc import Iterator -from typing import Any, Generic, Literal, NoReturn, overload -from typing_extensions import Self, TypeVar, deprecated +from typing import Any, Generic, Literal, overload +from typing_extensions import Never, Self, TypeVar, deprecated import numpy as np from numpy.typing import NDArray @@ -301,7 +301,7 @@ _GeoT_co = TypeVar("_GeoT_co", bound=Geometry, default=BaseGeometry, covariant=T class BaseMultipartGeometry(BaseGeometry, Generic[_GeoT_co]): __slots__: list[str] = [] @property - def coords(self) -> NoReturn: ... + def coords(self) -> Never: ... @property def geoms(self) -> GeometrySequence[Self]: ... def svg(self, scale_factor: float = 1.0, color: str | None = None) -> str: ... # type: ignore[override] diff --git a/stubs/shapely/shapely/geometry/polygon.pyi b/stubs/shapely/shapely/geometry/polygon.pyi index c64dd7796dcf..e52857a88946 100644 --- a/stubs/shapely/shapely/geometry/polygon.pyi +++ b/stubs/shapely/shapely/geometry/polygon.pyi @@ -1,6 +1,6 @@ from collections.abc import Collection -from typing import Literal, NoReturn, TypeAlias, overload -from typing_extensions import Self +from typing import Literal, TypeAlias, overload +from typing_extensions import Never, Self from .base import BaseGeometry from .linestring import LineString, _ConvertibleToLineString @@ -39,7 +39,7 @@ class Polygon(BaseGeometry): @property def interiors(self) -> list[LinearRing] | InteriorRingSequence: ... @property - def coords(self) -> NoReturn: ... + def coords(self) -> Never: ... def svg(self, scale_factor: float = 1.0, fill_color: str | None = None, opacity: float | None = None) -> str: ... # type: ignore[override] @classmethod def from_bounds(cls, xmin: float, ymin: float, xmax: float, ymax: float) -> Self: ... diff --git a/stubs/simplejson/simplejson/encoder.pyi b/stubs/simplejson/simplejson/encoder.pyi index eebf18a2503e..9f82016fe917 100644 --- a/stubs/simplejson/simplejson/encoder.pyi +++ b/stubs/simplejson/simplejson/encoder.pyi @@ -1,7 +1,8 @@ import re from _typeshed import SupportsRichComparison from collections.abc import Callable, Iterator -from typing import Any, NoReturn +from typing import Any +from typing_extensions import Never ESCAPE: re.Pattern[str] ESCAPE_ASCII: re.Pattern[str] @@ -51,7 +52,7 @@ class JSONEncoder: iterable_as_array: bool = False, ) -> None: ... def encode(self, o: Any) -> str: ... - def default(self, o: Any) -> NoReturn: ... + def default(self, o: Any) -> Never: ... def iterencode(self, o: Any) -> Iterator[str]: ... class JSONEncoderForHTML(JSONEncoder): ... diff --git a/stubs/six/six/__init__.pyi b/stubs/six/six/__init__.pyi index ef83da2f5587..b137922b7482 100644 --- a/stubs/six/six/__init__.pyi +++ b/stubs/six/six/__init__.pyi @@ -8,7 +8,8 @@ from functools import wraps as wraps from importlib.util import spec_from_loader as spec_from_loader from io import BytesIO as BytesIO, StringIO as StringIO from re import Pattern -from typing import Any, AnyStr, Literal, NoReturn, TypeVar, overload +from typing import Any, AnyStr, Literal, TypeVar, overload +from typing_extensions import Never from six import moves as moves @@ -76,8 +77,8 @@ def assertNotRegex(self: unittest.TestCase, text: AnyStr, expected_regex: AnyStr exec_ = exec -def reraise(tp: type[BaseException] | None, value: BaseException | None, tb: types.TracebackType | None = None) -> NoReturn: ... -def raise_from(value: BaseException | type[BaseException], from_value: BaseException | None) -> NoReturn: ... +def reraise(tp: type[BaseException] | None, value: BaseException | None, tb: types.TracebackType | None = None) -> Never: ... +def raise_from(value: BaseException | type[BaseException], from_value: BaseException | None) -> Never: ... print_ = print diff --git a/stubs/tqdm/tqdm/asyncio.pyi b/stubs/tqdm/tqdm/asyncio.pyi index 0d5605b31f0a..b665fcfeb728 100644 --- a/stubs/tqdm/tqdm/asyncio.pyi +++ b/stubs/tqdm/tqdm/asyncio.pyi @@ -1,8 +1,8 @@ from _typeshed import SupportsWrite from asyncio import Future from collections.abc import AsyncIterator, Awaitable, Callable, Iterable, Iterator, Mapping -from typing import NoReturn, TypeVar, overload -from typing_extensions import Self +from typing import TypeVar, overload +from typing_extensions import Never, Self from .std import tqdm as std_tqdm @@ -117,7 +117,7 @@ class tqdm_asyncio(std_tqdm[_T]): ) -> None: ... @overload def __init__( - self: tqdm_asyncio[NoReturn], + self: tqdm_asyncio[Never], iterable: None = None, desc: str | None = ..., total: float | None = ..., diff --git a/stubs/tqdm/tqdm/contrib/discord.pyi b/stubs/tqdm/tqdm/contrib/discord.pyi index 63a3a63dcbe6..0c6ba34e702e 100644 --- a/stubs/tqdm/tqdm/contrib/discord.pyi +++ b/stubs/tqdm/tqdm/contrib/discord.pyi @@ -1,7 +1,8 @@ from _typeshed import Incomplete, SupportsWrite from collections.abc import Iterable, Mapping from concurrent.futures import Future -from typing import NoReturn, TypeVar, overload +from typing import TypeVar, overload +from typing_extensions import Never from requests import Session @@ -65,7 +66,7 @@ class tqdm_discord(tqdm_auto[_T]): ) -> None: ... @overload def __init__( - self: tqdm_discord[NoReturn], + self: tqdm_discord[Never], iterable: None = None, desc: str | None = ..., total: float | None = ..., diff --git a/stubs/tqdm/tqdm/contrib/slack.pyi b/stubs/tqdm/tqdm/contrib/slack.pyi index f35a919f7a92..cd163bc1bc39 100644 --- a/stubs/tqdm/tqdm/contrib/slack.pyi +++ b/stubs/tqdm/tqdm/contrib/slack.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, SupportsWrite from collections.abc import Iterable, Mapping -from typing import NoReturn, TypeVar, overload +from typing import TypeVar, overload +from typing_extensions import Never from ..auto import tqdm as tqdm_auto from .utils_worker import MonoWorker @@ -55,7 +56,7 @@ class tqdm_slack(tqdm_auto[_T]): ) -> None: ... @overload def __init__( - self: tqdm_slack[NoReturn], + self: tqdm_slack[Never], iterable: None = None, desc: str | None = ..., total: float | None = ..., diff --git a/stubs/tqdm/tqdm/contrib/telegram.pyi b/stubs/tqdm/tqdm/contrib/telegram.pyi index 80d206b22b56..8fd56a284dea 100644 --- a/stubs/tqdm/tqdm/contrib/telegram.pyi +++ b/stubs/tqdm/tqdm/contrib/telegram.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, SupportsWrite from collections.abc import Iterable, Mapping -from typing import NoReturn, TypeVar, overload +from typing import TypeVar, overload +from typing_extensions import Never from ..auto import tqdm as tqdm_auto from .utils_worker import MonoWorker @@ -60,7 +61,7 @@ class tqdm_telegram(tqdm_auto[_T]): ) -> None: ... @overload def __init__( - self: tqdm_telegram[NoReturn], + self: tqdm_telegram[Never], iterable: None = None, desc: str | None = ..., total: float | None = ..., diff --git a/stubs/tqdm/tqdm/gui.pyi b/stubs/tqdm/tqdm/gui.pyi index c01e78ee0200..265cfa0cf418 100644 --- a/stubs/tqdm/tqdm/gui.pyi +++ b/stubs/tqdm/tqdm/gui.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, SupportsWrite from collections.abc import Iterable, Mapping -from typing import NoReturn, TypeVar, overload +from typing import TypeVar, overload +from typing_extensions import Never from .std import tqdm as std_tqdm @@ -57,7 +58,7 @@ class tqdm_gui(std_tqdm[_T]): ) -> None: ... @overload def __init__( - self: tqdm_gui[NoReturn], + self: tqdm_gui[Never], iterable: None = None, desc: str | None = ..., total: float | None = ..., diff --git a/stubs/tqdm/tqdm/notebook.pyi b/stubs/tqdm/tqdm/notebook.pyi index bfea206f3c72..a2b329235b79 100644 --- a/stubs/tqdm/tqdm/notebook.pyi +++ b/stubs/tqdm/tqdm/notebook.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, SupportsWrite from collections.abc import Iterable, Iterator, Mapping -from typing import NoReturn, TypeVar, overload +from typing import TypeVar, overload +from typing_extensions import Never from .std import tqdm as std_tqdm, trange as trange @@ -65,7 +66,7 @@ class tqdm_notebook(std_tqdm[_T]): ) -> None: ... @overload def __init__( - self: tqdm_notebook[NoReturn], + self: tqdm_notebook[Never], iterable: None = None, desc: str | None = ..., total: float | None = ..., diff --git a/stubs/tqdm/tqdm/rich.pyi b/stubs/tqdm/tqdm/rich.pyi index 37ee5d347e36..e470dec5529b 100644 --- a/stubs/tqdm/tqdm/rich.pyi +++ b/stubs/tqdm/tqdm/rich.pyi @@ -1,7 +1,8 @@ from _typeshed import Incomplete, SupportsWrite from abc import ABC, abstractmethod from collections.abc import Iterable, Mapping -from typing import NoReturn, TypeVar, overload, type_check_only +from typing import TypeVar, overload, type_check_only +from typing_extensions import Never from .std import tqdm as std_tqdm @@ -73,7 +74,7 @@ class tqdm_rich(std_tqdm[_T]): ) -> None: ... @overload def __init__( - self: tqdm_rich[NoReturn], + self: tqdm_rich[Never], iterable: None = None, desc: str | None = ..., total: float | None = ..., diff --git a/stubs/tqdm/tqdm/std.pyi b/stubs/tqdm/tqdm/std.pyi index c2743b03b3cf..761cdf0b809c 100644 --- a/stubs/tqdm/tqdm/std.pyi +++ b/stubs/tqdm/tqdm/std.pyi @@ -2,8 +2,8 @@ import contextlib from _typeshed import Incomplete, SupportsRead, SupportsWrite from collections.abc import Callable, Iterable, Iterator, Mapping, MutableMapping from types import TracebackType -from typing import Any, ClassVar, Generic, Literal, NoReturn, TypeVar, overload -from typing_extensions import Self +from typing import Any, ClassVar, Generic, Literal, TypeVar, overload +from typing_extensions import Never, Self from ._monitor import TMonitor from .utils import Comparable @@ -95,7 +95,7 @@ class tqdm(Comparable, Generic[_T]): ) -> None: ... @overload def __init__( - self: tqdm[NoReturn], + self: tqdm[Never], iterable: None = None, desc: str | None = None, total: float | None = None, diff --git a/stubs/tqdm/tqdm/tk.pyi b/stubs/tqdm/tqdm/tk.pyi index e4e4a956489d..c45457e323a7 100644 --- a/stubs/tqdm/tqdm/tk.pyi +++ b/stubs/tqdm/tqdm/tk.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, SupportsWrite from collections.abc import Iterable, Mapping -from typing import NoReturn, TypeVar, overload +from typing import TypeVar, overload +from typing_extensions import Never from .std import tqdm as std_tqdm @@ -45,7 +46,7 @@ class tqdm_tk(std_tqdm[_T]): ) -> None: ... @overload def __init__( - self: tqdm_tk[NoReturn], + self: tqdm_tk[Never], iterable: None = None, desc: str | None = ..., total: float | None = ..., diff --git a/stubs/waitress/waitress/buffers.pyi b/stubs/waitress/waitress/buffers.pyi index c8a356234623..fa4e9537ea0a 100644 --- a/stubs/waitress/waitress/buffers.pyi +++ b/stubs/waitress/waitress/buffers.pyi @@ -1,6 +1,7 @@ from _typeshed import ReadableBuffer from io import BufferedIOBase, BufferedRandom, BytesIO -from typing import Final, Literal, NoReturn +from typing import Final, Literal +from typing_extensions import Never COPY_BYTES: Final = 262144 STRBUF_LIMIT: Final = 8192 @@ -38,7 +39,7 @@ class ReadOnlyFileBasedBuffer(FileBasedBuffer): def __iter__(self) -> ReadOnlyFileBasedBuffer: ... def next(self) -> bytes | None: ... __next__ = next - def append(self, s: ReadableBuffer) -> NoReturn: ... + def append(self, s: ReadableBuffer) -> Never: ... class OverflowableBuffer: overflowed: bool diff --git a/stubs/yt-dlp/yt_dlp/jsinterp.pyi b/stubs/yt-dlp/yt_dlp/jsinterp.pyi index 2bfb46228a6b..046586574c09 100644 --- a/stubs/yt-dlp/yt_dlp/jsinterp.pyi +++ b/stubs/yt-dlp/yt_dlp/jsinterp.pyi @@ -1,7 +1,8 @@ import collections import types from collections.abc import Callable, Collection, Iterable, Mapping -from typing import Any, NoReturn, TypeAlias +from typing import Any, TypeAlias +from typing_extensions import Never from yt_dlp.extractor.common import InfoExtractor from yt_dlp.utils._utils import function_with_repr @@ -25,7 +26,7 @@ class JS_Throw(ExtractorError): class LocalNameSpace(collections.ChainMap[str, Any]): def __setitem__(self, key: str, value: Any) -> None: ... - def __delitem__(self, key: str) -> NoReturn: ... + def __delitem__(self, key: str) -> Never: ... def set_local(self, key: str, value: Any) -> None: ... def get_local(self, key: str) -> Any: ... diff --git a/tests/stubtest_third_party.py b/tests/stubtest_third_party.py index 70bb8d0c182a..fa7d2906cab3 100755 --- a/tests/stubtest_third_party.py +++ b/tests/stubtest_third_party.py @@ -13,7 +13,7 @@ from shutil import rmtree from textwrap import dedent from time import time -from typing import NoReturn +from typing_extensions import Never from ts_utils.metadata import NoSuchStubError, get_recursive_requirements, read_metadata from ts_utils.mypy import mypy_configuration_from_distribution, temporary_mypy_config_file @@ -392,7 +392,7 @@ def print_command_output(e: subprocess.CalledProcessError | subprocess.Completed print(e.stderr.decode(), end="") -def main() -> NoReturn: +def main() -> Never: parser = argparse.ArgumentParser() parser.add_argument("-v", "--verbose", action="store_true", help="verbose output") parser.add_argument("--num-shards", type=int, default=1)