summaryrefslogtreecommitdiff
path: root/fs/wrapfs
diff options
context:
space:
mode:
authorrfkelly0 <rfkelly0@67cdc799-7952-0410-af00-57a81ceafa0f>2010-12-27 10:20:03 +0000
committerrfkelly0 <rfkelly0@67cdc799-7952-0410-af00-57a81ceafa0f>2010-12-27 10:20:03 +0000
commit1287ce096a9185b504d70ff4b0a797e72817b225 (patch)
tree47b4d874c190863f83e285270f7a6ad427b9c18a /fs/wrapfs
parent01c3efb88d55d5ff2ee414d963063f4eafe18be7 (diff)
downloadpyfilesystem-git-1287ce096a9185b504d70ff4b0a797e72817b225.tar.gz
removed obsolute "objectree" module; use fs.path.PathMap instead
Diffstat (limited to 'fs/wrapfs')
-rw-r--r--fs/wrapfs/__init__.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/fs/wrapfs/__init__.py b/fs/wrapfs/__init__.py
index 760a601..9b02aeb 100644
--- a/fs/wrapfs/__init__.py
+++ b/fs/wrapfs/__init__.py
@@ -192,6 +192,32 @@ class WrapFS(FS):
return entries
@rewrite_errors
+ def ilistdir(self, path="", wildcard=None, full=False, absolute=False, dirs_only=False, files_only=False):
+ kwds = dict(wildcard=wildcard,
+ full=full,
+ absolute=absolute,
+ dirs_only=dirs_only,
+ files_only=files_only)
+ full = kwds.pop("full",False)
+ absolute = kwds.pop("absolute",False)
+ wildcard = kwds.pop("wildcard",None)
+ if wildcard is None:
+ wildcard = lambda fn:True
+ elif not callable(wildcard):
+ wildcard_re = re.compile(fnmatch.translate(wildcard))
+ wildcard = lambda fn:bool (wildcard_re.match(fn))
+ enc_path = self._encode(path)
+ for e in self.wrapped_fs.ilistdir(enc_path,**kwds):
+ e = basename(self._decode(pathjoin(enc_path,e)))
+ if not wildcard(e):
+ continue
+ if full:
+ e = pathjoin(path,e)
+ elif absolute:
+ e = abspath(pathjoin(path,e))
+ yield e
+
+ @rewrite_errors
def listdirinfo(self, path="", **kwds):
full = kwds.pop("full",False)
absolute = kwds.pop("absolute",False)
@@ -215,6 +241,27 @@ class WrapFS(FS):
return entries
@rewrite_errors
+ def ilistdirinfo(self, path="", **kwds):
+ full = kwds.pop("full",False)
+ absolute = kwds.pop("absolute",False)
+ wildcard = kwds.pop("wildcard",None)
+ if wildcard is None:
+ wildcard = lambda fn:True
+ elif not callable(wildcard):
+ wildcard_re = re.compile(fnmatch.translate(wildcard))
+ wildcard = lambda fn:bool (wildcard_re.match(fn))
+ enc_path = self._encode(path)
+ for (nm,info) in self.wrapped_fs.ilistdirinfo(enc_path,**kwds):
+ nm = basename(self._decode(pathjoin(enc_path,nm)))
+ if not wildcard(nm):
+ continue
+ if full:
+ nm = pathjoin(path,nm)
+ elif absolute:
+ nm = abspath(pathjoin(path,nm))
+ yield (nm,info)
+
+ @rewrite_errors
def makedir(self, path, *args, **kwds):
return self.wrapped_fs.makedir(self._encode(path),*args,**kwds)