diff options
author | rfkelly0 <rfkelly0@67cdc799-7952-0410-af00-57a81ceafa0f> | 2010-12-27 10:20:03 +0000 |
---|---|---|
committer | rfkelly0 <rfkelly0@67cdc799-7952-0410-af00-57a81ceafa0f> | 2010-12-27 10:20:03 +0000 |
commit | 1287ce096a9185b504d70ff4b0a797e72817b225 (patch) | |
tree | 47b4d874c190863f83e285270f7a6ad427b9c18a /fs/wrapfs | |
parent | 01c3efb88d55d5ff2ee414d963063f4eafe18be7 (diff) | |
download | pyfilesystem-git-1287ce096a9185b504d70ff4b0a797e72817b225.tar.gz |
removed obsolute "objectree" module; use fs.path.PathMap instead
Diffstat (limited to 'fs/wrapfs')
-rw-r--r-- | fs/wrapfs/__init__.py | 47 |
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) |