from helix.models.subarray import Subarray


def get_subarray_sizes_and_rows(panels):
    subarrays = []
    last_subarray = None
    for index, panel in enumerate(panels):
        if last_subarray != panel.subarray:
            subarray = Subarray(subarray_number=panel.subarray, start_row=index, size=0)

            subarrays.append(subarray)
            last_subarray = panel.subarray
        subarrays[-1].size += 1

    return subarrays


def extract_subarray(panels, subarray_number):
    return [panel for panel in panels if panel.subarray == subarray_number]
