summaryrefslogtreecommitdiff
path: root/lbup/repository.py
diff options
context:
space:
mode:
Diffstat (limited to 'lbup/repository.py')
-rw-r--r--lbup/repository.py17
1 files changed, 17 insertions, 0 deletions
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)