Exemple #1
0
class MyPixmap(QtGui.QGraphicsPixmapItem):
    def __init__(self, parent):
        QtGui.QGraphicsPixmapItem.__init__(self)
        self.parent = parent
        self.currentSide = 0
        
        self.thread = MyThread(self.parent, self.parent.getRandom)
        self.thread.finished.connect(self.parent.errorHandler)

        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.swapCoin)
        
    def mousePressEvent(self, e):
        if self.thread.isRunning() and self.timer.isActive():
            e.ignore()
        else:
            self.parent.hint.hide() 
            self.count = 0 # counter for coin's swaping
            self.timer.start(50)     
            self.thread.start()
            e.accept()

    def swapCoin(self):
        if self.count < 50 or self.thread.isRunning():
            self.currentSide = int(not self.currentSide) # 1 turns to 0, 0 to 1
            self.setPixmap (self.parent.comboBox.itemData(self.parent.comboBox.currentIndex())[ self.currentSide ])
            self.count += 1
        else:
            self.timer.stop()
            if not self.parent.error and self.parent.result:
                self.setPixmap (self.parent.comboBox.itemData(self.parent.comboBox.currentIndex())[ int(self.parent.result[0]) ]) # SHOW RESULT!
                
            self.parent.log(error=self.parent.error) # log into journal
Exemple #2
0
def main():
	nfuncs = range(len(funcs))
	
	print '*** SINGLE THREAD'
	for i in nfuncs:
		print 'staring', funcs[i].__name__, 'at:', ctime()
		print funcs[i](n)
		print funcs[i].__name__, 'finished at:', ctime()

	print '\n*** MULTIPLE THREADS'
	threads = []
	for i in nfuncs:
		t = MyThread(funcs[i], (n,), funcs[i].__name__) # (n,) ,means it's a tuple
		threads.append(t)
	
	for i in nfuncs:
		threads[i].start()

	for i in nfuncs:
		threads[i].join()
		print threads[i].getResult()

	for t in threads:
		print t.getName(), t.isAlive(), t.isDaemon()

	print 'all Done'
Exemple #3
0
def stockPriceAlert(stockNum,priceAlert,type=-1):
    print stockNum,priceAlert,type
    priceAlert = float(priceAlert)
    type = int(type)
    stockName,nowPrice,yesterdayPrice,maxPrice,minPrice,changeRate = stockDetail(stockNum)
    #print stockName,nowPrice,yesterdayPrice,maxPrice,minPrice,changeRate
    msg = ''
    if (type == -1)  and (priceAlert >= float(nowPrice)):
        msg = stockNum + ' fall bellow ' + str(priceAlert) + ',Now:' + str(nowPrice)
    elif (type == 1) and (priceAlert <= float(nowPrice)):
        msg = stockNum + ' goes over ' + str(priceAlert) + ',Now:' + str(nowPrice)
    if msg != '':
        print msg
        smsHandle.sendSMS(msg)
        #stockPriceAlert(stockNum,priceAlert*(1-1/100.0),-1)
        
        threads=[]
        t = MyThread(stockPriceAlert,(stockNum,priceAlert*(1-1/100.0),-1),stockPriceAlert.__name__)
        threads.append(t)
        t = MyThread(stockPriceAlert,(stockNum,priceAlert*(1+1/100.0),1),stockPriceAlert.__name__)
        threads.append(t)
        for i in threads:
            i.start()
    else:
        sleep(5)
        stockPriceAlert(stockNum,priceAlert,type)
Exemple #4
0
def _main():

    nProduce = randint(1, 4)
    nConsume = randint(1, 3)
    nloops = randint(2, 4)
    q = Queue(100)

    threads = []
    numThreads = nProduce + nConsume
    print(numThreads, nProduce, nConsume)
    # 创建生产者线程
    for i in range(nProduce):
        t = MyThread(funcs[0], (q, nloops), funcs[0].__name__)
        threads.append(t)

    for i in range(nConsume):
        t = MyThread(funcs[1], (q, nloops), funcs[1].__name__)
        threads.append(t)

    # for i in nfuncs:
    #     t = MyThread(funcs[i], (q, nloops), funcs[i].__name__)
    #     threads.append(t)

    for i in range(numThreads):
        # print('xxx')
        threads[i].start()

    for i in range(numThreads):
        threads[i].join()

    print("all done")
Exemple #5
0
def main():
    logConfig()
    handle = open("./resultChen.csv", "w")
    f = open("./top5k.csv")

    threads = []
    while 1:
        line = f.readline().strip()
        if not line:
            break
        lineList = line.split(",")  #line:  "1,google.com"
        if len(threads) < 10:
            mt = MyThread(process, (lineList, handle))
            mt.start()
            time.sleep(1)
            threads.append(mt)

        for thread in threads:
            if thread.isAlive():
                continue
            else:
                threads.remove(thread)

    for thread in threads:
        thread.join()
    f.close()
    handle.close()
class Controller:

    def __init__(self):
        self.clock_block = threading.Event()

        self.person_detection_block = threading.Event()
        self.face_detection_block = threading.Event()
        self.pose_detection_block = threading.Event()
        self.emotion_detection_block = threading.Event()
        self.face_direction_block = threading.Event()
        self.face_recognition_block = threading.Event()

        self.students = []
        self.faces = []
        self.poses = []
        self.names = []
        self.emo = []
        self.face_dir = []

        self.faceDetector = DetectFace()
        self.recognitionFace = RecognitionFace()

    def process_frame(self, frame):
        # clear all events
        self.person_detection_block.clear()
        self.face_detection_block.clear()
        self.pose_detection_block.clear()
        self.emotion_detection_block.clear()
        self.face_direction_block.clear()
        self.face_recognition_block.clear()

        # frame = cv2.imread(framePath, cv2.IMREAD_COLOR)

        # init all threads
        self.faceDetectorThread = MyThread(
            name="faceDetectorThread",
            processor=self.faceDetector,
            other_events=[self.face_detection_block],
            args=frame)
        self.faceRecogThread = MyThread(
            name="faceRecognitionThread",
            other_events=[self.face_recognition_block],
            processor=self.recognitionFace,
            args=self.faces)

        # start all threads
        self.faceDetectorThread.start()
        self.faceRecogThread.start()

        # waiting all events
        self.face_detection_block.wait()
        self.face_recognition_block.wait()

        # take res from threads
        self.faces = self.faceDetectorThread.mydata
        self.names = self.faceRecogThread.mydata

        # return last res
        return self.names
