src/p4l/utils.py
changeset 145 7c6fe1dab213
parent 137 bb8bf2688d7e
child 161 216b3f9582aa
equal deleted inserted replaced
144:8c32ea1310de 145:7c6fe1dab213
    44 import requests
    44 import requests
    45 
    45 
    46 
    46 
    47 logger = logging.getLogger(__name__)
    47 logger = logging.getLogger(__name__)
    48 
    48 
    49 def show_progress(current_line, total_line, label, width, writer=None):
    49 def show_progress(current_line, total_line, label, width, writer=None, newline=False):
    50 
    50 
    51     if writer is None:
    51     if writer is None:
    52         writer = sys.stdout
    52         writer = sys.stdout
    53         if sys.stdout.encoding is not None:
    53         if sys.stdout.encoding is not None:
    54             writer = codecs.getwriter(sys.stdout.encoding)(sys.stdout)
    54             writer = codecs.getwriter(sys.stdout.encoding)(sys.stdout)
    58     marks = math.floor(width * (percent / 100.0)) #@UndefinedVariable
    58     marks = math.floor(width * (percent / 100.0)) #@UndefinedVariable
    59     spaces = math.floor(width - marks) #@UndefinedVariable
    59     spaces = math.floor(width - marks) #@UndefinedVariable
    60 
    60 
    61     loader = u'[' + (u'=' * int(marks)) + (u' ' * int(spaces)) + u']'
    61     loader = u'[' + (u'=' * int(marks)) + (u' ' * int(spaces)) + u']'
    62         
    62         
    63     s = u"%s %3d%% %*d/%d - %*s\r" % (loader, percent, len(str(total_line)), current_line, total_line, width, label[:width])
    63     s = u"%s %3d%% %*d/%d - %*s%s" % (loader, percent, len(str(total_line)), current_line, total_line, width, label[:width], "\n" if newline else "\r")
    64     
    64     
    65     writer.write(s) #takes the header into account
    65     writer.write(s) #takes the header into account
    66     if percent >= 100:
    66     if percent >= 100:
    67         writer.write("\n")
    67         writer.write("\n")
    68     writer.flush()
    68     writer.flush()