summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/statistics.py
diff options
context:
space:
mode:
authorben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-05-25 20:38:21 +0000
committerben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-05-25 20:38:21 +0000
commit1d050174970945c986f6c4f1c0b9cf922fd24bc2 (patch)
treecbf759920e7915c0e752a002edcd260160ebbf34 /rdiff-backup/rdiff_backup/statistics.py
parent7a82871f7b6d25464516dd659f3e98cc56211ff1 (diff)
downloadrdiff-backup-1d050174970945c986f6c4f1c0b9cf922fd24bc2.tar.gz
Final update of statistics stuff
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@109 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup/statistics.py')
-rw-r--r--rdiff-backup/rdiff_backup/statistics.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/rdiff-backup/rdiff_backup/statistics.py b/rdiff-backup/rdiff_backup/statistics.py
index 40eb184..8269456 100644
--- a/rdiff-backup/rdiff_backup/statistics.py
+++ b/rdiff-backup/rdiff_backup/statistics.py
@@ -54,6 +54,12 @@ class StatsObj:
if self.get_stat(attr) is not None]
return "".join(timelist + filelist)
+ def get_stats_logstring(self, title):
+ """Like get_stats_string, but add header and footer"""
+ header = "-------------[ %s ]-------------" % title
+ footer = "-" * len(header)
+ return "%s\n%s%s\n" % (header, self.get_stats_string(), footer)
+
def init_stats_from_string(self, s):
"""Initialize attributes from string, return self for convenience"""
def error(line): raise StatsException("Bad line '%s'" % line)
@@ -64,7 +70,12 @@ class StatsObj:
if len(line_parts) < 2: error(line)
attr, value_string = line_parts[:2]
if not attr in self.stat_attrs: error(line)
- try: self.set_stat(attr, long(value_string))
+ try:
+ try: val1 = long(value_string)
+ except ValueError: val1 = None
+ val2 = float(value_string)
+ if val1 == val2: self.set_stat(attr, val1) # use integer val
+ else: self.set_stat(attr, val2) # use float
except ValueError: error(line)
return self
@@ -111,6 +122,12 @@ class StatsObj:
self.get_stat(attr)/float(len(statobj_list)))
return self
+ def get_statsobj_copy(self):
+ """Return new StatsObj object with same stats as self"""
+ s = StatObj()
+ for attr in self.stat_attrs: s.set_stat(attr, self.get_stat(attr))
+ return s
+
class StatsITR(IterTreeReducer, StatsObj):
"""Keep track of per directory statistics