@ -15,6 +15,8 @@ NOTICE = 2
INFO = 3
INFO = 3
DEBUG = 4
DEBUG = 4
in_progress = False
"""
"""
This class handles output of progress and other useful information
This class handles output of progress and other useful information
to the user . It provides for simple verbosity level control and can
to the user . It provides for simple verbosity level control and can
@ -48,9 +50,11 @@ def UserIsPresent():
def ClearProgress ( ) :
def ClearProgress ( ) :
""" Clear any active progress message on the terminal. """
""" Clear any active progress message on the terminal. """
if verbose > 0 and stdout_is_tty :
global in_progress
if verbose > 0 and stdout_is_tty and in_progress :
_stdout . write ( ' \r %s \r ' % ( " " * len ( _progress ) ) )
_stdout . write ( ' \r %s \r ' % ( " " * len ( _progress ) ) )
_stdout . flush ( )
_stdout . flush ( )
in_progress = False
def Progress ( msg , warning = False , trailer = ' ... ' ) :
def Progress ( msg , warning = False , trailer = ' ... ' ) :
""" Display progress information.
""" Display progress information.
@ -58,6 +62,7 @@ def Progress(msg, warning=False, trailer='...'):
Args :
Args :
msg : Message to display .
msg : Message to display .
warning : True if this is a warning . """
warning : True if this is a warning . """
global in_progress
ClearProgress ( )
ClearProgress ( )
if verbose > 0 :
if verbose > 0 :
_progress = msg + trailer
_progress = msg + trailer
@ -65,6 +70,7 @@ def Progress(msg, warning=False, trailer='...'):
col = _color . YELLOW if warning else _color . GREEN
col = _color . YELLOW if warning else _color . GREEN
_stdout . write ( ' \r ' + _color . Color ( col , _progress ) )
_stdout . write ( ' \r ' + _color . Color ( col , _progress ) )
_stdout . flush ( )
_stdout . flush ( )
in_progress = True
else :
else :
_stdout . write ( _progress + ' \n ' )
_stdout . write ( _progress + ' \n ' )