torch_ecg.utils.dicts_equal

torch_ecg.utils.dicts_equal(d1: dict, d2: dict, allow_array_diff_types: bool = True) bool[source]

Determine if two dicts are equal.

Parameters
  • d1 (dict) – The two dicts to compare equality.

  • d2 (dict) – The two dicts to compare equality.

  • allow_array_diff_types (bool, default True) – Whether allow the equality of two arrays with different types, including list, tuple, numpy.ndarray, torch.Tensor, NOT including pandas.DataFrame, pandas.Series.

Returns

True if d1 equals d2, False otherwise.

Return type

bool

Note

The existence of ndarray, Tensor, DataFrame and Series would probably cause errors when directly use the default __eq__ method of dict For example:

>>> {"a": np.array([1,2])} == {"a": np.array([1,2])}
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Example

>>> d1 = {"a": pd.DataFrame([{"hehe":1,"haha":2}])[["haha","hehe"]]}
>>> d2 = {"a": pd.DataFrame([{"hehe":1,"haha":2}])[["hehe","haha"]]}
>>> dicts_equal(d1, d2)
True