def setRanges(self, ranges): if ranges is None: self._ranges = None else: self._ranges = RangeSet(ranges) assert self._ranges.rangesAreValid()
def addRange(self, range): if self._ranges is None: if isinstance(range, int): range = (range, range) self._ranges = RangeSet([range]) else: self._ranges.selectRange(range)
def __init__(self, **kwds): super(NumericIndex, self).__init__(**kwds) self.skipList = SkipList(self) self._ranges = None self._descending = False if not kwds.get('loading', False): if 'ranges' in kwds: self._ranges = RangeSet(kwds.pop('ranges')) self._descending = str(kwds.pop('descending', 'False')) == 'True'
def _readValue(self, itemReader, offset, data): offset = super(NumericIndex, self)._readValue(itemReader, offset, data) withRanges = data[offset] offset += 1 if withRanges: count = data[offset] * 2 offset += 1 ranges = [data[i:i + 2] for i in xrange(offset, offset + count, 2)] self._ranges = RangeSet(ranges) offset += count else: self._ranges = None self._descending = data[offset] return offset + 1