deep_equality_check

function of dascore.utils.misc source

deep_equality_check(
    obj1 ,
    obj2 ,
    visited = None,
)

Deep equality comparison for dictionaries and nested objects.

Handles circular references, numpy arrays, pandas DataFrames, and objects with dict attributes. This function provides comprehensive equality checking that goes beyond Python’s default equality operators.

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)