Les timestamps c'est merdique, maintenant tout est du datetime
This commit is contained in:
parent
4de62cd0a8
commit
a1f27f9f1a
3 changed files with 64 additions and 43 deletions
46
attributs.py
46
attributs.py
|
@ -638,26 +638,30 @@ class generalizedTimeFormat(Attr):
|
|||
|
||||
"""
|
||||
__slots__ = ("stamp", "datetime",)
|
||||
default = "19700101000000Z"
|
||||
python_type = datetime.datetime
|
||||
default = datetime_from_generalized_time_format("19700101000000Z")
|
||||
|
||||
def __unicode__(self):
|
||||
return unicode(datetime_to_generalized_time_format(self.value))
|
||||
|
||||
def __float__(self):
|
||||
return self.stamp
|
||||
return from_generalized_time_format(unicode(self))
|
||||
|
||||
def __int__(self):
|
||||
return int(self.stamp)
|
||||
return int(float(self))
|
||||
|
||||
def __eq__(self, othertime):
|
||||
if isinstance(othertime, generalizedTimeFormat):
|
||||
return self.stamp == othertime.stamp
|
||||
return self.value == othertime.value
|
||||
elif isinstance(othertime, float):
|
||||
return self.stamp == othertime
|
||||
return float(self) == othertime
|
||||
elif isinstance(othertime, int):
|
||||
return self.stamp == othertime
|
||||
return int(self) == othertime
|
||||
elif isinstance(othertime, unicode) or isinstance(othertime, str):
|
||||
resource = generalizedTimeFormat(othertime, conn=None, Parent=None)
|
||||
return self.stamp == resource.stamp
|
||||
return self == resource
|
||||
elif isinstance(othertime, datetime.datetime):
|
||||
return self.datetime == othertime
|
||||
return self.value == othertime
|
||||
else:
|
||||
return False
|
||||
|
||||
|
@ -666,16 +670,16 @@ class generalizedTimeFormat(Attr):
|
|||
|
||||
def __lt__(self, othertime):
|
||||
if isinstance(othertime, generalizedTimeFormat):
|
||||
return self.stamp < othertime.stamp
|
||||
return self.value < othertime.value
|
||||
elif isinstance(othertime, float):
|
||||
return self.stamp < othertime
|
||||
return float(self) < othertime
|
||||
elif isinstance(othertime, int):
|
||||
return self.stamp < othertime
|
||||
return int(self) < othertime
|
||||
elif isinstance(othertime, unicode) or isinstance(othertime, str):
|
||||
resource = generalizedTimeFormat(othertime, conn=None, Parent=None)
|
||||
return self.stamp < resource.stamp
|
||||
return self < resource
|
||||
elif isinstance(othertime, datetime.datetime):
|
||||
return self.datetime < othertime
|
||||
return self.value < othertime
|
||||
else:
|
||||
return False
|
||||
|
||||
|
@ -690,21 +694,9 @@ class generalizedTimeFormat(Attr):
|
|||
|
||||
def parse_value(self, gtf):
|
||||
if isinstance(gtf, str) or isinstance(gtf, unicode):
|
||||
if not ('Z' in gtf or '+' in gtf or '-' in gtf):
|
||||
self.stamp = gtf
|
||||
self.value = to_generalized_time_format(float(gtf))
|
||||
self.datetime = datetime_from_generalized_time_format(self.value)
|
||||
else:
|
||||
self.stamp = from_generalized_time_format(gtf)
|
||||
self.datetime = datetime_from_generalized_time_format(gtf)
|
||||
self.value = gtf
|
||||
elif isinstance(gtf, float):
|
||||
self.stamp = gtf
|
||||
self.value = to_generalized_time_format(gtf)
|
||||
self.datetime = datetime_from_generalized_time_format(self.value)
|
||||
self.value = datetime_from_generalized_time_format(gtf)
|
||||
elif isinstance(gtf, datetime.datetime):
|
||||
self.datetime = gtf
|
||||
self.value = datetime_to_generalized_time_format(gtf)
|
||||
self.value = gtf
|
||||
self.stamp = from_generalized_time_format(self.value)
|
||||
|
||||
@crans_attribute
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue