deep_equality_check

function of dascore.utils.misc source

deep_equality_check(
    obj1 ,
    obj2 ,
    visited = None,
)

Compare nested objects while handling circular references.

Supports NumPy arrays, pandas DataFrames, dictionaries, and objects with __dict__ attributes.

Parameters

Parameter Description
obj1, obj2 The objects to compare. Can be dictionaries, objects with dict,
numpy arrays, pandas DataFrames, or any other objects.
visited Set to track visited object pairs for circular reference detection.
Internal parameter used during recursion.

Returns

bool True if the objects are deeply equal, False otherwise.

Examples

import numpy as np
from dascore.utils.misc import deep_equality_check

# Basic usage
assert deep_equality_check({"a": 1}, {"a": 1})

# With numpy arrays
dict1 = {"arr": np.array([1, 2, 3])}
dict2 = {"arr": np.array([1, 2, 3])}
assert deep_equality_check(dict1, dict2)