(self,
                                    right_match_vars, lefti, righti, rightu)
return self.extra_data[:, extra_vars]
Prepare a table with extra columns that will appear in the merged
        table
Prepare a table with extra columns that will appear in the merged
        table
Prepare a table with extra columns that will appear in the merged table
def _compute_reduced_extra_data(self,
                                    right_match_vars, lefti, righti, rightu):
        """Prepare a table with extra columns that will appear in the merged
        table"""
        domain = self.data.domain
        extra_domain = self.extra_data.domain

        def var_needed(var):
            if rightu is not None and rightu.size:
                return True
            if var in right_match_vars and self.merging != self.OuterJoin:
                return False
            if var not in domain:
                return True
            both_defined = (lefti != -1) * (righti != -1)
            left_col = \
                self.data.get_column_view(var)[0][lefti[both_defined]]
            right_col = \
                self.extra_data.get_column_view(var)[0][righti[both_defined]]
            if var.is_primitive():
                left_col = left_col.astype(float)
                right_col = right_col.astype(float)
                mask_left = np.isfinite(left_col)
                mask_right = np.isfinite(right_col)
                return not (
                    np.all(mask_left == mask_right)
                    and np.all(left_col[mask_left] == right_col[mask_right]))
            else:
                return not np.all(left_col == right_col)

        extra_vars = [
            var for var in chain(extra_domain.variables, extra_domain.metas)
            if var_needed(var)]
        return self.extra_data[:, extra_vars]
def _compute_reduced_extra_data ( self , right_match_vars , lefti , righti , rightu ) : domain = self . data . domain extra_domain = self . extra_data . domain def var_needed ( var ) : if rightu is not None and rightu . size : return True if var in right_match_vars and self . merging != self . OuterJoin : return False if var not in domain : return True both_defined = ( lefti != - 1 ) * ( righti != - 1 ) left_col = self . data . get_column_view ( var ) [ 0 ] [ lefti [ both_defined ] ] right_col = self . extra_data . get_column_view ( var ) [ 0 ] [ righti [ both_defined ] ] if var . is_primitive ( ) : left_col = left_col . astype ( float ) right_col = right_col . astype ( float ) mask_left = np . isfinite ( left_col ) mask_right = np . isfinite ( right_col ) return not ( np . all ( mask_left == mask_right ) and np . all ( left_col [ mask_left ] == right_col [ mask_right ] ) ) else : return not np . all ( left_col == right_col ) extra_vars = [ var for var in chain ( extra_domain . variables , extra_domain . metas ) if var_needed ( var ) ] return self . extra_data [ : , extra_vars ]