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 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 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)
except NameError: application_path = os.getcwd() running_mode = 'Interactive' basePath = os.path.dirname(application_path) settings = settings.mySettings.setPath(os.path.join(basePath, 'Data')) # date = converter.convertDate('Fri May 19 2017 12:11:49 GMT+0200 (Mitteleuropäische Sommerzeit)') # %% import data importPath = os.path.join(basePath, 'importdata') importPath = os.path.join(importPath, 'exodus_txs') exportPath = os.path.join(basePath, 'exportdata') files, content = importer.loadTrades(importPath) headings = [frame.columns.tolist() for frame in content] # fileheadings = [] # for i in range(len(files)): # fileheadings.append([files[i],headings[i]]) # %% convert data fileindex = 0 content2 = [content[fileindex]] file = [files[fileindex]] tradeList, feeList, matches = importer.convertTrades(models.IMPORT_MODEL_LIST, content, files) # tradeList.updateValues() tradeFrame = tradeList.toDataFrameComplete() feeFrame = feeList.toDataFrameComplete()
alignment = Alignment(horizontal='general', vertical='bottom', text_rotation=0, wrap_text=False, shrink_to_fit=False, indent=0) number_format = 'General' protection = Protection(locked=True, hidden=False) # for cell in ws["2:2"]: # cell.font = red_font # %% import data mypath = r'D:\workspace\python\PyCryptoPortfolio\importdata' # mypath = r'D:\workspace\spyder\PyCryptoPortfolio\data\kaj' files, content = importer.loadTrades(mypath) settings.mySettings.setPath('D:\workspace\python\PyCryptoPortfolio\Data') headings = [frame.columns.tolist() for frame in content] # fileheadings = [] # for i in range(len(files)): # fileheadings.append([files[i],headings[i]]) # %% convert data # tradeList, matches = importer.convertTrades(models.IMPORT_MODEL_LIST, content) tradeList = core.TradeList() tradeList.fromCsv(r'D:\workspace\python\PyCryptoPortfolio\Data\Trades.csv') # tradeList.updateValues() tradeFrame = tradeList.toDataFrameComplete()