示例#1
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')
示例#2
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')
示例#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
 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)
示例#5
0
    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()
示例#6
0
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()