comparison hglib/client.py @ 191:6987d6cd420c

client: raise ResponseError in _readchannel() Make it clearer that this is an unrecoverable communication error. ServerError alone is not always unrecoverable, as CapabilityError is considered a subtype of it. This way, a caller can check for ResponseError to identify errors that require reopening the client to recover.
author Gábor Stefanik <gabor.stefanik@nng.com>
date Mon, 21 Aug 2017 17:13:37 +0200
parents f38bc0569671
children 7a84a8656679
comparison
equal deleted inserted replaced
190:f38bc0569671 191:6987d6cd420c
138 138
139 def _readchannel(self): 139 def _readchannel(self):
140 data = self.server.stdout.read(hgclient.outputfmtsize) 140 data = self.server.stdout.read(hgclient.outputfmtsize)
141 if not data: 141 if not data:
142 self.close() 142 self.close()
143 raise error.ServerError() 143 raise error.ResponseError('no response received from server')
144 channel, length = struct.unpack(hgclient.outputfmt, data) 144 channel, length = struct.unpack(hgclient.outputfmt, data)
145 if channel in b('IL'): 145 if channel in b('IL'):
146 return channel, length 146 return channel, length
147 else: 147 else:
148 return channel, self.server.stdout.read(length) 148 return channel, self.server.stdout.read(length)