@@ -83,6 +83,10 @@ def __eq__(self, other: DsCompatible) -> Self: # type:ignore[override]
83
83
def __ne__ (self , other : DsCompatible ) -> Self : # type:ignore[override]
84
84
return self ._binary_op (other , nputils .array_ne )
85
85
86
+ # When __eq__ is defined but __hash__ is not, then an object is unhashable,
87
+ # and it should be declared as follows:
88
+ __hash__ : None # type:ignore[assignment]
89
+
86
90
def __radd__ (self , other : DsCompatible ) -> Self :
87
91
return self ._binary_op (other , operator .add , reflexive = True )
88
92
@@ -291,6 +295,10 @@ def __eq__(self, other: DaCompatible) -> Self: # type:ignore[override]
291
295
def __ne__ (self , other : DaCompatible ) -> Self : # type:ignore[override]
292
296
return self ._binary_op (other , nputils .array_ne )
293
297
298
+ # When __eq__ is defined but __hash__ is not, then an object is unhashable,
299
+ # and it should be declared as follows:
300
+ __hash__ : None # type:ignore[assignment]
301
+
294
302
def __radd__ (self , other : DaCompatible ) -> Self :
295
303
return self ._binary_op (other , operator .add , reflexive = True )
296
304
@@ -643,6 +651,10 @@ def __ne__(self, other: VarCompatible) -> Self:
643
651
def __ne__ (self , other : VarCompatible ) -> Self | T_DataArray :
644
652
return self ._binary_op (other , nputils .array_ne )
645
653
654
+ # When __eq__ is defined but __hash__ is not, then an object is unhashable,
655
+ # and it should be declared as follows:
656
+ __hash__ : None # type:ignore[assignment]
657
+
646
658
def __radd__ (self , other : VarCompatible ) -> Self :
647
659
return self ._binary_op (other , operator .add , reflexive = True )
648
660
@@ -851,6 +863,10 @@ def __eq__(self, other: GroupByCompatible) -> Dataset: # type:ignore[override]
851
863
def __ne__ (self , other : GroupByCompatible ) -> Dataset : # type:ignore[override]
852
864
return self ._binary_op (other , nputils .array_ne )
853
865
866
+ # When __eq__ is defined but __hash__ is not, then an object is unhashable,
867
+ # and it should be declared as follows:
868
+ __hash__ : None # type:ignore[assignment]
869
+
854
870
def __radd__ (self , other : GroupByCompatible ) -> Dataset :
855
871
return self ._binary_op (other , operator .add , reflexive = True )
856
872
@@ -973,6 +989,10 @@ def __eq__(self, other: T_Xarray) -> T_Xarray: # type:ignore[override]
973
989
def __ne__ (self , other : T_Xarray ) -> T_Xarray : # type:ignore[override]
974
990
return self ._binary_op (other , nputils .array_ne )
975
991
992
+ # When __eq__ is defined but __hash__ is not, then an object is unhashable,
993
+ # and it should be declared as follows:
994
+ __hash__ : None # type:ignore[assignment]
995
+
976
996
def __radd__ (self , other : T_Xarray ) -> T_Xarray :
977
997
return self ._binary_op (other , operator .add , reflexive = True )
978
998
0 commit comments