Module to handle spacemaps

Diff
anonymous

Diff

Differences From Artifact [50b39ef35f]:

To Artifact [91cf92dc95]:


50
51
52
53
54
55
56
57

58
59
60
61
62
63
64
65
66
		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]])
			else:
				last_pair = pair[0]
		self.clear()

	def rewind(self):
		'''Reinitialises internal ordered list of ranges.'''
		self.__walk_list = list(self.__pairs.keys())







|
>
|
|







50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
		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]:
				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())
332
333
334
335
336
337
338







			elif end == None or this[1] > end:
				end = this[1]
		self.clear()
		return(end)

	def __len__(self):
		return(len(self.__pairs))














>
>
>
>
>
>
>
333
334
335
336
337
338
339
340
341
342
343
344
345
346
			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)