@@ -48,8 +48,8 @@ class PushProgress(object):
4848OP_MASK = COUNTING | COMPRESSING | WRITING
4949
5050__slots__ = ("_cur_line" ,"_seen_ops" )
51- re_op_absolute = re .compile ("([\w\s]+):\s+()(\d+)()(, done\.)?\s* " )
52- re_op_relative = re .compile ("([\w\s]+):\s+(\d+)% \((\d+)/(\d+)\)(,.* done\.)?$ " )
51+ re_op_absolute = re .compile ("([\w\s]+):\s+()(\d+)()(.*) " )
52+ re_op_relative = re .compile ("([\w\s]+):\s+(\d+)% \((\d+)/(\d+)\)(.*) " )
5353
5454def __init__ (self ):
5555self ._seen_ops = list ()
@@ -77,7 +77,7 @@ def _parse_progress_line(self, line):
7777# END could not get match
7878
7979op_code = 0
80- op_name ,percent ,cur_count ,max_count ,done = match .groups ()
80+ op_name ,percent ,cur_count ,max_count ,message = match .groups ()
8181# get operation id
8282if op_name == "Counting objects" :
8383op_code |= self .COUNTING
@@ -94,11 +94,16 @@ def _parse_progress_line(self, line):
9494op_code |= self .BEGIN
9595# END begin opcode
9696
97- message = ''
98- if done is not None and 'done.' in done :
97+ if message is None :
98+ message = ''
99+ # END message handling
100+
101+ message = message .strip ()
102+ done_token = ', done.'
103+ if message .endswith (done_token ):
99104op_code |= self .END
100- message = done . replace ( ", done." , "" )[ 2 : ]
101- # END endflag handling
105+ message = message [: - len ( done_token ) ]
106+ # END endmessage handling
102107
103108self .update (op_code ,cur_count ,max_count ,message )
104109