dejsem.1.5/python/dejsem.pycharm/counter.py
changeset 0 676905a3b03c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dejsem.1.5/python/dejsem.pycharm/counter.py	Wed Nov 27 09:50:16 2019 +0100
@@ -0,0 +1,34 @@
+# coding=utf8
+
+import sys, time, threading
+from d import D
+
+
+class Counter():
+
+	def __init__(self, d, size):
+		self.d = D("{}, counter".format(d.debid))
+		self.counterN = None
+		if (size > 100 * 1000):
+			self.counterN = [size, 0, time.time()]
+			self.counterT = threading.Thread(target=self.counter, args=(self.counterN,), name="counter")
+			self.counterT.start()
+
+	def update(self, amount):
+		if self.counterN:
+			self.counterN[1] += amount
+
+	def stop(self):
+		if self.counterN:
+			self.counterN[1] = -1
+			self.counterT.join()
+
+	def counter(self, n):
+		self.d.log("counter started", sev=4)
+		while n[1] > -1:
+			elapsed = time.time() - n[2]
+			kbps = 0
+			if elapsed > 0: kbps = int(n[1] / (1024 * elapsed))
+			sys.stdout.write("\r{}%, {:4d} KB/s   ".format(int(100 * n[1] / n[0]), kbps))
+			time.sleep(0.5)
+		print("", file=sys.stdout)