Exemple #7
0
def queue_standby_Th(q, judArr, masterArr):

    thQueue = MyThread(savedQueue, (q, judArr))
    thStandby = MyThread(standby, masterArr)
    
    thQueue.start()
    thStandby.start()
    
    thQueue.join()
    thStandby.join()
Exemple #8
0
class MyWidget(QtGui.QWidget, Ui_MyWidget, ResultTable):
    def __init__(self, parent=None, master=None):
        QtGui.QWidget.__init__(self, parent)
        self.master = master
        self.error = self.result = self.model = None
        
        self.column = 1
        
        self.setupUi(self)          # set UI (method from Ui_MyWidget)
        ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
        
        self.btnGenerate.clicked.connect(self.generate)
        self.spinCol.valueChanged["int"].connect(self.changeColumn)
        self.btnClear.clicked.connect(self.clearTable)
        self.btnCopy.clicked.connect(self.copyResult)
        self.btnSave.clicked.connect(self.saveResult)
        
        self.thread = MyThread(self, self.getRandom)
        self.thread.finished.connect(self.errorHandler)

    def generate(self):
        self.btnGenerate.setDisabled(True)
        self.thread.start()
        
    def getRandom(self):
        fract = self.spinFract.value()
        num = self.spinNum.value()
        min = self.spinMin.value()
        max = self.spinMax.value()

        # list with only integers  (0, 2, 5, 17...)
        intResult = [min]*num if (min == max-1) else self.master.random.integers(num=num, min=min, max=max-1, base='10', col=1, format='plain', rnd='new')
        
        # list with only decimals (100, 225, 50, 4...)
        fractResult = self.master.random.integers(num=num, min=0, max=(10**fract)-1, base='10', col=1, format='plain', rnd='new')

        # merge 2 lists together (0.100, 2.225, 5.050, 17.004...)
        result = ["{0:.{1}f}".format(int(intResult[i]) + (int(fractResult[i]) / 10**fract), fract) for i in range(num)] # 1 and 23 -> 1.00023 if fract is 5
                
        if self.checkAdd.isChecked() and type(self.result) is list:
            self.result.extend(result)
        else:
            self.result = result

        self.makeTable()

    def log(self, error=None):
        from time import strftime
        self.master.logs.addRow(strftime("%d-%m-%Y"),
                                strftime("%H:%M:%S"),
                                self.master.random.__class__.__name__,
                                "Floats Generator",
                                error if error else "Generated: num=%s min=%s max=%s ndigits=%s" % (self.spinNum.value(), self.spinMin.value(), self.spinMax.value(), self.spinFract.value()))
Exemple #9
0
def main():
	argv = sys.argv[1:]
	numS = [ int(argv[0][i:i+2], 16) for i in range(0,len(argv[0]),2) ]
	numD = [ int(argv[1][i:i+2], 16) for i in range(0,len(argv[1]),2) ]
	
	src = ''
	dst = ''
	for i in numS:
		src += struct.pack('!B', i)
	for i in numD:
		dst += struct.pack('!B', i)
	back = MyThread(thread_func, [])
	back.start()
	#back.join()
	back2 = MyThread(thread_func2, [])
	back2.start()
	cheat2 = eapauth.EAPAuth(['1','1','eth1'])
	cheat2.set_fake(src, dst)
	cheat2.send_failure()

	while True:
		try:
			print "ok"
			packet = cheat2.client.recv(1600)
			print "ok2"
			print repr(packet)
			#cheat2.send_request_pass()
			#packet = cheat2.client.recv(1600)
			#print repr(packet)
		except:
			print "error"
			pass
Exemple #10
0
class MyWidget(QtGui.QWidget, Ui_MyWidget, ResultTable):
    def __init__(self, parent=None, master=None):
        QtGui.QWidget.__init__(self, parent)
        self.master = master
        self.error = self.result = self.model = None
        
        self.column = 1
        
        self.setupUi(self)          # set UI (method from Ui_MyWidget)
        ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
        
        self.btnGenerate.clicked.connect(self.generate)

        self.spinCol.valueChanged["int"].connect(self.changeColumn)
        self.btnClear.clicked.connect(self.clearTable)
        self.btnCopy.clicked.connect(self.copyResult)
        self.btnSave.clicked.connect(self.saveResult)
        
        self.thread = MyThread(self, self.getRandom)
        self.thread.finished.connect(self.errorHandler)

    def generate(self):
        self.btnGenerate.setDisabled(True)
        self.thread.start()
        
    def getRandom(self):
        result = self.master.random.strings(num         = self.spinNum.value(),
                                            len         = self.spinLen.value(),
                                            loweralpha  = "on" if self.checkLower.isChecked() else "off",
                                            digits      = "on" if self.checkDigits.isChecked() else "off",
                                            upperalpha  = "on" if self.checkUpper.isChecked() else "off",
                                            unique      = "on" if self.checkUnique.isChecked() else "off",
                                            format='plain', rnd='new')
        if self.checkAdd.isChecked() and type(self.result) is list:
            self.result.extend(result)
        else:
            self.result = result
        # print(self.result)
        self.makeTable()

    def log(self, error=None):
        from time import strftime
        self.master.logs.addRow(strftime("%d-%m-%Y"),
                                strftime("%H:%M:%S"),
                                self.master.random.__class__.__name__,
                                "Strings Generator",
                                error if error else "Generated: num=%s len=%s" % (self.spinNum.value(),
                                                                                  self.spinLen.value()))
