Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import threading
- import time
- """A stupid simple, half-baked (literally) class to spin while something loads. Uses threading..."""
- class ProgressSpin(threading.Thread):
- def __init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=False, sleep=0.5, maximum=100.0):
- super().__init__(group, target, name, args, kwargs, daemon=daemon)
- self.sleep = sleep
- self.value = 0
- self.maximum = maximum
- self.done = False
- @property
- def progress(self):
- return 100.0 * self.value / self.maximum
- @progress.setter
- def progress(self, percentage):
- if percentage > 100.0 or percentage < 0.0:
- raise ValueError("Progress percentage should be a value between 0.0 and 100.0")
- self.value = int(percentage * self.maximum)
- def run(self):
- print()
- i = 1
- while i:
- chars = {0: "/", 1: "-", 2: "\\", 3: "|"}
- print("\r{} {:03.02f}%".format(chars.get(i % 4), self.progress), end="")
- time.sleep(self.sleep)
- i += 1
- if self.done and i:
- i = -1 # Fuck you, I think it was clever...
- MAX = 500
- print("Counting objects...")
- p = ProgressSpin(sleep=0.25, maximum=MAX)
- p.start()
- for n in range(MAX+1):
- p.value = n
- time.sleep(0.01)
- p.done = True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement