Mercurial > public > mercurial-scm > hg
comparison mercurial/bundle2.py @ 50925:d718eddf01d9
safehasattr: drop usage in favor of hasattr
The two functions should now be equivalent at least in their usage in core.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 31 Aug 2023 23:56:15 +0200 |
parents | 0e936b950731 |
children | 12c308c55e53 |
comparison
equal
deleted
inserted
replaced
50924:7a8ea1397816 | 50925:d718eddf01d9 |
---|---|
978 self.params # load params | 978 self.params # load params |
979 return self._compressed | 979 return self._compressed |
980 | 980 |
981 def close(self): | 981 def close(self): |
982 """close underlying file""" | 982 """close underlying file""" |
983 if util.safehasattr(self._fp, 'close'): | 983 if hasattr(self._fp, 'close'): |
984 return self._fp.close() | 984 return self._fp.close() |
985 | 985 |
986 | 986 |
987 formatmap = {b'20': unbundle20} | 987 formatmap = {b'20': unbundle20} |
988 | 988 |
1066 def copy(self): | 1066 def copy(self): |
1067 """return a copy of the part | 1067 """return a copy of the part |
1068 | 1068 |
1069 The new part have the very same content but no partid assigned yet. | 1069 The new part have the very same content but no partid assigned yet. |
1070 Parts with generated data cannot be copied.""" | 1070 Parts with generated data cannot be copied.""" |
1071 assert not util.safehasattr(self.data, 'next') | 1071 assert not hasattr(self.data, 'next') |
1072 return self.__class__( | 1072 return self.__class__( |
1073 self.type, | 1073 self.type, |
1074 self._mandatoryparams, | 1074 self._mandatoryparams, |
1075 self._advisoryparams, | 1075 self._advisoryparams, |
1076 self._data, | 1076 self._data, |
1135 if nbap: | 1135 if nbap: |
1136 msg.append(b' %i advisory' % nbmp) | 1136 msg.append(b' %i advisory' % nbmp) |
1137 msg.append(b')') | 1137 msg.append(b')') |
1138 if not self.data: | 1138 if not self.data: |
1139 msg.append(b' empty payload') | 1139 msg.append(b' empty payload') |
1140 elif util.safehasattr(self.data, 'next') or util.safehasattr( | 1140 elif hasattr(self.data, 'next') or hasattr(self.data, '__next__'): |
1141 self.data, '__next__' | |
1142 ): | |
1143 msg.append(b' streamed payload') | 1141 msg.append(b' streamed payload') |
1144 else: | 1142 else: |
1145 msg.append(b' %i bytes payload' % len(self.data)) | 1143 msg.append(b' %i bytes payload' % len(self.data)) |
1146 msg.append(b'\n') | 1144 msg.append(b'\n') |
1147 ui.debug(b''.join(msg)) | 1145 ui.debug(b''.join(msg)) |
1231 """yield chunks of a the part payload | 1229 """yield chunks of a the part payload |
1232 | 1230 |
1233 Exists to handle the different methods to provide data to a part.""" | 1231 Exists to handle the different methods to provide data to a part.""" |
1234 # we only support fixed size data now. | 1232 # we only support fixed size data now. |
1235 # This will be improved in the future. | 1233 # This will be improved in the future. |
1236 if util.safehasattr(self.data, 'next') or util.safehasattr( | 1234 if hasattr(self.data, 'next') or hasattr(self.data, '__next__'): |
1237 self.data, '__next__' | |
1238 ): | |
1239 buff = util.chunkbuffer(self.data) | 1235 buff = util.chunkbuffer(self.data) |
1240 chunk = buff.read(preferedchunksize) | 1236 chunk = buff.read(preferedchunksize) |
1241 while chunk: | 1237 while chunk: |
1242 yield chunk | 1238 yield chunk |
1243 chunk = buff.read(preferedchunksize) | 1239 chunk = buff.read(preferedchunksize) |
1378 class unbundlepart(unpackermixin): | 1374 class unbundlepart(unpackermixin): |
1379 """a bundle part read from a bundle""" | 1375 """a bundle part read from a bundle""" |
1380 | 1376 |
1381 def __init__(self, ui, header, fp): | 1377 def __init__(self, ui, header, fp): |
1382 super(unbundlepart, self).__init__(fp) | 1378 super(unbundlepart, self).__init__(fp) |
1383 self._seekable = util.safehasattr(fp, 'seek') and util.safehasattr( | 1379 self._seekable = hasattr(fp, 'seek') and hasattr(fp, 'tell') |
1384 fp, 'tell' | |
1385 ) | |
1386 self.ui = ui | 1380 self.ui = ui |
1387 # unbundle state attr | 1381 # unbundle state attr |
1388 self._headerdata = header | 1382 self._headerdata = header |
1389 self._headeroffset = 0 | 1383 self._headeroffset = 0 |
1390 self._initialized = False | 1384 self._initialized = False |