Exemple #11
0
def main():
    """Main function."""
    nfuncs = range(len(funcs))

    print '*** Single thread.'
    for i in nfuncs:
        print 'starting', funcs[i].__name__, 'at:',\
              ctime()
        print funcs[i](n)
        print funcs[i].__name__, 'finished at"',\
                                 ctime()

    print '\n*** Multiple threads.'
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], (n, ), funcs[i].__name__)
        threads.append(t)

    for i in nfuncs:
        threads[i].start()

    for i in nfuncs:
        threads[i].join()
        print threads[i].get_result()

    print 'all DONE'
Exemple #12
0
def main():
    try:
        print(sys.argv[1])
        filename = sys.argv[1]
        word_to_search = sys.argv[2]
        print(word_to_search)
    except IndexError:
        print("Usage: ex_18_4.py <filename> <word>")
        sys.exit()
    total_size = os.path.getsize(filename)
    partitions = get_partitions(total_size, NUM_OF_THREADS)
    funcs = [process_file]
    nfuncs = range(len(funcs))
    threads = []
    for i in nfuncs:
        for shard_index, end_offset in partitions.items():
            t = MyThread(funcs[i],
                         (filename, shard_index, end_offset, word_to_search),
                         funcs[i].__name__)
        threads.append(t)

    for i in nfuncs:
        threads[i].start()

    for i in nfuncs:
        threads[i].join()
Exemple #13
0
def main():
    threads=[]
    t = MyThread(stockPriceAlert,('bidu',172.5,-1),stockPriceAlert.__name__)
    threads.append(t)
    t = MyThread(stockPriceAlert,('bidu',177.5,1),stockPriceAlert.__name__)
    threads.append(t)
    t = MyThread(stockPriceAlert,('yy',58.5,1),stockPriceAlert.__name__)
    threads.append(t)
    t = MyThread(stockPriceAlert,('yy',56.2,-1),stockPriceAlert.__name__)
    threads.append(t)
    #t = MyThread(stockPriceAlert,('qihu',81.5,1),stockPriceAlert.__name__)
    #threads.append(t)
    #t = MyThread(stockPriceAlert,('bidu',176,-1),stockPriceAlert.__name__)
    #threads.append(t)
    for i in threads:
        i.start()
Exemple #14
0
def main():
  num = len(funcs)

  print '*** Single Thread'

  for i in range(num):
    print funcs[i].__name__, 'start at:', ctime()
    print funcs[i](n)
    print funcs[i].__name__, 'done at:', ctime()

  print '\n*** Multi Thread'

  threads = []
  for i in range(num):
    thread = MyThread(funcs[i], (n,), funcs[i].__name__)
    threads.append(thread)

  for i in range(num):
    threads[i].start()

  for i in range(num):
    threads[i].join()
    print threads[i].getResult()

  print 'all Done'
Exemple #15
0
    def __init__(self, parent=None, master=None):
        QtGui.QWidget.__init__(self, parent)
        self.master = master
        self.error = self.result = self.model = None
        
        self.column = 1
        
        self.setupUi(self)          # set UI (method from Ui_MyWidget)
        ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
        self.tableResult.setSortingEnabled(False) # disable column sorting (keep the items mixed is the point)
        
        self.listModel = MyModel(1, 1, self.lblInfo)
        self.tableCustomList.setModel(self.listModel)
        self.tableCustomList.setEditTriggers(QtGui.QAbstractItemView.AllEditTriggers)
        self.tableCustomList.horizontalHeader().hide()
        self.tableCustomList.setColumnWidth(0, 150)

        self.fillPresetsList()
        
        # one groupPanel disables the other
        self.groupGenerate.toggled.connect(lambda checked: self.groupLoad.setChecked(not checked))
        self.groupLoad.toggled.connect(lambda checked: self.groupGenerate.setChecked(not checked))
        
        self.btnGenerate.clicked.connect(self.generate)
        self.comboPresets.activated["int"].connect(self.setPreset)
        self.btnLoad.clicked.connect(self.loadList)
        self.btnListClear.clicked.connect(lambda: self.listModel.clear())
        self.spinCol.valueChanged["int"].connect(self.changeColumn)
        self.btnClear.clicked.connect(self.clearTable)
        self.btnCopy.clicked.connect(self.copyResult)
        self.btnSave.clicked.connect(self.saveResult)
        
        self.thread = MyThread(self, self.getRandom)
        self.thread.finished.connect(self.errorHandler)
def main():
    nfuncs = range(len(funcs))

    #print '*** SINGLE THREAD'
    #for i in nfuncs:
    #    print 'starting', funcs[i].__name__, 'at:', ctime()
    #    print funcs[i](n)
    #    print funcs[i].__name__, 'finished at:', ctime()

    print '\n*** MULTIPLE THREADS'
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], (n, ), funcs[i].__name__, verb=True)
        threads.append(t)

    for i in nfuncs:
        threads[i].start()

    for i in nfuncs:
        threads[i].join()

    for i in nfuncs:
        print threads[i].getResult()

    print 'all DONE'
Exemple #17
0
def main():
    nfuncs = range(len(funcs))

    print('*** SINGLE THREAD')
    for i in nfuncs:
        print ('starting', funcs[i].__name__, \
     'at:', ctime())
        print(funcs[i](n))
        print (funcs[i].__name__, 'finished at:', \
     ctime())

    print('\n*** MULTIPLE THREADS')
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], (n, ), funcs[i].__name__)
        threads.append(t)

    for i in nfuncs:
        threads[i].start()

    for i in nfuncs:
        threads[i].join()
        print(threads[i].getResult())

    print('all DONE')
