src/core/utils.py
changeset 35 859862939996
parent 0 4095911a7830
child 334 169b7cfd1f58
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/core/utils.py	Tue Jun 25 15:34:18 2013 +0200
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+'''
+Created on Feb 1, 2012
+
+@author: ymh
+'''
+import sys
+import codecs #@UnresolvedImport
+import math
+
+def show_progress(current_line, total_line, label, width, writer=None):
+
+    if writer is None:
+        writer = sys.stdout
+        if sys.stdout.encoding is not None:
+            writer = codecs.getwriter(sys.stdout.encoding)(sys.stdout)
+
+    percent = (float(current_line) / float(total_line)) * 100.0
+
+    marks = math.floor(width * (percent / 100.0)) #@UndefinedVariable
+    spaces = math.floor(width - marks) #@UndefinedVariable
+
+    loader = u'[' + (u'=' * int(marks)) + (u' ' * int(spaces)) + u']'
+        
+    s = u"%s %3d%% %*d/%d - %*s\r" % (loader, percent, len(str(total_line)), current_line, total_line, width, label[:width])
+    
+    writer.write(s) #takes the header into account
+    if percent >= 100:
+        writer.write("\n")
+    writer.flush()
+    
+    return writer