3
3
from qtpy .QtWidgets import (QWidget , QVBoxLayout , QListWidget , QSplitter , QDialogButtonBox , QHBoxLayout ,
4
4
QDialog , QLabel , QCheckBox )
5
5
6
- from larray import LArray , Session , Axis , X , stack , full_like , nan , zeros_like , isnan , larray_nan_equal , nan_equal
6
+ from larray import (LArray , Session , Axis , X , stack , full , full_like , zeros_like ,
7
+ nan , isnan , larray_nan_equal , nan_equal )
7
8
from larray_editor .utils import ima , replace_inf , _
8
9
from larray_editor .arraywidget import ArrayEditorWidget
9
10
@@ -43,8 +44,8 @@ def set_data(self, arrays, stack_axis):
43
44
try :
44
45
self .array = stack (arrays , stack_axis )
45
46
array0 = self .array [stack_axis .i [0 ]]
46
- except :
47
- self .array = LArray ([ np . nan ] )
47
+ except Exception as e :
48
+ self .array = LArray (str ( e ) )
48
49
array0 = self .array
49
50
try :
50
51
self .isequal = nan_equal (self .array , array0 )
@@ -68,18 +69,20 @@ def set_data(self, arrays, stack_axis):
68
69
self .bg_value = full_like (self .array , 0.5 )
69
70
except TypeError :
70
71
# str/object array
71
- maxabsreldiff = np . nan
72
+ maxabsreldiff = nan
72
73
self .bg_value = full_like (self .array , 0.5 )
73
74
74
75
self .maxdiff_label .setText (str (maxabsreldiff ))
75
76
self .display (self .diff_checkbox .isChecked ())
76
77
77
78
def display (self , diff_only ):
78
- if diff_only :
79
- row_filter = (~ self .isequal ).any (self .stack_axis .name )
80
- self .arraywidget .set_data (self .array [row_filter ], bg_value = self .bg_value [row_filter ])
81
- else :
82
- self .arraywidget .set_data (self .array , bg_value = self .bg_value )
79
+ array = self .array
80
+ bg_value = self .bg_value
81
+ if diff_only and self .isequal .ndim > 0 :
82
+ row_filter = (~ self .isequal ).any (self .stack_axis )
83
+ array = array [row_filter ]
84
+ bg_value = bg_value [row_filter ]
85
+ self .arraywidget .set_data (array , bg_value = bg_value )
83
86
84
87
85
88
class ArrayComparator (QDialog ):
0 commit comments