diff --git a/src/borgmanager/borg/repo.py b/src/borgmanager/borg/repo.py index 639255c..33f91c0 100644 --- a/src/borgmanager/borg/repo.py +++ b/src/borgmanager/borg/repo.py @@ -7,7 +7,16 @@ class Repo(object): self.fingerprint = fingerprint self.location = location self.last_modified = last_modified - self.primary_key = primary_key + self.__primary_key = primary_key + + @property + def primary_key(self): + if self.__primary_key is None: + raise ValueError("Primary key is None") + else: + return self.__primary_key + + # region CLASS METHODS @classmethod def from_json(cls, json: dict): @@ -19,3 +28,12 @@ class Repo(object): @classmethod def from_sql(cls, sql: tuple): return cls(sql[1], sql[2], sql[3], sql[0]) + + # endregion + + # region GET + + def seconds_since(self) -> float: + return (datetime.now() - self.last_modified).total_seconds() + + # endregion diff --git a/src/borgmanager/borg/stats.py b/src/borgmanager/borg/stats.py index d847521..2c14284 100644 --- a/src/borgmanager/borg/stats.py +++ b/src/borgmanager/borg/stats.py @@ -1,10 +1,18 @@ class Stats(object): - def __init__(self, file_count: int, original_size: int, compressed_size: int, deduplicated_size: int, primary_key=None): + def __init__(self, file_count: int, original_size: int, compressed_size: int, deduplicated_size: int, + primary_key=None): self.file_count = file_count self.original_size = original_size self.compressed_size = compressed_size self.deduplicated_size = deduplicated_size - self.primary_key = primary_key + self.__primary_key = primary_key + + @property + def primary_key(self): + if self.__primary_key is None: + raise ValueError("Primary key is None") + else: + return self.__primary_key @classmethod def from_json(cls, json: dict): @@ -15,5 +23,10 @@ class Stats(object): return cls(file_count, original_size, compressed_size, deduplicated_size) @classmethod - def from_sql(cls, sql: list): - pass \ No newline at end of file + def from_sql(cls, sql: tuple): + key = sql[0] + filecount = sql[3] + original_size = sql[4] + compressed_size = sql[5] + deduplicated_size = sql[6] + return cls(filecount, original_size, compressed_size, deduplicated_size, key)