1
2 import sys
3 import time
4 from threading import Thread
5
6
8
9 spin_screen_pos = 1
10
11 char_index_pos = 0
12
13 sleep_time = 1
14
15 spin_type = 2
16
18 Thread.__init__(self)
19 self.setDaemon(True)
20 self.stop_spinner = False
21 self.stopped = False
22 if type == 0:
23 self.char = ['O', 'o', '-', 'o', '0']
24 elif type == 1:
25 self.char = ['.', 'o', 'O', 'o', '.']
26 elif type == 2:
27 self.char = ['|', '/', '-', '\\', '-']
28 else:
29 self.char = ['*', '#', '@', '%', '+']
30 self.len = len(self.char)
31
33 str, crnt = self.curr(crnt)
34 sys.stdout.write("\b \b%s" % str)
35 sys.stdout.flush()
36 time.sleep(self.sleep_time)
37 return crnt
38
39 - def curr(self, crnt):
40 """
41 Iterator for the character list position
42 """
43 if crnt == 4:
44 return self.char[4], 0
45 elif crnt == 0:
46 return self.char[0], 1
47 else:
48 test = crnt
49 crnt += 1
50 return self.char[test], crnt
51
53 sys.stdout.write("\b \b\n")
54
56 self.stop_spinner = True
57 while not self.stopped:
58 time.sleep(0.5)
59
69
70 - def test(self, sleep=3.4):
71 print 'Waiting for process...',
72 self.start()
73 time.sleep(sleep)
74 self.stop()
75 print 'Process is finished...'
76
77 if __name__ == "__main__":
78 for i in range(0, 10):
79 s = Spinner()
80 s.test(sleep=float('3.' + str(i)))
81