comparison mercurial/smartset.py @ 31476:413b44003462

py3: add __bool__ to every class defining __nonzero__ __nonzero__ was renamed to __bool__ in Python 3. This patch simply aliases __bool__ to __nonzero__ for every class implementing __nonzero__.
author Gregory Szorc <gregory.szorc@gmail.com>
date Mon, 13 Mar 2017 12:40:14 -0700
parents 9a94239e4f12
children 2cfdf5241096
comparison
equal deleted inserted replaced
31475:1b9b00aca8a3 31476:413b44003462
37 class abstractsmartset(object): 37 class abstractsmartset(object):
38 38
39 def __nonzero__(self): 39 def __nonzero__(self):
40 """True if the smartset is not empty""" 40 """True if the smartset is not empty"""
41 raise NotImplementedError() 41 raise NotImplementedError()
42
43 __bool__ = __nonzero__
42 44
43 def __contains__(self, rev): 45 def __contains__(self, rev):
44 """provide fast membership testing""" 46 """provide fast membership testing"""
45 raise NotImplementedError() 47 raise NotImplementedError()
46 48
265 return self._set.__contains__ 267 return self._set.__contains__
266 268
267 def __nonzero__(self): 269 def __nonzero__(self):
268 return bool(len(self)) 270 return bool(len(self))
269 271
272 __bool__ = __nonzero__
273
270 def sort(self, reverse=False): 274 def sort(self, reverse=False):
271 self._ascending = not bool(reverse) 275 self._ascending = not bool(reverse)
272 self._istopo = False 276 self._istopo = False
273 277
274 def reverse(self): 278 def reverse(self):
417 it = self 421 it = self
418 422
419 for r in it: 423 for r in it:
420 return True 424 return True
421 return False 425 return False
426
427 __bool__ = __nonzero__
422 428
423 def __len__(self): 429 def __len__(self):
424 # Basic implementation to be changed in future patches. 430 # Basic implementation to be changed in future patches.
425 # until this gets improved, we use generator expression 431 # until this gets improved, we use generator expression
426 # here, since list comprehensions are free to call __len__ again 432 # here, since list comprehensions are free to call __len__ again
590 return len(self._list) 596 return len(self._list)
591 597
592 def __nonzero__(self): 598 def __nonzero__(self):
593 return bool(self._r1) or bool(self._r2) 599 return bool(self._r1) or bool(self._r2)
594 600
601 __bool__ = __nonzero__
602
595 @util.propertycache 603 @util.propertycache
596 def _list(self): 604 def _list(self):
597 if not self._genlist: 605 if not self._genlist:
598 self._genlist = baseset(iter(self)) 606 self._genlist = baseset(iter(self))
599 return self._genlist 607 return self._genlist
750 return True 758 return True
751 for r in self._consumegen(): 759 for r in self._consumegen():
752 return True 760 return True
753 return False 761 return False
754 762
763 __bool__ = __nonzero__
764
755 def __contains__(self, x): 765 def __contains__(self, x):
756 if x in self._cache: 766 if x in self._cache:
757 return self._cache[x] 767 return self._cache[x]
758 768
759 # Use new values only, as existing values would be cached. 769 # Use new values only, as existing values would be cached.
968 def __nonzero__(self): 978 def __nonzero__(self):
969 for r in self: 979 for r in self:
970 return True 980 return True
971 return False 981 return False
972 982
983 __bool__ = __nonzero__
984
973 def __len__(self): 985 def __len__(self):
974 if not self._hiddenrevs: 986 if not self._hiddenrevs:
975 return abs(self._end - self._start) 987 return abs(self._end - self._start)
976 else: 988 else:
977 count = 0 989 count = 0