-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathanimation.py
More file actions
59 lines (46 loc) · 1.42 KB
/
animation.py
File metadata and controls
59 lines (46 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from threading import Thread
from time import sleep
class Animation(Thread):
def __init__(
self,
text: str = "Animation",
timeToSleep: float = 0.2,
dot: int = 4,
internet: bool = False,
):
assert timeToSleep <= 1
Thread.__init__(self)
self.timeToSleep = timeToSleep
self.maxNumOfDot = dot
self.text = text
self.loopTime = round(1 / timeToSleep)
self.Running = True
self.internet = internet
def run(self):
dotNum = 1
barComplete, totalTime, loopRun = 0, 1, 0
timeToSleep = self.timeToSleep
maxNumOfDot = self.maxNumOfDot
while self.Running:
print(f"[{totalTime}s] {self.text} {'.' * dotNum}", flush=True)
print("\033[F", end="\033[K")
if dotNum == maxNumOfDot:
dotNum = 0
barComplete += 0.5
if loopRun == self.loopTime:
loopRun = 0
totalTime += 1
dotNum += 1
loopRun += 1
if self.internet:
sleep(timeToSleep + barComplete * 0.1)
else:
sleep(timeToSleep)
def stop(self):
self.Running = False
if __name__ == "__main__":
timeToSleep = 5
anim = Animation(f"Example For {timeToSleep}s", dot=5, timeToSleep=.1)
anim.start()
sleep(timeToSleep)
anim.stop()