示例#1
0
    def __init__(self, parts):
        super(GuiExtractor, self).__init__()

        self.ui = extractorscreen.Ui_Dialog()
        self.ui.setupUi(self)

        self._selectedparts = []

        self.ui.label.setText(extrans(u"Select the parts you want to extract"))
        self._model = QtGui.QStandardItemModel()
        self.ui.listView.setModel(self._model)
        self.ui.listView.setFixedSize(300, 400)

        for p in parts:
            item = QtGui.QStandardItem('{}'.format(p))
            item.setCheckState(QtCore.Qt.Unchecked)
            item.setCheckable(True)
            item.setEditable(False)
            self._model.appendRow(item)

        self.ui.buttonBox.accepted.connect(self._accept)
        self.ui.buttonBox.rejected.connect(self.reject)

        self._checkbox = []

        self.setWindowTitle(extrans(u"Data extraction"))
示例#2
0
    def __init__(self, parts):
        super(GuiExtractor, self).__init__()

        self.ui = extractorscreen.Ui_Dialog()
        self.ui.setupUi(self)

        self._selectedparts = []

        self.ui.label.setText(extrans(u"Select the parts you want to extract"))
        self._model = QtGui.QStandardItemModel()
        self.ui.listView.setModel(self._model)
        self.ui.listView.setFixedSize(300, 400)

        for p in parts:
            item = QtGui.QStandardItem('{}'.format(p))
            item.setCheckState(QtCore.Qt.Unchecked)
            item.setCheckable(True)
            item.setEditable(False)
            self._model.appendRow(item)

        self.ui.buttonBox.accepted.connect(self._accept)
        self.ui.buttonBox.rejected.connect(self.reject)

        self._checkbox = []

        self.setWindowTitle(extrans(u"Data extraction"))
示例#3
0
    def _accept(self):
        for ligne in range(self._model.rowCount()):
            item = self._model.item(ligne)
            if item.checkState() == QtCore.Qt.Checked:
                self._selectedparts.append(str(item.text()))

        if not self._selectedparts:
            QtGui.QMessageBox.critical(
                self, extrans(u"Error"),
                extrans(u"At least one part should be selected for extraction")
            )
            return

        self._dirout = str(QtGui.QFileDialog.getExistingDirectory(
            self, extrans(u"Please select the directory in which to extract "
                          u"the data"))
        )
        if not self._dirout:
            return

        self.accept()
示例#4
0
    def _accept(self):
        for ligne in range(self._model.rowCount()):
            item = self._model.item(ligne)
            if item.checkState() == QtCore.Qt.Checked:
                self._selectedparts.append(str(item.text()))

        if not self._selectedparts:
            QtGui.QMessageBox.critical(
                self, extrans(u"Error"),
                extrans(
                    u"At least one part should be selected for extraction"))
            return

        self._dirout = str(
            QtGui.QFileDialog.getExistingDirectory(
                self,
                extrans(u"Please select the directory in which to extract "
                        u"the data")))
        if not self._dirout:
            return

        self.accept()
示例#5
0
def extractor():
    """
    Script to extract data from an le2m sqlite file to a csv file
    :return:
    """
    extractorutil.create_logger()
    logger = logging.getLogger("extractor")

    filebase = str(QtGui.QFileDialog.getOpenFileName(
        None, extrans(u"Please select the sqlite database you want to extract"),
        "", u"sqlite (*.sqlite)"))
    if not filebase:
        if __name__ == "__main__":
            sys.exit(0)
        else:
            return

    database = sqlite3.connect(filebase)
    parts = get_parts(database)
    partslist = get_splittedparts(parts)

    screen = GuiExtractor(partslist)
    if not screen.exec_():
        if __name__ == "__main__":
            sys.exit(0)
        else:
            return

    dirout, partsextract = screen.get_extractinfos()

    partsdata = dict()
    for p in partsextract:
        partsdata[p] = get_partdata(database, p)
    datatemp = partsdata.values()
    data = pd.DataFrame(datatemp[0])
    nbparts = len(datatemp)
    if nbparts > 1:
        for i in range(1, nbparts):
            data = pd.merge(data, datatemp[i], on="joueur")

    sessions = get_partdata(database, "sessions")
    base = get_partdata(database, "partie_base")

    data.to_csv(os.path.join(dirout, "data.csv"), sep=";", encoding="utf-8",
                na_rep=None, index=False)
    sessions.to_csv(os.path.join(dirout, "sessions.csv"), sep=";",
                    encoding="utf-8", na_rep=False, index=False)
    base.to_csv(os.path.join(dirout, "joueurs.csv"), sep=";", encoding="utf-8",
                na_rep=False, index=False)

    QtGui.QMessageBox.information(
        None, extrans(u"Sucess"),
        extrans(u"Data successfully extracted to {dirout}").format(
            dirout=dirout))
    logger.info(extrans(u"Data successfully extracted to {dirout}").format(
        dirout=dirout))

    # if the function has been launched as a script then exit
    if __name__ == "__main__":
        sys.exit(0)
    else:
        return
示例#6
0
def extractor():
    """
    Script to extract data from an le2m sqlite file to a csv file.
    Open a QtDialog.
    :return:
    """
    extractorutil.create_logger()
    logger = logging.getLogger("extractor")

    filebase = str(QtGui.QFileDialog.getOpenFileName(
        None, extrans(u"Please select the sqlite database you want to extract"),
        "", u"sqlite (*.sqlite)"))
    if not filebase:
        if __name__ == "__main__":
            sys.exit(0)
        else:
            return

    database = sqlite3.connect(filebase)
    parts = get_parts(database)
    partslist = get_splittedparts(parts)

    screen = GuiExtractor(partslist)
    if not screen.exec_():
        if __name__ == "__main__":
            sys.exit(0)
        else:
            return

    dirout, partsextract = screen.get_extractinfos()

    partsdata = dict()
    for p in partsextract:
        partsdata[p] = get_partdata(database, p)
    datatemp = partsdata.values()
    data = pd.DataFrame(datatemp[0])
    nbparts = len(datatemp)
    if nbparts > 1:
        for i in range(1, nbparts):
            data = pd.merge(data, datatemp[i], on=["session", "joueur"])

    sessions = get_partdata(database, "sessions")
    base = get_partdata(database, "partie_base")

    data.to_csv(os.path.join(dirout, "data.csv"), sep=";", encoding="utf-8",
                na_rep=None, index=False)
    sessions.to_csv(os.path.join(dirout, "sessions.csv"), sep=";",
                    encoding="utf-8", na_rep=False, index=False)
    base.to_csv(os.path.join(dirout, "joueurs.csv"), sep=";", encoding="utf-8",
                na_rep=False, index=False)

    QtGui.QMessageBox.information(
        None, extrans(u"Sucess"),
        extrans(u"Data successfully extracted to {dirout}").format(
            dirout=dirout))
    logger.info(extrans(u"Data successfully extracted to {dirout}").format(
        dirout=dirout))

    # if the function has been launched as a script then exit
    if __name__ == "__main__":
        sys.exit(0)
    else:
        return