# HG changeset patch # User Bernhard Herzog # Date 1173813588 -3600 # Node ID beec3ed6e0df0c76956729a55cab76c91fa86e1a # Parent 7510173b68be74613401d9f9073c910ac3d18d1c turn the (de)serialize functions of the status fields into methods diff -r 7510173b68be -r beec3ed6e0df treepkg/status.py --- a/treepkg/status.py Tue Mar 13 19:38:22 2007 +0100 +++ b/treepkg/status.py Tue Mar 13 20:19:48 2007 +0100 @@ -15,33 +15,41 @@ # special object to indicate no default value nodefault = object() -def serialize_datetime(d): - return d.strftime("%Y-%m-%d %H:%M:%S") - -def deserialize_datetime(s): - return datetime.datetime(*time.strptime(s.strip(), "%Y-%m-%d %H:%M:%S")[:6]) - class FieldDesc(object): - def __init__(self, serialize, deserialize, default=nodefault): - self.serialize = serialize - self.deserialize = deserialize + def __init__(self, default=nodefault): self.default = default def has_default(self): return self.default is not nodefault + def serialize(self, value): + raise NotImplementedError + + def deserialize(self, string): + raise NotImplementedError + + class StringFieldDesc(FieldDesc): - def __init__(self, **kw): - super(StringFieldDesc, self).__init__(str, lambda s: s.strip(), **kw) + def serialize(self, value): + return str(value) + + def deserialize(self, value): + return value.strip() + class DateFieldDesc(FieldDesc): - def __init__(self, **kw): - super(DateFieldDesc, self).__init__(serialize_datetime, - deserialize_datetime, **kw) + date_format = "%Y-%m-%d %H:%M:%S" + + def serialize(self, value): + return value.strftime(self.date_format) + + def deserialize(self, string): + return datetime.datetime(*time.strptime(string.strip(), + self.date_format)[:6]) class Status(object):