mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 23:38:50 +03:00
revset: added isascending and isdescending methods to smartset classes
This methods state if the class is sorted in an ascending or descending order We need this to implement methods based on order on smartset classes in order to be able to create new objects with a given order. We cannot just rely on a simple boolean since unordered set are neither ascending nor descending.
This commit is contained in:
parent
8004a27cbf
commit
1e32ffe0b9
@ -2204,6 +2204,12 @@ class baseset(list):
|
||||
l = [r for r in x if r not in s]
|
||||
return baseset(list(self) + l)
|
||||
|
||||
def isascending(self):
|
||||
return False
|
||||
|
||||
def isdescending(self):
|
||||
return False
|
||||
|
||||
def filter(self, l):
|
||||
return lazyset(self, l)
|
||||
|
||||
@ -2270,6 +2276,12 @@ class lazyset(object):
|
||||
def set(self):
|
||||
return set([r for r in self])
|
||||
|
||||
def isascending(self):
|
||||
return False
|
||||
|
||||
def isdescending(self):
|
||||
return False
|
||||
|
||||
def filter(self, l):
|
||||
return lazyset(self, l)
|
||||
|
||||
@ -2309,6 +2321,12 @@ class orderedlazyset(lazyset):
|
||||
self._subset.sort(reverse=reverse)
|
||||
self._ascending = not reverse
|
||||
|
||||
def isascending(self):
|
||||
return self._ascending
|
||||
|
||||
def isdescending(self):
|
||||
return not self._ascending
|
||||
|
||||
def reverse(self):
|
||||
self._subset.reverse()
|
||||
self._ascending = not self._ascending
|
||||
@ -2621,6 +2639,12 @@ class spanset(object):
|
||||
def set(self):
|
||||
return self
|
||||
|
||||
def isascending(self):
|
||||
return self._start < self._end
|
||||
|
||||
def isdescending(self):
|
||||
return self._start > self._end
|
||||
|
||||
def filter(self, l):
|
||||
if self._start <= self._end:
|
||||
return orderedlazyset(self, l)
|
||||
|
Loading…
Reference in New Issue
Block a user