equal
deleted
inserted
replaced
3320 if it is None: |
3320 if it is None: |
3321 # we need to consume all and try again |
3321 # we need to consume all and try again |
3322 for x in self._consumegen(): |
3322 for x in self._consumegen(): |
3323 pass |
3323 pass |
3324 return self.first() |
3324 return self.first() |
3325 if self: |
3325 return next(it(), None) |
3326 return it().next() |
|
3327 return None |
|
3328 |
3326 |
3329 def last(self): |
3327 def last(self): |
3330 if self._ascending: |
3328 if self._ascending: |
3331 it = self.fastdesc |
3329 it = self.fastdesc |
3332 else: |
3330 else: |
3334 if it is None: |
3332 if it is None: |
3335 # we need to consume all and try again |
3333 # we need to consume all and try again |
3336 for x in self._consumegen(): |
3334 for x in self._consumegen(): |
3337 pass |
3335 pass |
3338 return self.first() |
3336 return self.first() |
3339 if self: |
3337 return next(it(), None) |
3340 return it().next() |
|
3341 return None |
|
3342 |
3338 |
3343 def __repr__(self): |
3339 def __repr__(self): |
3344 d = {False: '-', True: '+'}[self._ascending] |
3340 d = {False: '-', True: '+'}[self._ascending] |
3345 return '<%s%s>' % (type(self).__name__, d) |
3341 return '<%s%s>' % (type(self).__name__, d) |
3346 |
3342 |