Skip to content

Commit 0474be9

Browse files
committed
Regenerate _typed_ops after adding "unhashable"
1 parent a468d08 commit 0474be9

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

xarray/core/_typed_ops.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ def __eq__(self, other: DsCompatible) -> Self: # type:ignore[override]
8383
def __ne__(self, other: DsCompatible) -> Self: # type:ignore[override]
8484
return self._binary_op(other, nputils.array_ne)
8585

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+
8690
def __radd__(self, other: DsCompatible) -> Self:
8791
return self._binary_op(other, operator.add, reflexive=True)
8892

@@ -291,6 +295,10 @@ def __eq__(self, other: DaCompatible) -> Self: # type:ignore[override]
291295
def __ne__(self, other: DaCompatible) -> Self: # type:ignore[override]
292296
return self._binary_op(other, nputils.array_ne)
293297

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+
294302
def __radd__(self, other: DaCompatible) -> Self:
295303
return self._binary_op(other, operator.add, reflexive=True)
296304

@@ -643,6 +651,10 @@ def __ne__(self, other: VarCompatible) -> Self:
643651
def __ne__(self, other: VarCompatible) -> Self | T_DataArray:
644652
return self._binary_op(other, nputils.array_ne)
645653

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+
646658
def __radd__(self, other: VarCompatible) -> Self:
647659
return self._binary_op(other, operator.add, reflexive=True)
648660

@@ -851,6 +863,10 @@ def __eq__(self, other: GroupByCompatible) -> Dataset: # type:ignore[override]
851863
def __ne__(self, other: GroupByCompatible) -> Dataset: # type:ignore[override]
852864
return self._binary_op(other, nputils.array_ne)
853865

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+
854870
def __radd__(self, other: GroupByCompatible) -> Dataset:
855871
return self._binary_op(other, operator.add, reflexive=True)
856872

@@ -973,6 +989,10 @@ def __eq__(self, other: T_Xarray) -> T_Xarray: # type:ignore[override]
973989
def __ne__(self, other: T_Xarray) -> T_Xarray: # type:ignore[override]
974990
return self._binary_op(other, nputils.array_ne)
975991

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+
976996
def __radd__(self, other: T_Xarray) -> T_Xarray:
977997
return self._binary_op(other, operator.add, reflexive=True)
978998

0 commit comments

Comments
 (0)