summaryrefslogtreecommitdiff
path: root/summainlib.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2011-08-08 14:50:00 +0100
committerLars Wirzenius <liw@liw.fi>2011-08-08 14:50:00 +0100
commit68f67f9b71e1bbc9647d350cb6b62d72ebfbeab9 (patch)
treedb154257120b54ab0b83c46fc2cb627dbed8743f /summainlib.py
parent74d9866867cc38dd0857b071c0ed09d4fb7512ef (diff)
downloadsummain-68f67f9b71e1bbc9647d350cb6b62d72ebfbeab9.tar.gz
Move output formatting out from FilesystemObject class.
Diffstat (limited to 'summainlib.py')
-rw-r--r--summainlib.py39
1 files changed, 2 insertions, 37 deletions
diff --git a/summainlib.py b/summainlib.py
index 5376e00..9d8ac54 100644
--- a/summainlib.py
+++ b/summainlib.py
@@ -112,13 +112,12 @@ class FilesystemObject(object):
'''
- def __init__(self, filename, nn, pn, exclude, checksums,
+ def __init__(self, filename, nn, pn, exclude,
stat_result=None, sha1=None, sha224=None,
sha256=None, sha384=None, sha512=None,
md5=None, open_file=None, readlink=None):
self._filename = filename
self._exclude = set(self._normalize_key(k) for k in exclude)
- self._checksums = checksums
self._pn = pn
self._nn = nn
self._md5 = md5 or hashlib.md5()
@@ -232,41 +231,7 @@ class FilesystemObject(object):
raise KeyError(key)
return self.values.get(key, '')
- def _isdir(self):
+ def _isdir(self): # pragma: no cover
'''Is this a directory?'''
-
return stat.S_ISDIR(int(self['Mode'], 8))
- def relative_path(self, root):
- '''Return a path that is relative to root, if possible.
-
- If pathname does not start with root, then return it
- unmodified.
-
- '''
-
- if root.endswith(os.sep):
- root2 = root
- else:
- root2 = root + os.sep
- pathname = self['Name']
- if pathname.startswith(root2):
- return pathname[len(root2):]
- elif pathname == root and self._isdir():
- return '.'
- else:
- return pathname
-
- def format(self, root=None): # pragma: no cover
- if root is None:
- name = self['Name']
- else:
- name = self.relative_path(root)
-
- keys = (['Mtime', 'Mode', 'Ino', 'Dev', 'Nlink', 'Size',
- 'Uid', 'Username', 'Gid', 'Group', 'Target'] +
- self._checksums)
- values = [('Name', name)]
- values += [(k, self[k]) for k in keys if self[k] != '']
- return ''.join('%s: %s\n' % (k, v) for k, v in values if v != '')
-