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')
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')
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")
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)