Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
pyfs
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
pyfs
Commits
2532c3da
Commit
2532c3da
authored
Jun 15, 2009
by
rfkelly0
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WrapFS: rewrite pathnames in errors
parent
f68f9863
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
0 deletions
+34
-0
fs/wrapfs.py
+34
-0
No files found.
fs/wrapfs.py
View file @
2532c3da
...
@@ -16,6 +16,22 @@ directory listings.
...
@@ -16,6 +16,22 @@ directory listings.
from
fs.base
import
FS
from
fs.base
import
FS
from
fs.errors
import
wraps
,
ResourceError
def
rewrite_errors
(
func
):
@wraps
(
func
)
def
wrapper
(
self
,
*
args
,
**
kwds
):
try
:
return
func
(
self
,
*
args
,
**
kwds
)
except
ResourceError
,
e
:
try
:
e
.
path
=
self
.
_decode
(
e
.
path
)
except
AttributeError
:
pass
raise
return
wrapper
class
WrapFS
(
FS
):
class
WrapFS
(
FS
):
"""FS that wraps another FS, providing translation etc.
"""FS that wraps another FS, providing translation etc.
...
@@ -90,65 +106,83 @@ class WrapFS(FS):
...
@@ -90,65 +106,83 @@ class WrapFS(FS):
"""
"""
return
(
mode
,
mode
)
return
(
mode
,
mode
)
@rewrite_errors
def
getsyspath
(
self
,
path
,
allow_none
=
False
):
def
getsyspath
(
self
,
path
,
allow_none
=
False
):
return
self
.
wrapped_fs
.
getsyspath
(
self
.
_encode
(
path
),
allow_none
)
return
self
.
wrapped_fs
.
getsyspath
(
self
.
_encode
(
path
),
allow_none
)
@rewrite_errors
def
hassyspath
(
self
,
path
):
def
hassyspath
(
self
,
path
):
return
self
.
wrapped_fs
.
hassyspath
(
self
.
_encode
(
path
))
return
self
.
wrapped_fs
.
hassyspath
(
self
.
_encode
(
path
))
@rewrite_errors
def
open
(
self
,
path
,
mode
=
"r"
):
def
open
(
self
,
path
,
mode
=
"r"
):
(
mode
,
wmode
)
=
self
.
_adjust_mode
(
mode
)
(
mode
,
wmode
)
=
self
.
_adjust_mode
(
mode
)
f
=
self
.
wrapped_fs
.
open
(
self
.
_encode
(
path
),
wmode
)
f
=
self
.
wrapped_fs
.
open
(
self
.
_encode
(
path
),
wmode
)
return
self
.
_file_wrap
(
f
,
mode
)
return
self
.
_file_wrap
(
f
,
mode
)
@rewrite_errors
def
exists
(
self
,
path
):
def
exists
(
self
,
path
):
return
self
.
wrapped_fs
.
exists
(
self
.
_encode
(
path
))
return
self
.
wrapped_fs
.
exists
(
self
.
_encode
(
path
))
@rewrite_errors
def
isdir
(
self
,
path
):
def
isdir
(
self
,
path
):
return
self
.
wrapped_fs
.
isdir
(
self
.
_encode
(
path
))
return
self
.
wrapped_fs
.
isdir
(
self
.
_encode
(
path
))
@rewrite_errors
def
isfile
(
self
,
path
):
def
isfile
(
self
,
path
):
return
self
.
wrapped_fs
.
isfile
(
self
.
_encode
(
path
))
return
self
.
wrapped_fs
.
isfile
(
self
.
_encode
(
path
))
@rewrite_errors
def
listdir
(
self
,
path
=
""
,
wildcard
=
None
,
full
=
False
,
absolute
=
False
,
dirs_only
=
False
,
files_only
=
False
):
def
listdir
(
self
,
path
=
""
,
wildcard
=
None
,
full
=
False
,
absolute
=
False
,
dirs_only
=
False
,
files_only
=
False
):
entries
=
[]
entries
=
[]
for
name
in
self
.
wrapped_fs
.
listdir
(
self
.
_encode
(
path
),
wildcard
=
None
,
full
=
full
,
absolute
=
absolute
,
dirs_only
=
dirs_only
,
files_only
=
files_only
):
for
name
in
self
.
wrapped_fs
.
listdir
(
self
.
_encode
(
path
),
wildcard
=
None
,
full
=
full
,
absolute
=
absolute
,
dirs_only
=
dirs_only
,
files_only
=
files_only
):
entries
.
append
(
self
.
_decode
(
name
))
entries
.
append
(
self
.
_decode
(
name
))
return
self
.
_listdir_helper
(
path
,
entries
,
wildcard
=
wildcard
,
full
=
False
,
absolute
=
False
,
dirs_only
=
False
,
files_only
=
False
)
return
self
.
_listdir_helper
(
path
,
entries
,
wildcard
=
wildcard
,
full
=
False
,
absolute
=
False
,
dirs_only
=
False
,
files_only
=
False
)
@rewrite_errors
def
makedir
(
self
,
path
,
*
args
,
**
kwds
):
def
makedir
(
self
,
path
,
*
args
,
**
kwds
):
return
self
.
wrapped_fs
.
makedir
(
self
.
_encode
(
path
),
*
args
,
**
kwds
)
return
self
.
wrapped_fs
.
makedir
(
self
.
_encode
(
path
),
*
args
,
**
kwds
)
@rewrite_errors
def
remove
(
self
,
path
):
def
remove
(
self
,
path
):
return
self
.
wrapped_fs
.
remove
(
self
.
_encode
(
path
))
return
self
.
wrapped_fs
.
remove
(
self
.
_encode
(
path
))
@rewrite_errors
def
removedir
(
self
,
path
,
*
args
,
**
kwds
):
def
removedir
(
self
,
path
,
*
args
,
**
kwds
):
return
self
.
wrapped_fs
.
removedir
(
self
.
_encode
(
path
),
*
args
,
**
kwds
)
return
self
.
wrapped_fs
.
removedir
(
self
.
_encode
(
path
),
*
args
,
**
kwds
)
@rewrite_errors
def
rename
(
self
,
src
,
dst
):
def
rename
(
self
,
src
,
dst
):
return
self
.
wrapped_fs
.
rename
(
self
.
_encode
(
src
),
self
.
_encode
(
dst
))
return
self
.
wrapped_fs
.
rename
(
self
.
_encode
(
src
),
self
.
_encode
(
dst
))
@rewrite_errors
def
getinfo
(
self
,
path
):
def
getinfo
(
self
,
path
):
return
self
.
wrapped_fs
.
getinfo
(
self
.
_encode
(
path
))
return
self
.
wrapped_fs
.
getinfo
(
self
.
_encode
(
path
))
@rewrite_errors
def
desc
(
self
,
path
):
def
desc
(
self
,
path
):
return
self
.
wrapped_fs
.
desc
(
self
.
_encode
(
path
))
return
self
.
wrapped_fs
.
desc
(
self
.
_encode
(
path
))
@rewrite_errors
def
copy
(
self
,
src
,
dst
,
overwrite
=
False
,
chunk_size
=
16384
):
def
copy
(
self
,
src
,
dst
,
overwrite
=
False
,
chunk_size
=
16384
):
return
self
.
wrapped_fs
.
copy
(
self
.
_encode
(
src
),
self
.
_encode
(
dst
),
overwrite
,
chunk_size
)
return
self
.
wrapped_fs
.
copy
(
self
.
_encode
(
src
),
self
.
_encode
(
dst
),
overwrite
,
chunk_size
)
@rewrite_errors
def
move
(
self
,
src
,
dst
,
overwrite
=
False
,
chunk_size
=
16384
):
def
move
(
self
,
src
,
dst
,
overwrite
=
False
,
chunk_size
=
16384
):
return
self
.
wrapped_fs
.
move
(
self
.
_encode
(
src
),
self
.
_encode
(
dst
),
overwrite
,
chunk_size
)
return
self
.
wrapped_fs
.
move
(
self
.
_encode
(
src
),
self
.
_encode
(
dst
),
overwrite
,
chunk_size
)
@rewrite_errors
def
movedir
(
self
,
src
,
dst
,
overwrite
=
False
,
ignore_errors
=
False
,
chunk_size
=
16384
):
def
movedir
(
self
,
src
,
dst
,
overwrite
=
False
,
ignore_errors
=
False
,
chunk_size
=
16384
):
return
self
.
wrapped_fs
.
movedir
(
self
.
_encode
(
src
),
self
.
_encode
(
dst
),
overwrite
,
ignore_errors
,
chunk_size
)
return
self
.
wrapped_fs
.
movedir
(
self
.
_encode
(
src
),
self
.
_encode
(
dst
),
overwrite
,
ignore_errors
,
chunk_size
)
@rewrite_errors
def
copydir
(
self
,
src
,
dst
,
overwrite
=
False
,
ignore_errors
=
False
,
chunk_size
=
16384
):
def
copydir
(
self
,
src
,
dst
,
overwrite
=
False
,
ignore_errors
=
False
,
chunk_size
=
16384
):
return
self
.
wrapped_fs
.
copydir
(
self
.
_encode
(
src
),
self
.
_encode
(
dst
),
overwrite
,
ignore_errors
,
chunk_size
)
return
self
.
wrapped_fs
.
copydir
(
self
.
_encode
(
src
),
self
.
_encode
(
dst
),
overwrite
,
ignore_errors
,
chunk_size
)
def
__getattr__
(
self
,
attr
):
def
__getattr__
(
self
,
attr
):
return
getattr
(
self
.
wrapped_fs
,
attr
)
return
getattr
(
self
.
wrapped_fs
,
attr
)
@rewrite_errors
def
close
(
self
):
def
close
(
self
):
if
hasattr
(
self
.
wrapped_fs
,
"close"
):
if
hasattr
(
self
.
wrapped_fs
,
"close"
):
self
.
wrapped_fs
.
close
()
self
.
wrapped_fs
.
close
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment