@@ -1092,22 +1092,40 @@ def to_w3c_string(self):
10921092
10931093 # Comparisons
10941094 def __eq__ (self , other ):
1095- return self ._datetime == self ._get_datetime (other )
1095+ try :
1096+ return self ._datetime == self ._get_datetime (other )
1097+ except ValueError :
1098+ return NotImplemented
10961099
10971100 def __ne__ (self , other ):
1098- return self ._datetime != self ._get_datetime (other )
1101+ try :
1102+ return self ._datetime != self ._get_datetime (other )
1103+ except ValueError :
1104+ return NotImplemented
10991105
11001106 def __gt__ (self , other ):
1101- return self ._datetime > self ._get_datetime (other )
1107+ try :
1108+ return self ._datetime > self ._get_datetime (other )
1109+ except ValueError :
1110+ return NotImplemented
11021111
11031112 def __ge__ (self , other ):
1104- return self ._datetime >= self ._get_datetime (other )
1113+ try :
1114+ return self ._datetime >= self ._get_datetime (other )
1115+ except ValueError :
1116+ return NotImplemented
11051117
11061118 def __lt__ (self , other ):
1107- return self ._datetime < self ._get_datetime (other )
1119+ try :
1120+ return self ._datetime < self ._get_datetime (other )
1121+ except ValueError :
1122+ return NotImplemented
11081123
11091124 def __le__ (self , other ):
1110- return self ._datetime <= self ._get_datetime (other )
1125+ try :
1126+ return self ._datetime <= self ._get_datetime (other )
1127+ except ValueError :
1128+ return NotImplemented
11111129
11121130 def between (self , dt1 , dt2 , equal = True ):
11131131 """
@@ -2110,20 +2128,6 @@ def _get_datetime(self, value, pendulum=False):
21102128
21112129 return value if not pendulum else Pendulum .instance (value )
21122130
2113- if isinstance (value , (int , float )):
2114- d = Pendulum .create_from_timestamp (value , self .timezone )
2115- if pendulum :
2116- return d
2117-
2118- return d ._datetime
2119-
2120- if isinstance (value , basestring ):
2121- d = Pendulum .parse (value , tz = self .timezone )
2122- if pendulum :
2123- return d
2124-
2125- return d ._datetime
2126-
21272131 raise ValueError ('Invalid datetime "{}"' .format (value ))
21282132
21292133 def for_json (self ):
@@ -2138,10 +2142,16 @@ def __sub__(self, other):
21382142 if isinstance (other , datetime .timedelta ):
21392143 return self .subtract_timedelta (other )
21402144
2141- return self ._get_datetime (other , True ).diff (self , False )
2145+ try :
2146+ return self ._get_datetime (other , True ).diff (self , False )
2147+ except ValueError :
2148+ return NotImplemented
21422149
21432150 def __rsub__ (self , other ):
2144- return self .diff (self ._get_datetime (other , True ), False )
2151+ try :
2152+ return self .diff (self ._get_datetime (other , True ), False )
2153+ except ValueError :
2154+ return NotImplemented
21452155
21462156 def __add__ (self , other ):
21472157 if not isinstance (other , datetime .timedelta ):
0 commit comments