Exemple #18
0
def main():
    
    funcs = [fib, fac, sum]
    n = 12
    nfuncs = range(len(funcs))
    
    print '*** SINGLE THREAD all starting at:%s ***' % time.strftime('%Y-%m-%d %H:%M:%S')
    for i in nfuncs:
        print 'starting %s, at:%s' % (funcs[i].__name__, time.strftime('%Y-%m-%d %H:%M:%S'))
        print funcs[i](n)
        print '%s finished at:%s' % (funcs[i].__name__, time.strftime('%Y-%m-%d %H:%M:%S'))
        
    print '*** SINGLE THREAD all done at:%s ***' % time.strftime('%Y-%m-%d %H:%M:%S')
    
    print '*** MULTIPLE THREAD all starting at:%s ***' % time.strftime('%Y-%m-%d %H:%M:%S')
        
    threads = []
    for i in nfuncs:
        thread = MyThread(funcs[i], (n,), funcs[i].__name__)
        threads.append(thread)
    
    for i in threads:
        i.start()
        
    for i in threads:
        i.join()
        print i.getResult()
        
    print '*** MULTIPLE THREAD all starting at:%s ***' % time.strftime('%Y-%m-%d %H:%M:%S')
Exemple #19
0
    def ServerStart(self, port):
        # 创建一个监听套接字
        print("server:创建了监听套接字")
        self.__server_socket = socket.socket(
            socket.AF_INET, socket.SOCK_STREAM)  # 创建用于监听的socket
        self.__server_socket.setblocking(False)  # 配置为非阻塞的socket
        self.__server_is_listening = False

        # 设置并绑定监听的端口
        print("server:设置并绑定port:{}".format(port))
        self.__server_socket.bind(("", port))
        self.__port = port

        # 启动监听线程
        self.__sub_thread.clear()  # 清空子线程记录
        self.__listenThread = MyThread("监听线程", self.Listen)
        self.__listenThread.setDaemon(True)  #设置为守护线程,程序结束时强行结束监听
        self.__listenThread.start()
Exemple #20
0
    def __init__(self, parent):
        QtGui.QGraphicsPixmapItem.__init__(self)
        self.parent = parent
        self.currentSide = 0
        
        self.thread = MyThread(self.parent, self.parent.getRandom)
        self.thread.finished.connect(self.parent.errorHandler)

        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.swapCoin)
Exemple #21
0
    def process_frame(self, frame):
        # frame = cv2.imread(framePath, cv2.IMREAD_COLOR)
        self.faceDetectorThread = MyThread(
            name="faceDetectorThread",
            processor=self.faceDetector,
            event=None,
            other_events=[self.face_recognition_block],
            args=frame)
        self.faceRecogThread = MyThread(
            name="faceRecognitionThread",
            processor=self.recognitionFace,
            event=self.face_recognition_block,
            other_events=[self.emotion_detection_block],
            args=self.faceDetectorThread.mydata)

        self.faceDetectorThread.start()
        self.faceRecogThread.start()
        self.emotion_detection_block.wait()
        return self.faceRecogThread.mydata
Exemple #22
0
def main():
    nloops = int(argv[1])
    q = Queue(32)
    nconsumers = int(argv[2])

    if nloops < nconsumers:
        print("Too many threads for %s loops. Use less threads." % nloops)
        return

    threads = [MyThread(writer, (q, nloops), writer.__name__)]
    for i in range(nconsumers):
        t = MyThread(reader, (q, nloops//nconsumers), 'consumer %s' % i)
        threads.append(t)

    for thread in threads:
        thread.start()

    for thread in threads:
        thread.join()

    print("all DONE")
Exemple #23
0
def main():
    nloops = randint(2, 5)
    q = Queue(32)
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], (q, nloops), funcs[i].__name__)
        threads.append(t)
    for i in nfuncs:
        threads[i].start()
    for i in nfuncs:
        threads[i].join()
    print 'all done'
Exemple #24
0
def main():
	q=Queue(32)
	threads=[]
	loops=randint(2,5)
	for i in nfuncs:
		t=MyThread(funcs[i],(q,loops,),funcs[i].__name__)
		threads.append(t)
	for i in nfuncs:
		threads[i].start()
	for i in nfuncs:
		threads[i].join()
	print 'all DONE'
Exemple #25
0
def main():
    q = Queue(1)
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], (q, ), funcs[i].__name__)
        threads.append(t)
    for i in nfuncs:
        threads[i].start()
        sleep(0.1)
    for i in nfuncs:
        threads[i].join()
    print 'Happy!'
Exemple #26
0
def main():
    nfuncs = range(len(funcs))
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], x[i], funcs[i].__name__)
        threads.append(t)
    for i in nfuncs:
        threads[i].start()
    # for i in nfuncs:
    # threads[i].join()
    # print(threads[i].getResult())
    print("all over!")
Exemple #27
0
    def Listen(self):
        print("server:开始监听")
        self.__server_socket.listen(128)
        self.__server_is_listening = True

        while self.__server_is_listening:
            try:
                client_socket, client_addr = self.__server_socket.accept(
                )  # 设置setblocking(False)后, accept不再阻塞
                print("连接成功,客户端ip:{},port:{}".format(client_addr[0],
                                                     client_addr[1]))

                # 一旦连接成功,开一个子线程进行通信
                client_socket.setblocking(False)  # 子线程是非阻塞模式的(需要循环判断监听线程退出)
                client_socket.settimeout(5)  # 超时值设为5s
                self.__running_client_cnt += 1
                self.__thread_cnt += 1
                self.new_client_signal.emit(
                    self.__running_client_cnt)  # 向ui发信号,更新ui
                client_name = "client{}".format(self.__thread_cnt)  # 创建子线程
                client_thread = MyThread(client_name, self.SubClientThread,
                                         [client_socket, client_name])
                client_thread.setDaemon(True)  # 子线程配置为守护线程,主线程结束时强制结束
                client_thread.start()  # 子线程启动

            except BlockingIOError:
                pass
def main():
    loops=randint(3,6)
    q=Queue(32)
    threads=[]
    for i in nfuncs:
        for j in pool:
            t=MyThread(funcs[i],(q,loops),funcs[i].__name__)
            threads.append(t)
    for thread in threads:
        thread.start()
    for thread in threads:
        thread.join()
    print('all done')
