@@ -1322,10 +1322,13 @@ def _diff_booleans(self, level, local_tree=None):
1322
1322
if level .t1 != level .t2 :
1323
1323
self ._report_result ('values_changed' , level , local_tree = local_tree )
1324
1324
1325
- def _diff_numbers (self , level , local_tree = None ):
1325
+ def _diff_numbers (self , level , local_tree = None , report_type_change = True ):
1326
1326
"""Diff Numbers"""
1327
- t1_type = "number" if self .ignore_numeric_type_changes else level .t1 .__class__ .__name__
1328
- t2_type = "number" if self .ignore_numeric_type_changes else level .t2 .__class__ .__name__
1327
+ if report_type_change :
1328
+ t1_type = "number" if self .ignore_numeric_type_changes else level .t1 .__class__ .__name__
1329
+ t2_type = "number" if self .ignore_numeric_type_changes else level .t2 .__class__ .__name__
1330
+ else :
1331
+ t1_type = t2_type = ''
1329
1332
1330
1333
if self .math_epsilon is not None :
1331
1334
if not is_close (level .t1 , level .t2 , abs_tol = self .math_epsilon ):
@@ -1503,8 +1506,8 @@ def _diff(self, level, parents_ids=frozenset(), _original_type=None, local_tree=
1503
1506
if self ._skip_this (level ):
1504
1507
return
1505
1508
1509
+ report_type_change = True
1506
1510
if get_type (level .t1 ) != get_type (level .t2 ):
1507
- report_type_change = True
1508
1511
for type_group in self .ignore_type_in_groups :
1509
1512
if self .type_check_func (level .t1 , type_group ) and self .type_check_func (level .t2 , type_group ):
1510
1513
report_type_change = False
@@ -1533,7 +1536,7 @@ def _diff(self, level, parents_ids=frozenset(), _original_type=None, local_tree=
1533
1536
self ._diff_uuids (level , local_tree = local_tree )
1534
1537
1535
1538
elif isinstance (level .t1 , numbers ):
1536
- self ._diff_numbers (level , local_tree = local_tree )
1539
+ self ._diff_numbers (level , local_tree = local_tree , report_type_change = report_type_change )
1537
1540
1538
1541
elif isinstance (level .t1 , Mapping ):
1539
1542
self ._diff_dict (level , parents_ids , local_tree = local_tree )
0 commit comments