def reconstruct_raw(self, rawdata): start, end = self._rawdata_bounds r = rawdata[start:end] delattr(self, '_rawdata_bounds') try: if self._order_list: order = to_numpy_list(self._order_list) r = r.get_indexed(order) delattr(self, '_order_list') except AttributeError: pass self.set_raw(r)
def get_indexed(self, index): index = to_numpy_list(index) if self.is_indexed: return self[index] # check to make sure all indexes are valid, raises IndexError if not check = self.data[index] # index needs to be relative to the base array base_index = index + self.get_raw_index(0) data_base, style_base = self.get_bases() return SegmentData(data_base, style_base, self.extra, order=base_index)