Exemple #29
0
class Controller:

    def __init__(self):
        self.person_detection_block = threading.Event()
        self.face_detection_block = threading.Event()
        self.pose_detection_block = threading.Event()
        self.emotion_detection_block = threading.Event()
        self.face_direction_block = threading.Event()
        self.face_recognition_block = threading.Event()

        self.students = []
        self.faces = []
        self.poses = []
        self.names = []
        self.emo = []
        self.face_dir = []

        self.faceDetector = DetectFace()
        self.recognitionFace = RecognitionFace()

    def process_frame(self, frame):
        # frame = cv2.imread(framePath, cv2.IMREAD_COLOR)
        self.faceDetectorThread = MyThread(
            name="faceDetectorThread",
            processor=self.faceDetector,
            event=None,
            other_events=[self.face_recognition_block],
            args=frame)
        self.faceRecogThread = MyThread(
            name="faceRecognitionThread",
            processor=self.recognitionFace,
            event=self.face_recognition_block,
            other_events=[self.emotion_detection_block],
            args=self.faceDetectorThread.mydata)

        self.faceDetectorThread.start()
        self.faceRecogThread.start()
        self.emotion_detection_block.wait()
        return self.faceRecogThread.mydata
Exemple #30
0
def mFunc(func, fileUrls):
    urlslen = range(len(fileUrls))
    mThread = []
    for i in urlslen:
        t = MyThread(func, (fileUrls[i],), func.__name__)
        mThread.append(t)
        
    for i in urlslen:
        mThread[i].start()
        
    for i in urlslen:
        mThread[i].join()
        writeFile(fileUrls[i].replace('http://',os.getcwd()), mThread[i].getResult())
Exemple #31
0
def multiFunc(nfuncs):
    print('\n*** MULTIPLE THREADS')
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], (n, ), funcs[i].__name__)
        threads.append(t)

    for i in nfuncs:
        threads[i].start()

    for i in nfuncs:
        threads[i].join()
        print(threads[i].getResult())
Exemple #32
0
def multi_thread(funcs, nfuncs):
    print("*** MULTI THREAD")
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], n, funcs[i].__name__)
        threads.append(t)

    for i in nfuncs:
        threads[i].start()

    for i in nfuncs:
        threads[i].join()
        print(threads[i].getResult())
Exemple #33
0
def main():
    print 'starting...\n'
    q = Queue(100)
    funcs = [writeEmails, readEmails]
    nfuncs = range(len(funcs))
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], (q, ), funcs[i].__name__)
        threads.append(t)
    for i in nfuncs:
        threads[i].start()
    for i in nfuncs:
        threads[i].join()
    print 'DONE'
Exemple #34
0
def _main():
    nloops = randint(2, 5)
    q = Queue(maxsize=32)

    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], (q, nloops), funcs[i].__name__)
        threads.append(t)

    for i in nfuncs:
        threads[i].start()

    for i in nfuncs:
        threads[i].join()
Exemple #35
0
def mFunc(func, tn):
    mThread = []
    for i in range(tn):
        print('append: ', i)
        t = MyThread(func, (tn, ), fib.__name__)
        mThread.append(t)

    for i in range(tn):
        print('start:', i)
        mThread[i].start()

    for i in range(tn):
        print('join: ', i)
        mThread[i].join()
        print(mThread[i].getResult())
Exemple #36
0
def main():
    print '*** MULTIPLE THREADS'
    threads = []
    for i in range(3):
        t = MyThread(ct, (
            filename,
            datapat,
        ), ct.__name__)
        threads.append(t)

    for i in range(3):
        threads[i].start()

    for i in range(3):
        threads[i].join
Exemple #37
0
 def __init__(self, parent=None, master=None):
     QtGui.QWidget.__init__(self, parent)
     self.master = master
     self.error = self.result = self.model = None
     
     self.column = 1
     
     self.setupUi(self)          # set UI (method from Ui_MyWidget)
     ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
     
     self.btnGenerate.clicked.connect(self.generate)
     self.checkIsSeconds.toggled.connect(self.allowSeconds)
     self.checkIsMili.toggled.connect(self.allowMiliseconds)
             
     self.thread = MyThread(self, self.getRandom)
     self.thread.finished.connect(self.errorHandler)
Exemple #38
0
def main():
    print('starting at: ', ctime())
    threads = []
    nloops = range(len(loops))

    for i in nloops:
        t = MyThread(loop, (i, loops[i]), loop.__name__)
        threads.append(t)

    for i in nloops:
        threads[i].start()

    for i in nloops:
        threads[i].join()

    print('all Done at: ', ctime())
Exemple #39
0
 def __init__(self, parent=None, master=None):
     QtGui.QWidget.__init__(self, parent)
     self.master = master
     self.error = self.result = self.model = None
     
     self.column = 1
     
     self.setupUi(self)          # set UI (method from Ui_MyWidget)
     ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
     
     self.btnGenerate.clicked.connect(self.generate)
     self.spinCol.valueChanged["int"].connect(self.changeColumn)
     self.btnClear.clicked.connect(self.clearTable)
     self.btnCopy.clicked.connect(self.copyResult)
     self.btnSave.clicked.connect(self.saveResult)
     
     self.thread = MyThread(self, self.getRandom)
     self.thread.finished.connect(self.errorHandler)
Exemple #40
0
 def __init__(self, parent=None, master=None):
     QtGui.QWidget.__init__(self, parent)
     self.master = master
     self.error = self.result = self.model = None
     
     self.base = "10"
     self.column = 1
     
     self.setupUi(self)          # set UI (method from Ui_MyWidget)
     ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
     
     self.fillPresetsList()
     
     self.btnGenerate.clicked.connect(self.generate)
     self.radioBin.clicked.connect(lambda: setattr(self, "base", "2")) # in lambda can't use '=' operator
     self.radioOct.clicked.connect(lambda: setattr(self, "base", "8"))
     self.radioDec.clicked.connect(lambda: setattr(self, "base", "10"))
     self.radioHex.clicked.connect(lambda: setattr(self, "base", "16"))
     self.comboPresets.activated["int"].connect(self.setPreset)
     
     self.thread = MyThread(self, self.getRandom)
     self.thread.finished.connect(self.errorHandler)
