From af73b3992f2901465d1feed84abcec820e3bf8a0 Mon Sep 17 00:00:00 2001 From: "jacob.glik" Date: Mon, 19 Oct 2026 15:48:26 -0400 Subject: [PATCH] paramiko: make Transport.open_sftp_client return type non-optional [`open_sftp_client`][1] is unable to return None as it calls [`from_transport`][2] -> [`open_session`][3] -> [`open_channel`][4], which itself [returns either a Channel or throws][5]. [1]: https://github.com/paramiko/paramiko/blob/0e9ccb91e0f9a68f2587233d523ad7fe46e730fe/paramiko/transport.py#L1138 [2]: https://github.com/paramiko/paramiko/blob/0e9ccb91e0f9a68f2587233d523ad7fe46e730fe/paramiko/sftp_client.py#L141 [3]: https://github.com/paramiko/paramiko/blob/0e9ccb91e0f9a68f2587233d523ad7fe46e730fe/paramiko/transport.py#L898 [4]: https://github.com/paramiko/paramiko/blob/0e9ccb91e0f9a68f2587233d523ad7fe46e730fe/paramiko/transport.py#L975 [5]: https://github.com/paramiko/paramiko/blob/0e9ccb91e0f9a68f2587233d523ad7fe46e730fe/paramiko/transport.py#L1063-L1068 Co-authored-by: yusuf.bham --- stubs/paramiko/paramiko/transport.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/paramiko/paramiko/transport.pyi b/stubs/paramiko/paramiko/transport.pyi index 81b3c170881c..0e623d36b172 100644 --- a/stubs/paramiko/paramiko/transport.pyi +++ b/stubs/paramiko/paramiko/transport.pyi @@ -127,7 +127,7 @@ class Transport(Thread, ClosingContextManager): self, address: str, port: int, handler: Callable[[Channel, _Addr, _Addr], object] | None = None ) -> int: ... def cancel_port_forward(self, address: str, port: int) -> None: ... - def open_sftp_client(self) -> SFTPClient | None: ... + def open_sftp_client(self) -> SFTPClient: ... def send_ignore(self, byte_count: int | None = None) -> None: ... def renegotiate_keys(self) -> None: ... def set_keepalive(self, interval: float) -> None: ...