timedelta comparison and datetime addition: as the Python implementation
of datetime does, accept instances of subclasses too.
diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c
index c8ef3ae..e514a54 100644
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -1666,7 +1666,7 @@
{
int diff = 42; /* nonsense */
- if (PyDelta_CheckExact(other)) {
+ if (PyDelta_Check(other)) {
diff = GET_TD_DAYS(self) - GET_TD_DAYS(other);
if (diff == 0) {
diff = GET_TD_SECONDS(self) - GET_TD_SECONDS(other);
@@ -2299,7 +2299,7 @@
Py_INCREF(Py_NotImplemented);
return Py_NotImplemented;
}
- if (PyDate_CheckExact(left)) {
+ if (PyDate_Check(left)) {
/* date + ??? */
if (PyDelta_Check(right))
/* date + delta */
@@ -2328,8 +2328,8 @@
Py_INCREF(Py_NotImplemented);
return Py_NotImplemented;
}
- if (PyDate_CheckExact(left)) {
- if (PyDate_CheckExact(right)) {
+ if (PyDate_Check(left)) {
+ if (PyDate_Check(right)) {
/* date - date */
int left_ord = ymd_to_ord(GET_YEAR(left),
GET_MONTH(left),