Пример #1
0
    def __init__(self, reader, ms_level):
        self.reader = reader
        self.cursor = reader.cursor
        self.ms_level = ms_level

        self.first_run_slice_bb = None
        self.curr_scan_slices = None

        self.r_header_by_id = self.get_run_slice_header_by_id()

        self.cursor.execute(RunSliceIterator.sql_query, (self.ms_level, ))

        self.first_run_slice_bb = BoundingBox._make(self.cursor.fetchone())
Пример #2
0
    def _init_iter(self):
        if self.first_run_slice_bb is None:
            raise StopIteration
        self.curr_scan_slices = bb_to_scan_slices(
            bytes(self.first_run_slice_bb.data), self.first_run_slice_bb.run_slice_id, self.reader.struct_by_scan_id)

        while 1:
            row = self.cursor.fetchone()
            if row is None:
                self.first_run_slice_bb = None
                break
            bb = BoundingBox._make(row)
            if bb.run_slice_id == self.first_run_slice_bb.run_slice_id:
                self.curr_scan_slices += bb_to_scan_slices(
                    bytes(bb.data), bb.run_slice_id, self.reader.struct_by_scan_id)
            else:
                self.first_run_slice_bb = bb
                break