Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Silbe <sascha-pgp@silbe.org>2014-05-15 22:24:58 (GMT)
committer Sascha Silbe <sascha-pgp@silbe.org>2014-05-15 22:24:58 (GMT)
commit51c0c394d0976e613b99c9378aa3f46af79b0081 (patch)
tree1400f2383dc8fb2d5d7a1dbd7c60901a97ed4aa0
parent0db3d84c24e8d8c565a9ecd1be4dd953d504556e (diff)
fsemulation: make nesting level public
For some use cases, the API consumer needs to build paths relative to an emulated file system object. Make the nesting level we already keep internally public so the caller can construct relative paths to the root.
-rw-r--r--fsemulation.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/fsemulation.py b/fsemulation.py
index 8e89fef..d02d58e 100644
--- a/fsemulation.py
+++ b/fsemulation.py
@@ -626,6 +626,7 @@ class DSObjectBase(FSEntry):
self._have_nonstandard = False
def get_properties(self, names=None, use_cache=False):
+ names = names or []
nonstandard_names = bool([True for name in names
if name not in _USEFUL_PROPS])
if names and not nonstandard_names:
@@ -708,7 +709,7 @@ class DSObject(DSObjectBase):
class Directory(FSEntry):
def __init__(self, file_system, level, mode, parent=None):
self.parent = parent
- self._level = level
+ self.level = level
FSEntry.__init__(self, file_system, stat.S_IFDIR | mode)
def listdir(self):
@@ -721,7 +722,7 @@ class Directory(FSEntry):
yield (u'..', self.parent)
def _get_symlink(self, object_id, metadata=None):
- directory_path = u'../' * self._level + u'by-id/'
+ directory_path = u'../' * self.level + u'by-id/'
if isinstance(object_id, tuple):
assert (isinstance(object_id[0], unicode) and
isinstance(object_id[1], unicode))
@@ -827,7 +828,7 @@ class ByTreeIdDirectory(Directory):
if not self._ds.check_tree_id(tree_id):
raise IOError(errno.ENOENT, os.strerror(errno.ENOENT))
- return ByVersionIdDirectory(self._fs, self._level + 1, self, tree_id)
+ return ByVersionIdDirectory(self._fs, self.level + 1, self, tree_id)
def listdir(self):
for name in Directory.listdir(self):
@@ -841,7 +842,7 @@ class ByTreeIdDirectory(Directory):
yield name, entry
for tree_id in self._ds.list_tree_ids():
- yield (tree_id, ByVersionIdDirectory(self._fs, self._level + 1,
+ yield (tree_id, ByVersionIdDirectory(self._fs, self.level + 1,
self, tree_id))
@@ -908,7 +909,7 @@ class ByTagsDirectory(Directory):
if tag not in self._tag_dirs:
self._tag_dirs[tag] = ByTagsSubDirectory(self._fs,
- self._level + 1,
+ self.level + 1,
self, [tag])
yield (tag, self._tag_dirs[tag])
@@ -918,7 +919,7 @@ class ByTagsDirectory(Directory):
raise IOError(errno.ENOENT, os.strerror(errno.ENOENT))
self._tag_dirs[name] = ByTagsSubDirectory(self._fs,
- self._level + 1, self,
+ self.level + 1, self,
[name])
return self._tag_dirs[name]