diff --git a/src/poetry/inspection/lazy_wheel.py b/src/poetry/inspection/lazy_wheel.py index 66c6dfccd88..61cd5ce019e 100644 --- a/src/poetry/inspection/lazy_wheel.py +++ b/src/poetry/inspection/lazy_wheel.py @@ -14,7 +14,6 @@ from typing import Any from typing import BinaryIO from typing import ClassVar -from typing import TypeVar from typing import cast from urllib.parse import urlparse from zipfile import BadZipFile @@ -34,6 +33,7 @@ from packaging.metadata import RawMetadata from requests import Session + from typing_extensions import Self from poetry.utils.authenticator import Authenticator @@ -168,9 +168,6 @@ def minimal_intervals_covering( yield from self._merge(start, end, left, right) -T = TypeVar("T", bound="ReadOnlyIOWrapper") - - class ReadOnlyIOWrapper(BinaryIO): """Implement read-side ``BinaryIO`` methods wrapping an inner ``BinaryIO``. @@ -181,7 +178,7 @@ class ReadOnlyIOWrapper(BinaryIO): def __init__(self, inner: BinaryIO) -> None: self._file = inner - def __enter__(self: T) -> T: + def __enter__(self) -> Self: self._file.__enter__() return self @@ -286,9 +283,6 @@ def writelines(self, lines: Iterable[Any]) -> None: raise NotImplementedError -U = TypeVar("U", bound="LazyFileOverHTTP") - - class LazyFileOverHTTP(ReadOnlyIOWrapper): """File-like object representing a fixed-length file over HTTP. @@ -311,7 +305,7 @@ def __init__( self._session = session self._url = url - def __enter__(self: U) -> U: + def __enter__(self) -> Self: super().__enter__() self._setup_content() return self diff --git a/src/poetry/installation/operations/operation.py b/src/poetry/installation/operations/operation.py index e6d7ce582f1..21c0cfa133f 100644 --- a/src/poetry/installation/operations/operation.py +++ b/src/poetry/installation/operations/operation.py @@ -1,13 +1,11 @@ from __future__ import annotations from typing import TYPE_CHECKING -from typing import TypeVar if TYPE_CHECKING: from poetry.core.packages.package import Package - -T = TypeVar("T", bound="Operation") + from typing_extensions import Self class Operation: @@ -46,7 +44,7 @@ def format_version(self, package: Package) -> str: version: str = package.full_pretty_version return version - def skip(self: T, reason: str) -> T: + def skip(self, reason: str) -> Self: self._skipped = True self._skip_reason = reason diff --git a/src/poetry/puzzle/solver.py b/src/poetry/puzzle/solver.py index 9675bc1f6f0..16432b3e297 100644 --- a/src/poetry/puzzle/solver.py +++ b/src/poetry/puzzle/solver.py @@ -7,7 +7,6 @@ from typing import TYPE_CHECKING from typing import FrozenSet from typing import Tuple -from typing import TypeVar from poetry.mixology import resolve_version from poetry.mixology.failure import SolveFailure @@ -27,6 +26,7 @@ from poetry.core.packages.dependency import Dependency from poetry.core.packages.package import Package from poetry.core.packages.project_package import ProjectPackage + from typing_extensions import Self from poetry.puzzle.transaction import Transaction from poetry.repositories import RepositoryPool @@ -199,8 +199,6 @@ def _solve(self) -> tuple[list[Package], list[int]]: DFSNodeID = Tuple[str, FrozenSet[str], bool] -T = TypeVar("T", bound="DFSNode") - class DFSNode: def __init__(self, id: DFSNodeID, name: str, base_name: str) -> None: @@ -208,7 +206,7 @@ def __init__(self, id: DFSNodeID, name: str, base_name: str) -> None: self.name = name self.base_name = base_name - def reachable(self: T) -> Sequence[T]: + def reachable(self) -> Sequence[Self]: return [] def visit(self, parents: list[PackageNode]) -> None: