Deep compare python objects and structures like dictionaries, lists and iterables.
pip install deepcomparer
from deepcomparer import deep_compare
class Pokemon:
def __init__(self, name):
self.name = name
user: dict = {
'name': 'ash',
'links': {
'pokehub': '@ash'
},
'pokemons': [Pokemon('pikachu')]
}
user2: dict = {
'name': 'ash',
'links': {
'pokehub': '@ash'
},
'pokemons': [Pokemon('geodude')]
}
print(deep_compare(user, user2))
# output: False
user2['pokemons'] = [Pokemon('pikachu')]
print(deep_compare(user, user2))
# output: True
from deepcomparer import deep_compare
ash_data: dict = {
'name': 'ash',
'links': {
'pokehub': '@ash'
}
}
brock_data: dict = {
'name': 'brock',
'links': {
'pokehub': '@brock'
}
}
# Over iterable structures
print(deep_compare([ash_data, brock_data], [ash_data, brock_data]))
# output: True
# Over iterable structures
print(deep_compare([ash_data, brock_data], [brock_data, ash_data]))
# output: False
# Over unsorted iterable structures
print(deep_compare([ash_data, brock_data], [brock_data, ash_data], ignore_order=True))
# output: True