Exemple #41
0
 def __init__(self, parent=None, master=None):
     QtGui.QWidget.__init__(self, parent)
     self.master = master
     self.error = self.result = self.model = None
     self.daysOfWeek = [0,1,2,3,4]
     
     self.column = 1
     
     self.setupUi(self)          # set UI (method from Ui_MyWidget)
     ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
     
     self.btnGenerate.clicked.connect(self.generate)
     self.chkMon.toggled.connect(lambda x: self.updateDaysOfWeek(x, 0))
     self.chkTue.toggled.connect(lambda x: self.updateDaysOfWeek(x, 1))
     self.chkWed.toggled.connect(lambda x: self.updateDaysOfWeek(x, 2))
     self.chkThr.toggled.connect(lambda x: self.updateDaysOfWeek(x, 3))
     self.chkFri.toggled.connect(lambda x: self.updateDaysOfWeek(x, 4))
     self.chkSut.toggled.connect(lambda x: self.updateDaysOfWeek(x, 5))
     self.chkSun.toggled.connect(lambda x: self.updateDaysOfWeek(x, 6))
         
     self.thread = MyThread(self, self.getRandom)
     self.thread.finished.connect(self.errorHandler)
def main():
    threads = []
    page_response = Requests_Html(url)
    tree = html.fromstring(page_response.text)
    page_index = tree.xpath('/html/body//blockquote/p/a/@href')

    for index, html_index in enumerate(page_index):
        html_ = base_url + html_index
        t = MyThread(Requests_Html, (html_,), html_)
        threads.append(t)

    for i in threads:
        i.start()

    for j in threads:
        j.join()

    # pages[k] = i.getResult()
    page = MyThread.getResult()
    print page.qsize()
    for i in range(page.qsize()):
        pages[i] = page.get()
Exemple #43
0
 def showQuota(self):
     thread = MyThread(self, lambda: self.sb.label2.setText("Your quota (random bits for today): %s" % self.random.quota(format='plain')[0]))
     thread.finished.connect(self.errorHandler)
     thread.start()
Exemple #44
0
class MyWidget(QtGui.QWidget, Ui_MyWidget, ResultTable):
    def __init__(self, parent=None, master=None):
        QtGui.QWidget.__init__(self, parent)
        self.master = master
        self.error = self.result = self.model = None
        
        self.base = "10"
        self.column = 1
        
        self.setupUi(self)          # set UI (method from Ui_MyWidget)
        ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
        
        self.fillPresetsList()
        
        self.btnGenerate.clicked.connect(self.generate)
        self.radioBin.clicked.connect(lambda: setattr(self, "base", "2")) # in lambda can't use '=' operator
        self.radioOct.clicked.connect(lambda: setattr(self, "base", "8"))
        self.radioDec.clicked.connect(lambda: setattr(self, "base", "10"))
        self.radioHex.clicked.connect(lambda: setattr(self, "base", "16"))
        self.comboPresets.activated["int"].connect(self.setPreset)
        
        self.thread = MyThread(self, self.getRandom)
        self.thread.finished.connect(self.errorHandler)

    def fillPresetsList(self):
        for preset in PRESETS["Integers"]:
            title = "%s - %s" % (preset, repr(PRESETS["Integers"][preset]))
            self.comboPresets.addItem(title, PRESETS["Integers"][preset])

    def setPreset(self, index):
        if index == 0: return
        # tuple stored in comboBox itemData - (a, b) where a-min, b-max
        self.spinMin.setValue(self.comboPresets.itemData(index)[0])
        self.spinMax.setValue(self.comboPresets.itemData(index)[1])

    def generate(self):
        self.btnGenerate.setDisabled(True)
        self.thread.start()
        
    def getRandom(self):
        result = self.master.random.integers(num=self.spinNum.value(),
                                             min=self.spinMin.value(),
                                             max=self.spinMax.value(),
                                             base=self.base,
                                             col=1, format='plain', rnd='new')
        if self.checkAdd.isChecked() and type(self.result) is list:
            self.result.extend(result)
        else:
            self.result = result
        # print(self.result)
        self.makeTable()

    def log(self, error=None):
        from time import strftime
        self.master.logs.addRow(strftime("%d-%m-%Y"),
                                strftime("%H:%M:%S"),
                                self.master.random.__class__.__name__,
                                "Integers Generator",
                                error if error else "Generated: num=%s min=%s max=%s" % (self.spinNum.value(),
                                                                                         self.spinMin.value(),
                                                                                         self.spinMax.value()))
