aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/_pydatetime.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/_pydatetime.py')
-rw-r--r--Lib/_pydatetime.py35
1 files changed, 11 insertions, 24 deletions
diff --git a/Lib/_pydatetime.py b/Lib/_pydatetime.py
index 54c12d3b2f3..b7d569cc417 100644
--- a/Lib/_pydatetime.py
+++ b/Lib/_pydatetime.py
@@ -556,10 +556,6 @@ def _check_tzinfo_arg(tz):
if tz is not None and not isinstance(tz, tzinfo):
raise TypeError("tzinfo argument must be None or of a tzinfo subclass")
-def _cmperror(x, y):
- raise TypeError("can't compare '%s' to '%s'" % (
- type(x).__name__, type(y).__name__))
-
def _divide_and_round(a, b):
"""divide a by b and round result to the nearest integer
@@ -1113,32 +1109,33 @@ class date:
# Comparisons of date objects with other.
def __eq__(self, other):
- if isinstance(other, date):
+ if isinstance(other, date) and not isinstance(other, datetime):
return self._cmp(other) == 0
return NotImplemented
def __le__(self, other):
- if isinstance(other, date):
+ if isinstance(other, date) and not isinstance(other, datetime):
return self._cmp(other) <= 0
return NotImplemented
def __lt__(self, other):
- if isinstance(other, date):
+ if isinstance(other, date) and not isinstance(other, datetime):
return self._cmp(other) < 0
return NotImplemented
def __ge__(self, other):
- if isinstance(other, date):
+ if isinstance(other, date) and not isinstance(other, datetime):
return self._cmp(other) >= 0
return NotImplemented
def __gt__(self, other):
- if isinstance(other, date):
+ if isinstance(other, date) and not isinstance(other, datetime):
return self._cmp(other) > 0
return NotImplemented
def _cmp(self, other):
assert isinstance(other, date)
+ assert not isinstance(other, datetime)
y, m, d = self._year, self._month, self._day
y2, m2, d2 = other._year, other._month, other._day
return _cmp((y, m, d), (y2, m2, d2))
@@ -2137,42 +2134,32 @@ class datetime(date):
def __eq__(self, other):
if isinstance(other, datetime):
return self._cmp(other, allow_mixed=True) == 0
- elif not isinstance(other, date):
- return NotImplemented
else:
- return False
+ return NotImplemented
def __le__(self, other):
if isinstance(other, datetime):
return self._cmp(other) <= 0
- elif not isinstance(other, date):
- return NotImplemented
else:
- _cmperror(self, other)
+ return NotImplemented
def __lt__(self, other):
if isinstance(other, datetime):
return self._cmp(other) < 0
- elif not isinstance(other, date):
- return NotImplemented
else:
- _cmperror(self, other)
+ return NotImplemented
def __ge__(self, other):
if isinstance(other, datetime):
return self._cmp(other) >= 0
- elif not isinstance(other, date):
- return NotImplemented
else:
- _cmperror(self, other)
+ return NotImplemented
def __gt__(self, other):
if isinstance(other, datetime):
return self._cmp(other) > 0
- elif not isinstance(other, date):
- return NotImplemented
else:
- _cmperror(self, other)
+ return NotImplemented
def _cmp(self, other, allow_mixed=False):
assert isinstance(other, datetime)