Esempio n. 1
0
    def _previewFile(self):
        """Updates the preview widgets with new models for both tab panes.

        """
        dataFrame = self._loadCSVDataFrame()
        dataFrameModel = DataFrameModel(dataFrame, filePath=self._filename)
        dataFrameModel.enableEditing(True)
        self._previewTableView.setModel(dataFrameModel)
        columnModel = dataFrameModel.columnDtypeModel()
        columnModel.changeFailed.connect(self.updateStatusBar)
        self._datatypeTableView.setModel(columnModel)
def test_flags():
    model = DataFrameModel(pandas.DataFrame([0], columns=['A']))
    index = model.index(0, 0)
    assert index.isValid()
    assert model.flags(index) == Qt.ItemIsSelectable | Qt.ItemIsEnabled

    model.enableEditing(True)
    assert model.flags(index) == Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable

    model.setDataFrame(pandas.DataFrame([True], columns=['A']))
    index = model.index(0, 0)
    model.enableEditing(True)
    assert model.flags(index) != Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable
    assert model.flags(index) == Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsUserCheckable
    def test_remove_columns_random(self, dataFrame):

        columnNames = dataFrame.columns.tolist()
        columnNames = [(i, n) for i, n in enumerate(columnNames)]

        for cycle in range(1000):
            elements = random.randint(1, len(columnNames))
            names = random.sample(columnNames, elements)
            df = dataFrame.copy()
            model = DataFrameModel(df)
            assert not model.removeDataFrameColumns(names)
            model.enableEditing(True)
            model.removeDataFrameColumns(names)

            _columnSet = set(columnNames)
            _removedSet = set(names)
            remainingColumns = _columnSet - _removedSet
            for idx, col in remainingColumns:
                assert col in model.dataFrame().columns.tolist()
Esempio n. 4
0
    def test_editing(self, dataFrame, qtbot):
        model = DataFrameModel(dataFrame)

        tableView = QtGui.QTableView()

        qtbot.addWidget(tableView)
        tableView.setModel(model)

        delegate = TextDelegate(tableView)
        createDelegate(numpy.dtype('O'), 0, tableView)
        tableView.show()

        index = model.index(0, 0)
        preedit_data = index.data()

        assert not model.editable
        model.enableEditing(True)
        tableView.edit(index)
        editor = tableView.findChildren(QtGui.QLineEdit)[0]
        qtbot.keyPress(editor, QtCore.Qt.Key_F)
        qtbot.keyPress(editor, QtCore.Qt.Key_Enter)
        QtGui.QApplication.processEvents()
        with qtbot.waitSignal(timeout=100):
            assert index.data(QtCore.Qt.DisplayRole) == 'f'