while True:
pair = self.pop()
if pair[0] == None:
break
pairs += pair,
last_pair = self.__bottom
for pair in pairs:
if last_pair in self.__pairs and pair[0] <= self.__pairs[last_pair] and pair[1] > self.__pairs[last_pair]:
self.__pairs[last_pair] = pair[1]
del(self.__pairs[pair[0]])
if last_pair in self.__pairs and pair[0] <= self.__pairs[last_pair]:
if pair[1] > self.__pairs[last_pair]:
self.__pairs[last_pair] = pair[1]
del(self.__pairs[pair[0]])
else:
last_pair = pair[0]
self.clear()
def rewind(self):
'''Reinitialises internal ordered list of ranges.'''
self.__walk_list = list(self.__pairs.keys())
elif end == None or this[1] > end:
end = this[1]
self.clear()
return(end)
def __len__(self):
return(len(self.__pairs))
def max(self):
result = None
for last in self.__pairs.itervalues():
if result == None or result < last:
result = last
return(result)