summaryrefslogtreecommitdiff
path: root/fs/expose/sftp.py
diff options
context:
space:
mode:
Diffstat (limited to 'fs/expose/sftp.py')
-rw-r--r--fs/expose/sftp.py25
1 files changed, 2 insertions, 23 deletions
diff --git a/fs/expose/sftp.py b/fs/expose/sftp.py
index 0042ee8..526fd84 100644
--- a/fs/expose/sftp.py
+++ b/fs/expose/sftp.py
@@ -31,6 +31,7 @@ from StringIO import StringIO
import paramiko
+from fs.base import flags_to_mode
from fs.path import *
from fs.errors import *
@@ -157,33 +158,11 @@ class SFTPHandle(paramiko.SFTPHandle):
def __init__(self,owner,path,flags):
super(SFTPHandle,self).__init__(flags)
- mode = self._flags_to_mode(flags)
+ mode = flags_to_mode(flags)
self.owner = owner
self.path = path
self._file = owner.fs.open(path,mode)
- def _flags_to_mode(self,flags):
- """Convert an os.O_* bitmask into an FS mode string."""
- if flags & os.O_EXCL:
- raise UnsupportedError("open",msg="O_EXCL is not supported")
- if flags & os.O_WRONLY:
- if flags & os.O_TRUNC:
- mode = "w"
- elif flags & os.O_APPEND:
- mode = "a"
- else:
- mode = "r+"
- elif flags & os.O_RDWR:
- if flags & os.O_TRUNC:
- mode = "w+"
- elif flags & os.O_APPEND:
- mode = "a+"
- else:
- mode = "r+"
- else:
- mode = "r"
- return mode
-
@report_sftp_errors
def close(self):
self._file.close()