Exemple #45
0
class MyWidget(QtGui.QWidget, Ui_MyWidget, ResultTable):
    def __init__(self, parent=None, master=None):
        QtGui.QWidget.__init__(self, parent)
        self.master = master
        self.error = self.result = self.model = None
        
        self.column = 1
        
        self.setupUi(self)          # set UI (method from Ui_MyWidget)
        ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
        self.tableResult.setSortingEnabled(False) # disable column sorting (keep the items mixed is the point)
        
        self.listModel = MyModel(1, 1, self.lblInfo)
        self.tableCustomList.setModel(self.listModel)
        self.tableCustomList.setEditTriggers(QtGui.QAbstractItemView.AllEditTriggers)
        self.tableCustomList.horizontalHeader().hide()
        self.tableCustomList.setColumnWidth(0, 150)

        self.fillPresetsList()
        
        # one groupPanel disables the other
        self.groupGenerate.toggled.connect(lambda checked: self.groupLoad.setChecked(not checked))
        self.groupLoad.toggled.connect(lambda checked: self.groupGenerate.setChecked(not checked))
        
        self.btnGenerate.clicked.connect(self.generate)
        self.comboPresets.activated["int"].connect(self.setPreset)
        self.btnLoad.clicked.connect(self.loadList)
        self.btnListClear.clicked.connect(lambda: self.listModel.clear())
        self.spinCol.valueChanged["int"].connect(self.changeColumn)
        self.btnClear.clicked.connect(self.clearTable)
        self.btnCopy.clicked.connect(self.copyResult)
        self.btnSave.clicked.connect(self.saveResult)
        
        self.thread = MyThread(self, self.getRandom)
        self.thread.finished.connect(self.errorHandler)

    def fillPresetsList(self):
        for preset in sorted(PRESETS["Sequences"]):
            self.comboPresets.addItem(preset[1:], PRESETS["Sequences"][preset])

    def loadList(self):
        file = QtGui.QFileDialog.getOpenFileName( 
                parent=self, caption="Load data from file", directory=QtCore.QDir.currentPath(),
                filter="CSV and text files (*.csv *.txt)")
        if file:
            sep = QtGui.QInputDialog.getText(self, "Type separator", "Type symbol that will be use for split text data", text=",")
            if not all(sep): return
            data = open(file, 'r').read()
            res=[]
            for l in data.split('\n'):
                res.extend(l.split(sep[0]))

            res = list( filter(lambda x: x.lstrip(), res) )
            
            self.listModel.clear()
            for row in range(len(res)):
                item = QtGui.QStandardItem(res[row])
                self.listModel.setItem(row, 0, item)
            self.tableCustomList.setColumnWidth(0, 150)

            self.log(file=file)

    def setPreset(self, index):
        self.listModel.clear()
        if index == 0: return
        # list stored in comboBox itemData
        l = self.comboPresets.itemData(index)
        for i in range(len(l)):
            item = QtGui.QStandardItem(l[i])
            self.listModel.setItem(i, 0, item)
        self.tableCustomList.setColumnWidth(0, 150)

    def generate(self):
        self.btnGenerate.setDisabled(True)
        self.thread.start()
        
    def getRandom(self):
        if self.groupGenerate.isChecked():  # generate sequence
            min = self.spinMin.value()
            max = self.spinMax.value()
        else:                               # shuffle existing list
            if self.listModel.rowCount() < 2: return
            min = 0
            max = self.listModel.rowCount()-2
            
        result = self.master.random.sequences(min=min, max=max, col=1, format='plain', rnd='new')

        if self.groupLoad.isChecked():      # shuffle custom list
            customList =    [self.listModel.index(i,0).data() for i in range(max+1)]
            result =        [customList[int(i)] for i in result]
        
        if self.checkAdd.isChecked() and type(self.result) is list:
            self.result.extend(result)
        else:
            self.result = result
        self.makeTable()

    def log(self, error=None, file=None):
        from time import strftime
        from os.path import basename

        if file:
            msg = "Custom list (%s elem.) was loaded from '%s' for shuffling" % (self.listModel.rowCount()-1, basename(file))
        elif self.groupLoad.isChecked():
            msg = "Custom list with %s element(s) was shuffled" % (self.listModel.rowCount()-1)
        else:
            msg = "Sequence was generated: min=%s max=%s" % (self.spinMin.value(), self.spinMax.value())
        
        self.master.logs.addRow(
            strftime("%d-%m-%Y"), strftime("%H:%M:%S"), self.master.random.__class__.__name__,
            "Sequences Generator/Shuffler", error if error else msg)
Exemple #46
0
class MyWidget(QtGui.QWidget, Ui_MyWidget, ResultTable):
    def __init__(self, parent=None, master=None):
        QtGui.QWidget.__init__(self, parent)
        self.master = master
        self.error = self.result = self.model = None
        self.daysOfWeek = [0,1,2,3,4]
        
        self.column = 1
        
        self.setupUi(self)          # set UI (method from Ui_MyWidget)
        ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
        
        self.btnGenerate.clicked.connect(self.generate)
        self.chkMon.toggled.connect(lambda x: self.updateDaysOfWeek(x, 0))
        self.chkTue.toggled.connect(lambda x: self.updateDaysOfWeek(x, 1))
        self.chkWed.toggled.connect(lambda x: self.updateDaysOfWeek(x, 2))
        self.chkThr.toggled.connect(lambda x: self.updateDaysOfWeek(x, 3))
        self.chkFri.toggled.connect(lambda x: self.updateDaysOfWeek(x, 4))
        self.chkSut.toggled.connect(lambda x: self.updateDaysOfWeek(x, 5))
        self.chkSun.toggled.connect(lambda x: self.updateDaysOfWeek(x, 6))
            
        self.thread = MyThread(self, self.getRandom)
        self.thread.finished.connect(self.errorHandler)

    def updateDaysOfWeek(self, isChecked, day):
        if isChecked:   self.daysOfWeek.append(day)
        else:           self.daysOfWeek.remove(day)
        
    def generate(self):       
        self.btnGenerate.setDisabled(True)
        self.thread.start()
        
    def getRandom(self):
        assert self.daysOfWeek, "Error: You should choose at least one day of the week"
        
        from datetime import date, timedelta
        day = timedelta(days=1)
        
        num = self.spinNum.value()
        date1 = currDate = self.dateEdit.date().toPyDate()
        date2 = self.dateEdit_2.date().toPyDate()
        format = self.comboFormat.itemData(self.comboFormat.currentIndex())
        
        assert date2 > date1, "Error: Second date must be greater than first one"
        
        allDaysList = []
        while currDate != date2:
            if currDate.weekday() in self.daysOfWeek:
                allDaysList.append(currDate)
            currDate += day
        
        assert num <= len(allDaysList), "Error: There are only %s acceptable dates, when you need %s" % (len(allDaysList), num)

        result = []
        if len(allDaysList) == num:
            result = allDaysList
        else:
            while len(result) < num:
                result.append(
                    allDaysList.pop(
                        int( self.master.random.integers(num=1, min=0, max=len(allDaysList)-1, base='10', col=1, format='plain', rnd='new')[0] )
                    )
                )

        result = [d.strftime(format) for d in result]      
                                            
        if self.checkAdd.isChecked() and type(self.result) is list:
            self.result.extend(result)
        else:
            self.result = result
        # print(self.result)
        self.makeTable()
        
        
    def log(self, error=None):
        from time import strftime
        self.master.logs.addRow(strftime("%d-%m-%Y"),
                                strftime("%H:%M:%S"),
                                self.master.random.__class__.__name__,
                                "Date Generator",
                                error if error else "Generated %s date(s) between %s and %s" % (
                                    self.spinNum.value(),
                                    self.dateEdit.textFromDateTime(self.dateEdit.dateTime()),
                                    self.dateEdit_2.textFromDateTime(self.dateEdit_2.dateTime()))
                                )
