X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/move_up?a=blobdiff_plain;f=plomtask%2Fversioned_attributes.py;h=8861c9834ff3924d6459ced5cb9c69629424bb45;hb=ffeee1618e4d169c9f125028ef7cd75b913cda8f;hp=cc42bbc40f761c35715f11b0ca4f61ba67dbe579;hpb=84ff28d055b785e5f205f942c68ece72136e5af1;p=plomtask diff --git a/plomtask/versioned_attributes.py b/plomtask/versioned_attributes.py index cc42bbc..8861c98 100644 --- a/plomtask/versioned_attributes.py +++ b/plomtask/versioned_attributes.py @@ -4,7 +4,8 @@ from typing import Any from sqlite3 import Row from time import sleep from plomtask.db import DatabaseConnection -from plomtask.exceptions import HandledException, BadFormatException +from plomtask.exceptions import (HandledException, BadFormatException, + NotFoundException) TIMESTAMP_FMT = '%Y-%m-%d %H:%M:%S.%f' @@ -25,12 +26,6 @@ class VersionedAttribute: history_tuples) return hash(hashable) - @property - def as_dict(self) -> dict[str, object]: - """Return self as (json.dumps-coompatible) dict.""" - d = {'parent_id': self.parent.id_, 'history': self.history} - return d - @property def _newest_timestamp(self) -> str: """Return most recent timestamp.""" @@ -104,6 +99,8 @@ class VersionedAttribute: def save(self, db_conn: DatabaseConnection) -> None: """Save as self.history entries, but first wipe old ones.""" + if self.parent.id_ is None: + raise NotFoundException('cannot save attribute to parent if no ID') db_conn.rewrite_relations(self.table_name, 'parent', self.parent.id_, [[item[0], item[1]] for item in self.history.items()])