diff --git a/src/trio/_util.py b/src/trio/_util.py index 6656749111..ad34f65806 100644 --- a/src/trio/_util.py +++ b/src/trio/_util.py @@ -35,6 +35,7 @@ from exceptiongroup import BaseExceptionGroup ArgsT = ParamSpec("ArgsT") + P = ParamSpec("P") PosArgsT = TypeVarTuple("PosArgsT") @@ -324,8 +325,9 @@ def __call__(cls, *args: object, **kwargs: object) -> None: f"{cls.__module__}.{cls.__qualname__} has no public constructor", ) - def _create(cls: type[T], *args: object, **kwargs: object) -> T: - return super().__call__(*args, **kwargs) # type: ignore + def _create(cls: Callable[P, T], *args: P.args, **kwargs: P.kwargs) -> T: + # misc = unsupported argument 2 for "super" (??) + return super().__call__(*args, **kwargs) # type: ignore[misc,no-any-return] def name_asyncgen(agen: AsyncGeneratorType[object, NoReturn]) -> str: diff --git a/src/trio/testing/_fake_net.py b/src/trio/testing/_fake_net.py index 5d63112e17..729cd193f7 100644 --- a/src/trio/testing/_fake_net.py +++ b/src/trio/testing/_fake_net.py @@ -129,7 +129,7 @@ def reply(self, payload: bytes) -> UDPPacket: # pragma: no cover class FakeSocketFactory(trio.abc.SocketFactory): fake_net: FakeNet - def socket(self, family: int, type_: int, proto: int) -> FakeSocket: # type: ignore[override] + def socket(self, family: AddressFamily, type_: SocketKind, proto: int) -> FakeSocket: # type: ignore[override] return FakeSocket._create(self.fake_net, family, type_, proto)