diff options
author | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-05-25 20:38:21 +0000 |
---|---|---|
committer | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-05-25 20:38:21 +0000 |
commit | 1d050174970945c986f6c4f1c0b9cf922fd24bc2 (patch) | |
tree | cbf759920e7915c0e752a002edcd260160ebbf34 /rdiff-backup/rdiff_backup/statistics.py | |
parent | 7a82871f7b6d25464516dd659f3e98cc56211ff1 (diff) | |
download | rdiff-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.py | 19 |
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 |