def _proj_equal(a, b, check_active=True):
 equal = (((a['active'] == b['active']) or (not check_active)) and (a['kind'] == b['kind']) and (a['desc'] == b['desc']) and (a['data']['col_names'] == b['data']['col_names']) and (a['data']['row_names'] == b['data']['row_names']) and (a['data']['ncol'] == b['data']['ncol']) and (a['data']['nrow'] == b['data']['nrow']) and np.all((a['data']['data'] == b['data']['data'])))
 return equal

def _proj_equal ( a , b , check_active = True ) : equal = ( ( ( a [ 'active' ] == b [ 'active' ] ) or ( not check_active ) ) and ( a [ 'kind' ] == b [ 'kind' ] ) and ( a [ 'desc' ] == b [ 'desc' ] ) and ( a [ 'data' ] [ 'col_names' ] == b [ 'data' ] [ 'col_names' ] ) and ( a [ 'data' ] [ 'row_names' ] == b [ 'data' ] [ 'row_names' ] ) and ( a [ 'data' ] [ 'ncol' ] == b [ 'data' ] [ 'ncol' ] ) and ( a [ 'data' ] [ 'nrow' ] == b [ 'data' ] [ 'nrow' ] ) and np . all ( ( a [ 'data' ] [ 'data' ] == b [ 'data' ] [ 'data' ] ) ) ) return equal
test if two projectors are equal .