summaryrefslogtreecommitdiff
path: root/summainlib.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2010-01-01 03:34:45 +0200
committerLars Wirzenius <liw@liw.fi>2010-01-01 03:34:45 +0200
commit39d305bae7396bba7644299895d857dc87af3581 (patch)
tree553ef5b782bad41677abe65ae726b4e74b791bce /summainlib.py
parentd91eaa8dd83da8b0fa7ce7829314ea828c828634 (diff)
downloadsummain-39d305bae7396bba7644299895d857dc87af3581.tar.gz
Add FilesystemObject.format method to format all fields in
a nice and deterministic manner. "Nice" here means that the "Name:" field comes first. "Deterministic" means the other fields come in the same order every time.
Diffstat (limited to 'summainlib.py')
-rw-r--r--summainlib.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/summainlib.py b/summainlib.py
index db66172..29ae21e 100644
--- a/summainlib.py
+++ b/summainlib.py
@@ -38,7 +38,7 @@ class FilesystemObject(object):
open_file=None, readlink=None):
stat_result = stat_result or os.lstat(filename)
sha1 = sha1 or hashlib.sha1()
- self.open_file = open_file or self.open_file
+ self.open_file = open_file or file
readlink = readlink or os.readlink
self.values = dict()
@@ -89,3 +89,9 @@ class FilesystemObject(object):
def __getitem__(self, key):
return self.values.get(key, '')
+
+ def format(self): # pragma: no cover
+ keys = ['Name'] + [x
+ for x in sorted(self.values.keys())
+ if x != 'Name']
+ return ''.join('%s: %s\n' % (key, self[key]) for key in keys)