Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def __diff(self, level, parents_ids=frozenset({})):
"""The main diff method"""
if level.t1 is level.t2:
return
if self.__skip_this(level):
return
if get_type(level.t1) != get_type(level.t2):
report_type_change = True
for type_group in self.ignore_type_in_groups:
if self.type_check_func(level.t1, type_group) and self.type_check_func(level.t2, type_group):
report_type_change = False
break
if report_type_change:
self.__diff_types(level)
return
if self.ignore_nan_inequality and isinstance(level.t1, float) and str(level.t1) == str(level.t2) == 'nan':
return
if isinstance(level.t1, strings):
self.__diff_str(level)
elif isinstance(level.t1, numbers):