Exemple #47
0
class MyWidget(QtGui.QWidget, Ui_MyWidget, ResultTable):
    def __init__(self, parent=None, master=None):
        QtGui.QWidget.__init__(self, parent)
        self.master = master
        self.error = self.result = self.model = None
        
        self.column = 1
        
        self.setupUi(self)          # set UI (method from Ui_MyWidget)
        ResultTable.__init__(self)  # set UI for result group widget (result table etc...)
        
        self.btnGenerate.clicked.connect(self.generate)
        self.checkIsSeconds.toggled.connect(self.allowSeconds)
        self.checkIsMili.toggled.connect(self.allowMiliseconds)
                
        self.thread = MyThread(self, self.getRandom)
        self.thread.finished.connect(self.errorHandler)



    # secToTime(64835555, True, True)   -> QTime(18, 0, 35, 555)
    # secToTime(64835, True, False)     -> QTime(18, 0, 35)
    # secToTime(1080, False, False)     -> QTime(18, 0)
    def secToTime(self, units, isSeconds=True, isMilisec=True):   # miliseconds to QTime (65482833 -> QTime(18, 11, 22, 833) 18:11:22.833)
        hour = min = sec = msec = 0
        if isMilisec:
            msec = units % 1000
            units /= 1000
        if isSeconds:
            sec = units % 60
            units /= 60
        min = units % 60
        units /= 60
        hour = units
        return QtCore.QTime(hour, min, sec, msec)

    # timeToSec(QTime(18, 0, 35, 555), True, True)      -> 64835555
    # timeToSec(QTime(18, 0, 35, 555), True, False)     -> 64835
    # timeToSec(QTime(18, 0, 35, 555), False, False)    -> 1080
    def timeToSec(self, qTime, isSeconds=True, isMilisec=True):     # QTime to miliseconds (QTime(23, 59, 59, 999) -> 86399999)
        if isSeconds:
            if isMilisec:
                return (qTime.hour()*3600 + qTime.minute()*60 + qTime.second())*1000 + qTime.msec()
            return qTime.hour()*3600 + qTime.minute()*60 + qTime.second()
        return qTime.hour()*60 + qTime.minute()

    # formatTime(QTime(18, 0, 35, 555)) -> 18:00:35.555
    # formatTime(QTime(18, 0))          -> 18:00
    def formatTime(self, qTime):
        format = self.timeEditFrom.displayFormat()
        return qTime.toString(format)
        

    def allowSeconds(self, isChecked):
        self.checkIsMili.setCheckState(QtCore.Qt.Unchecked)
        self.checkIsMili.setDisabled(not isChecked)
        if isChecked:
            self.timeEditFrom.setDisplayFormat("H:mm:ss")
            self.timeEditTo.setDisplayFormat("H:mm:ss")
        else:
            self.timeEditFrom.setDisplayFormat("H:mm")
            self.timeEditTo.setDisplayFormat("H:mm")
        
    def allowMiliseconds(self, isChecked):
        if isChecked:
            self.timeEditFrom.setDisplayFormat("H:mm:ss.zzz")
            self.timeEditTo.setDisplayFormat("H:mm:ss.zzz")
        else:
            self.timeEditFrom.setDisplayFormat("H:mm:ss")
            self.timeEditTo.setDisplayFormat("H:mm:ss")
        
    def generate(self):       
        self.btnGenerate.setDisabled(True)
        self.thread.start()
        
    def getRandom(self):
        num = self.spinNum.value()
        isSec = self.checkIsSeconds.isChecked()
        isMsec = self.checkIsMili.isChecked()
        interval = self.comboTimeInterval.itemData(self.comboTimeInterval.currentIndex())
        timeStart   = time1 = self.timeToSec( self.timeEditFrom.time(), isSec, isMsec )
        timeEnd     = time2 = self.timeToSec( self.timeEditTo.time(), isSec, isMsec )

        if interval:
            if      isMsec: coef = interval * 60 * 1000
            elif    isSec: coef = interval * 60
            else:   coef = interval
            time1 = 0
            time2 = (timeEnd-timeStart) // coef
        
        
        result = self.master.random.integers(num=num, min=time1, max=time2,
                                             base='10', col=1, format='plain', rnd='new')                   # ['64835555', '573755', '73753'...]
        if interval:
            result = list( map(lambda x: self.secToTime(timeStart + int(x)*coef, isSec, isMsec), result) )  # [QTime(18, 0, 35, 555), QTime(01, 10, 35, 105)...]
        else:
            result = list( map(lambda x: self.secToTime(int(x), isSec, isMsec), result) )                   # [QTime(18, 0, 35, 555), QTime(01, 10, 35, 105)...]
        result = list( map(self.formatTime, result) )                                                       # ['18:00:35.555', '01:10:35.105'...]
        
        if self.checkAdd.isChecked() and type(self.result) is list:
            self.result.extend(result)
        else:
            self.result = result
        # print(self.result)
        self.makeTable()
        
        
    def log(self, error=None):
        from time import strftime
        self.master.logs.addRow(strftime("%d-%m-%Y"),
                                strftime("%H:%M:%S"),
                                self.master.random.__class__.__name__,
                                "Time Generator",
                                error if error else "Generated %s clock time(s) between %s and %s with interval %s" % (
                                    self.spinNum.value(),
                                    self.timeEditFrom.textFromDateTime(self.timeEditFrom.dateTime()),
                                    self.timeEditTo.textFromDateTime(self.timeEditTo.dateTime()),
                                    self.comboTimeInterval.currentText())
                                )
Exemple #48
0
 def thFertilizer(num, delay, arr):
     fer = MyThread(fertilizer, (num, delay, arr))
     fer.start()
     fer.join()