Skip to content

Commit 8715bd1

Browse files
shchekleinclaude
andcommitted
Map SFTPPermissionDenied to PermissionError
Only the auth-level PermissionDenied was translated; SFTP-level permission errors (e.g. opening a read-only file for write) leaked the asyncssh exception through the public API. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 90c03f8 commit 8715bd1

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

sshfs/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from asyncssh import ProcessError
66
from asyncssh.misc import PermissionDenied
7-
from asyncssh.sftp import SFTPFailure, SFTPNoSuchFile
7+
from asyncssh.sftp import SFTPFailure, SFTPNoSuchFile, SFTPPermissionDenied
88
from fsspec.asyn import sync_wrapper
99

1010
_NOT_FOUND = os.strerror(errno.ENOENT)
@@ -27,6 +27,8 @@ async def wrapper(*args, **kwargs):
2727
return await func(*args, **kwargs)
2828
except PermissionDenied as exc:
2929
raise PermissionError(exc.reason) from exc
30+
except SFTPPermissionDenied as exc:
31+
raise PermissionError(errno.EACCES, exc.reason) from exc
3032
except SFTPNoSuchFile as exc:
3133
raise FileNotFoundError(errno.ENOENT, _NOT_FOUND) from exc
3234
except ProcessError as exc:

0 commit comments

Comments
 (0)