From 6e2085b798ddadfc34625e5897f45fbcac8abad9 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 20 Nov 2020 21:52:03 +0100 Subject: repository: add code for reading the stats --- lbup/repository.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lbup/repository.py b/lbup/repository.py index d3a6b33..398c912 100644 --- a/lbup/repository.py +++ b/lbup/repository.py @@ -4,6 +4,7 @@ import os import os.path import subprocess import datetime +import statistics class StepResult: success = None @@ -20,6 +21,18 @@ class BackupResult: self.target_results = {} self.par2_result = StepResult() +class BackupStats: + + def __init__(self, fname): + def parse_line(line): + date, size = line.strip().split() + return datetime.datetime.fromisoformat(date), float(size) + + with open(fname, 'r') as f: + self.entries = dict(map(parse_line, f)) + + self.dist = statistics.NormalDist.from_samples(self.entries.values()) + class Repo: """ A single Bup repository into which the data will be backed up, plus a @@ -120,3 +133,7 @@ class Repo: self._logger.debug('Backup finished') return result + + def read_stats(self, tgt_name): + filename = os.path.join(self.data_dir, tgt_name, self.sizestat_name) + return BackupStats(filename) -- cgit v1.2.3