コード例 #1
0
    def showImportFinishedFrame(self):
        self.controller.skippedRows = 0
        self.controller.importedRows = 0
        self.controller.filesNotImported = 0
        self.controller.filesImported = 0
        self.controller.clearNewTrades()
        if self.controller.getFilesPath():
            # import files
            for file in self.controller.getFilesPath():
                content = importer.loadTradesFromFile(file)
                if not content.empty:
                    tradeListTemp, feeListTemp, match, skippedRows = importer.convertTradesSingle(
                        models.IMPORT_MODEL_LIST, content, file)
                    # check import
                    if match:
                        self.controller.newTradesBuffer.mergeTradeList(
                            tradeListTemp)
                        self.controller.newTradesBuffer.mergeTradeList(
                            feeListTemp)
                        self.controller.importedRows += len(
                            tradeListTemp.trades)
                        self.controller.skippedRows += skippedRows
                        self.controller.filesImported += 1
                    else:
                        self.controller.filesNotImported += 1
                else:
                    self.controller.filesNotImported += 1
            if not (self.controller.getNewTrades().isEmpty()):
                self.controller.showFrame(
                    self.controller.IMPORTFINISHPAGEINDEX)
            else:
                localLogger.info('please select at least one valid file')

        else:
            localLogger.info('please select at least one valid file')
コード例 #2
0
 def showFile(self, index):
     # display filename
     allFilesPath = self.controller.getFilesPath()
     self.fileNameLabel.setText(os.path.basename(allFilesPath[index]))
     # import file
     content = importer.loadTradesFromFile(allFilesPath[index])
     # convert imported file to tradeList
     if not content.empty:
         importedTradeList, importedFeeList, match, skippedRows = importer.convertTradesSingle(
             models.IMPORT_MODEL_LIST, content, allFilesPath[index])
         # check import
         if match:
             self.tradeListTemp.copyFromTradeList(importedTradeList)
             self.tradeListTemp.mergeTradeList(importedFeeList)
             importedRows = len(self.tradeListTemp.trades)
             self.controller.importedRows += importedRows
             self.controller.skippedRows += skippedRows
             self.controller.filesImported += 1
             self.infoLabel.setText('header is valid, ' + str(skippedRows) +
                                    ' rows skipped, ' + str(importedRows) +
                                    ' rows imported')
         else:
             self.controller.filesNotImported += 1
             self.infoLabel.setText('unknowen header, no trades imported')
     else:
         self.controller.filesNotImported += 1
         self.infoLabel.setText('fileimport failed')
コード例 #3
0
    def importFromApi(self, api, key, secret, start, end):
        self.controller.skippedRows = 0
        self.controller.importedRows = 0
        self.controller.filesNotImported = 0
        self.controller.filesImported = 0
        self.controller.clearNewTrades()
        content = apiImport.getApiHistory(api, key, secret, start, end)
        if not content.empty:
            tradeListTemp, feeListTemp, match, skippedRows = importer.convertTradesSingle(
                models.IMPORT_MODEL_LIST, content, api)
            # check import
            if match:
                self.controller.newTradesBuffer.mergeTradeList(tradeListTemp)
                self.controller.newTradesBuffer.mergeTradeList(feeListTemp)
                self.controller.importedRows += len(tradeListTemp.trades)
                self.controller.skippedRows += skippedRows
                self.controller.filesImported += 1

                if not (self.controller.getNewTrades().isEmpty()):
                    self.controller.showFrame(
                        self.controller.IMPORTFINISHPAGEINDEX)
                else:
                    localLogger.info("no valid data received from api")
            else:
                localLogger.info("data from API could not be converted")
        else:
            localLogger.info("no data received from api")
コード例 #4
0
ファイル: QTradeTable.py プロジェクト: 2martin2/koalafolio
 def restoreTrades(self):
     if self.dataPath:
         # try to restore data from previous session
         try:
             if os.path.isfile(os.path.join(self.dataPath, 'Trades.csv')):
                 content = importer.loadTradesFromFile(os.path.join(self.dataPath, 'Trades.csv'))
                 if not content.empty:
                     tradeListTemp, feeListTemp, match, skippedRows = importer.convertTradesSingle(
                         models.IMPORT_MODEL_LIST, content, os.path.join(self.dataPath, 'Trades.csv'))
                     # check import
                     if match:
                         self.mergeTradeList(tradeListTemp)
                         self.mergeTradeList(feeListTemp)
                         importedRows = len(tradeListTemp.trades) + len(feeListTemp.trades)
                         localLogger.info('imported trades: ' + str(importedRows)
                                          + '; skipped trades: ' + str(skippedRows))
         except Exception as ex:
             localLogger.warning('error parsing trades: ' + str(ex))
     self.tradesAdded.emit(self)