X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=plomtask%2Fversioned_attributes.py;h=b04c56465a74e1c7626736a0b7bb85f3ef5b8962;hb=ae757881abfe760e8a942a4d2f0667dd7fa0ac4b;hp=d3c364942e3d76edf0eb9618df8366866c603709;hpb=1a9178b2b7bb66e77f3df01a0c7b2812839637ba;p=plomtask
diff --git a/plomtask/versioned_attributes.py b/plomtask/versioned_attributes.py
index d3c3649..b04c564 100644
--- a/plomtask/versioned_attributes.py
+++ b/plomtask/versioned_attributes.py
@@ -19,6 +19,20 @@ class VersionedAttribute:
self.default = default
self.history: dict[str, str | float] = {}
+ def __hash__(self) -> int:
+ history_tuples = tuple((k, v) for k, v in self.history.items())
+ hashable = (self.parent.id_, self.table_name, self.default,
+ 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_,
+ 'table_name': self.table_name,
+ 'history': self.history}
+ return d
+
@property
def _newest_timestamp(self) -> str:
"""Return most recent timestamp."""