bpo-37579: Improve equality behavior for pure Python datetime and time (GH-14726)

Returns NotImplemented for timedelta and time in __eq__ for different types in Python implementation, which matches the C implementation.

This also adds tests to enforce that these objects will fall back to the right hand side's __eq__ and/or __ne__ implementation.

bpo-37579
(cherry picked from commit e6b46aafad)

Co-authored-by: Xtreak <tir.karthi@gmail.com>
This commit is contained in:
Miss Islington (bot) 2019-07-13 06:59:37 -07:00 committed by GitHub
parent 5da83b417e
commit 143672cf02
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 2 deletions

View file

@ -733,7 +733,7 @@ class timedelta:
if isinstance(other, timedelta):
return self._cmp(other) == 0
else:
return False
return NotImplemented
def __le__(self, other):
if isinstance(other, timedelta):
@ -1310,7 +1310,7 @@ class time:
if isinstance(other, time):
return self._cmp(other, allow_mixed=True) == 0
else:
return False
return NotImplemented
def __le__(self, other):
if isinstance(other, time):