mirror of
https://github.com/python/cpython.git
synced 2025-09-12 11:46:52 +00:00
Merged revisions 60990-61002 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r60990 | eric.smith | 2008-02-23 17:05:26 +0100 (Sat, 23 Feb 2008) | 1 line Removed duplicate Py_CHARMASK define. It's already defined in Python.h. ........ r60991 | andrew.kuchling | 2008-02-23 17:23:05 +0100 (Sat, 23 Feb 2008) | 4 lines #1330538: Improve comparison of xmlrpclib.DateTime and datetime instances. Remove automatic handling of datetime.date and datetime.time. This breaks backward compatibility, but python-dev discussion was strongly against this automatic conversion; see the bug for a link. ........ r60994 | andrew.kuchling | 2008-02-23 17:39:43 +0100 (Sat, 23 Feb 2008) | 1 line #835521: Add index entries for various pickle-protocol methods and attributes ........ r60995 | andrew.kuchling | 2008-02-23 18:10:46 +0100 (Sat, 23 Feb 2008) | 2 lines #1433694: minidom's .normalize() failed to set .nextSibling for last element. Fix by Malte Helmert ........ r61000 | christian.heimes | 2008-02-23 18:40:11 +0100 (Sat, 23 Feb 2008) | 1 line Patch #2167 from calvin: Remove unused imports ........ r61001 | christian.heimes | 2008-02-23 18:42:31 +0100 (Sat, 23 Feb 2008) | 1 line Patch #1957: syslogmodule: Release GIL when calling syslog(3) ........ r61002 | christian.heimes | 2008-02-23 18:52:07 +0100 (Sat, 23 Feb 2008) | 2 lines Issue #2051 and patch from Alexander Belopolsky: Permission for pyc and pyo files are inherited from the py file. ........
This commit is contained in:
parent
5abe9125f9
commit
05e8be17fd
161 changed files with 160 additions and 288 deletions
|
@ -298,13 +298,6 @@ class DateTime:
|
|||
if datetime and isinstance(value, datetime.datetime):
|
||||
self.value = value.strftime("%Y%m%dT%H:%M:%S")
|
||||
return
|
||||
if datetime and isinstance(value, datetime.date):
|
||||
self.value = value.strftime("%Y%m%dT%H:%M:%S")
|
||||
return
|
||||
if datetime and isinstance(value, datetime.time):
|
||||
today = datetime.datetime.now().strftime("%Y%m%d")
|
||||
self.value = value.strftime(today+"T%H:%M:%S")
|
||||
return
|
||||
if not isinstance(value, (tuple, time.struct_time)):
|
||||
if value == 0:
|
||||
value = time.time()
|
||||
|
@ -312,15 +305,57 @@ class DateTime:
|
|||
value = time.strftime("%Y%m%dT%H:%M:%S", value)
|
||||
self.value = value
|
||||
|
||||
def __eq__(self, other):
|
||||
def make_comparable(self, other):
|
||||
if isinstance(other, DateTime):
|
||||
other = other.value
|
||||
return self.value == other
|
||||
s = self.value
|
||||
o = other.value
|
||||
elif datetime and isinstance(other, datetime.datetime):
|
||||
s = self.value
|
||||
o = other.strftime("%Y%m%dT%H:%M:%S")
|
||||
elif isinstance(other, (str, unicode)):
|
||||
s = self.value
|
||||
o = other
|
||||
elif hasattr(other, "timetuple"):
|
||||
s = self.timetuple()
|
||||
o = other.timetuple()
|
||||
else:
|
||||
otype = (hasattr(other, "__class__")
|
||||
and other.__class__.__name__
|
||||
or type(other))
|
||||
raise TypeError("Can't compare %s and %s" %
|
||||
(self.__class__.__name__, otype))
|
||||
return s, o
|
||||
|
||||
def __lt__(self, other):
|
||||
s, o = self.make_comparable(other)
|
||||
return s < o
|
||||
|
||||
def __le__(self, other):
|
||||
s, o = self.make_comparable(other)
|
||||
return s <= o
|
||||
|
||||
def __gt__(self, other):
|
||||
s, o = self.make_comparable(other)
|
||||
return s > o
|
||||
|
||||
def __ge__(self, other):
|
||||
s, o = self.make_comparable(other)
|
||||
return s >= o
|
||||
|
||||
def __eq__(self, other):
|
||||
s, o = self.make_comparable(other)
|
||||
return s == o
|
||||
|
||||
def __ne__(self, other):
|
||||
if isinstance(other, DateTime):
|
||||
other = other.value
|
||||
return self.value != other
|
||||
s, o = self.make_comparable(other)
|
||||
return s != o
|
||||
|
||||
def timetuple(self):
|
||||
return time.strptime(self.value, "%Y%m%dT%H:%M:%S")
|
||||
|
||||
def __cmp__(self, other):
|
||||
s, o = self.make_comparable(other)
|
||||
return cmp(s, o)
|
||||
|
||||
##
|
||||
# Get date/time value.
|
||||
|
@ -669,19 +704,6 @@ class Marshaller:
|
|||
write("</dateTime.iso8601></value>\n")
|
||||
dispatch[datetime.datetime] = dump_datetime
|
||||
|
||||
def dump_date(self, value, write):
|
||||
write("<value><dateTime.iso8601>")
|
||||
write(value.strftime("%Y%m%dT00:00:00"))
|
||||
write("</dateTime.iso8601></value>\n")
|
||||
dispatch[datetime.date] = dump_date
|
||||
|
||||
def dump_time(self, value, write):
|
||||
write("<value><dateTime.iso8601>")
|
||||
write(datetime.datetime.now().date().strftime("%Y%m%dT"))
|
||||
write(value.strftime("%H:%M:%S"))
|
||||
write("</dateTime.iso8601></value>\n")
|
||||
dispatch[datetime.time] = dump_time
|
||||
|
||||
def dump_instance(self, value, write):
|
||||
# check for special wrappers
|
||||
if value.__class__ in WRAPPERS:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue