def validate_data()

in bindings/jupyter/mlvis/widget_ext/Manifold.py [0:0]


    def validate_data(self, data, give_exception=False):
        if not isinstance(data, dict):
            return False if not give_exception else (False, Exception('Data must in dict.'))
        for key in ['x', 'yPred', 'yTrue']:
            if key not in data:
                return False if not give_exception else (False, Exception('Missing data attribute ' + key + '.'))
        for key in data:
            if key not in ['x', 'yPred', 'yTrue']:
                return False if not give_exception else (False, UserWarning('Unrecognized data attribute ' + key + '.'))
        for key in ['x', 'yTrue']:
            if not isinstance(data[key], list) and not isinstance(data[key], np.ndarray) and not isinstance(data[key], pd.DataFrame):
                return False if not give_exception else (False, Exception(key + ' must be a list/ndarray/dataframe.'))
        if not isinstance(data['yPred'], list) and not isinstance(data['yPred'], np.ndarray):
            return False if not give_exception else (False, Exception('yPred must be a list/ndarray.'))
        for key in ['x', 'yPred', 'yTrue']:
            if len(data[key]) == 0:
                return False if not give_exception else (False, Exception(key + ' can not be empty.'))
        for l in data['yPred']:
            if not (isinstance(l, list) or isinstance(l, pd.DataFrame)):
                return False if not give_exception else (False, Exception('Every item in yPred must be list/DataFrame.'))
        return True if not give_exception else (True, None)