Guest User

calc.py

a guest
Apr 7th, 2020
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.65 KB | None | 0 0
  1. from time import sleep, time
  2. import pandas as pd
  3. import concurrent.futures, requests, queue, sys
  4. from threading import Thread
  5. from PyQt5.QtWidgets import *
  6. from PyQt5.QtGui import QIcon, QFont, QKeySequence, QPalette, QBrush, QColor, QPixmap, QMovie, QPainter
  7. from PyQt5.QtCore import Qt, QSize, QRect, QThread, pyqtSignal, QTimer
  8.  
  9. class MovieSplashScreen(QSplashScreen):
  10.  
  11.     def __init__(self, movie, parent = None):
  12.    
  13.         movie.jumpToFrame(0)
  14.         pixmap = QPixmap(movie.frameRect().size())
  15.        
  16.         QSplashScreen.__init__(self, pixmap)
  17.         self.movie = movie
  18.         self.movie.frameChanged.connect(self.repaint)
  19.    
  20.     def showEvent(self, event):
  21.         self.movie.start()
  22.    
  23.     def hideEvent(self, event):
  24.         self.movie.stop()
  25.    
  26.     def paintEvent(self, event):
  27.    
  28.         painter = QPainter(self)
  29.         pixmap = self.movie.currentPixmap()
  30.         self.setMask(pixmap.mask())
  31.         painter.drawPixmap(0, 0, pixmap)
  32.    
  33.     def sizeHint(self):
  34.    
  35.         return self.movie.scaledSize()
  36.  
  37. def splashScreen(zeit = 0):
  38.         print('===splashScreen(self)====')
  39.        
  40.        
  41.         dapp = QApplication(['a', 's'])
  42.  
  43.         # Create and display the splash screen
  44.         movie = QMovie("img\\fuchs.gif")
  45.         if zeit <= 2:
  46.             gerundet = 50
  47.         elif zeit > 2:
  48.             gerundet = zeit * 60
  49.         print("gerundet = ", gerundet)
  50.        
  51.         splash = MovieSplashScreen(movie)
  52.         width = splash.frameGeometry().width()
  53.         height = splash.frameGeometry().height()
  54.         x = splash.pos().x()
  55.         y = splash.pos().y()
  56.    
  57.         print('splash x,y: ',width, height, x, y)
  58.         splash.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
  59.         splash.setEnabled(False)
  60.        
  61.         # adding progress bar
  62.         palette = QPalette()
  63.         palette.setColor(QPalette.Highlight, Qt.green)
  64.         progressBar = QProgressBar()
  65.         progressBar.setMaximum(gerundet)
  66.         progressBar.setGeometry(x, y-30, width, 20)
  67.         progressBar.setPalette(palette)
  68.         progressBar.setWindowFlags(Qt.SplashScreen | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
  69.        
  70.         gerundet = gerundet + 1
  71.         #splash.setMask(splash_pix.mask())
  72.         progressBar.show()
  73.         splash.show()
  74.         splash.showMessage("<h1><font color='red'></font></h1>", Qt.AlignTop | Qt.AlignCenter, Qt.black)
  75.        
  76.         for i in range(1, gerundet):
  77.             progressBar.setValue(i)
  78.             t = time()
  79.             while time() < t + 0.1:
  80.                 dapp.processEvents()
  81.        
  82.         progressBar.hide()
  83.         window = QWidget()
  84.         splash.finish(window)
  85.         dapp.deleteLater() # here are troubles maybe in cause of main.py with the GUI has a app = QAplllication(sys.argv) too?
  86.        
  87.        
  88. def getSignals(selectedCoins, selectedCoinsText):
  89.     print("=====getFilteredSignals====")
  90.     dfFilter = []
  91.     noResults = []  
  92.     print("selectedCoins: ", selectedCoins)
  93.     zeit = len(selectedCoins)
  94.  
  95. # Problems here?
  96.     t = Thread(target=splashScreen, args=(zeit,))
  97.     t.start()
  98.  
  99.     for i in range(len(selectedCoins)):
  100.         print("i: "+str(i)+" ", selectedCoins[i])
  101.         if i >= 1:
  102.             sleep(6)
  103.         result = makeSignals(selectedCoins[i])
  104.         print("results.empty: ", result.empty)
  105.         if result.empty == False:
  106.             result = result.set_index('Pair', inplace=False)
  107.             dfFilter.append(result)
  108.         else:
  109.             print("selectedCoinsText"+str(i)+": ", selectedCoinsText[i])
  110.             noResults.append(selectedCoinsText[i])
  111.        
  112.        
  113.     print("\nlen(dfFilter): ", len(dfFilter))
  114.     if len(dfFilter) == 0:
  115.         print("\n\n====in if len(dfFilter) == 0: \n dfFilter: ", dfFilter)
  116.         # Creating an empty Dataframe with column names only
  117.         dfempty = pd.DataFrame(columns=['User_ID', 'UserName', 'Action'])
  118.         print("Empty Dataframe ", dfempty,'\n dfempty.empty: ', dfempty.empty)
  119.         return dfempty
  120.     elif len(dfFilter) > 0:  
  121.         for i in range(len(dfFilter)):
  122.             print("\n\n====in for loop=== \n dfFilter ["+str(i)+"]: \n", dfFilter[i])
  123.        
  124.         filteredResults = pd.concat(dfFilter, axis=0, sort=False)        
  125.         #filteredResults['Gain (%)'] = pd.to_numeric(filteredResults['Gain (%)'], errors='coerce')
  126.         filteredResults = filteredResults.sort_values(by='Gain (%)', ascending=False, inplace=False)
  127.         filteredResults = filteredResults.reset_index(inplace=False)
  128.         print('\nfilteredResults: \n', filteredResults, "\n", filteredResults.dtypes)
  129.        
  130.         return filteredResults
Add Comment
Please, Sign In to add comment