Ejemplo n.º 1
0
def init_tab2(paths):
    tab2 = QWidget()
    tab2_layout = QHBoxLayout()
    tab2.setLayout(tab2_layout)
    filler = QLabel('')
    filler.setFixedWidth(1)

    # Left box
    tab2_leftbox = QWidget()
    tab2_leftbox_layout = QVBoxLayout()
    tab2_leftbox.setLayout(tab2_leftbox_layout)

    # Top
    tab2_leftbox_top = QWidget()
    tab2_leftbox_top_layout = QFormLayout()
    tab2_leftbox_top.setLayout(tab2_leftbox_top_layout)

    tab2_choose_option_workflow = choose_option('workflow', paths['nf'])
    tab2_choose_option_boxcar_convert = choose_option('boxcar_convert',
                                                      paths['nf'])
    tab2_choose_option_profile = choose_option('profile', paths['sh'])
    tab2_choose_option_parallel_msconvert = choose_option(
        'parallel_msconvert', paths['nf'])
    tab2_choose_option_parallel_quandenser = choose_option(
        'parallel_quandenser', paths['nf'])

    # Always visible
    tab2_leftbox_top_layout.addRow(QLabel('Choose workflow'),
                                   tab2_choose_option_workflow)
    tab2_leftbox_top_layout.addRow(QLabel('Profile'),
                                   tab2_choose_option_profile)
    tab2_leftbox_top_layout.addRow(QLabel('Enable boxcar conversion'),
                                   tab2_choose_option_boxcar_convert)
    tab2_leftbox_top_layout.addRow(QLabel('Enable parallel MSconvert'),
                                   tab2_choose_option_parallel_msconvert)
    tab2_leftbox_top_layout.addRow(QLabel('Enable parallel quandenser'),
                                   tab2_choose_option_parallel_quandenser)
    tab2_leftbox_top_layout.addRow(filler, filler)  # Empty space
    tab2_leftbox_layout.addWidget(tab2_leftbox_top)

    # Bottom, these will be hidden or shown depending on profile option
    tab2_hidden = QWidget()
    tab2_hidden.hidden_object = True
    tab2_hidden_layout = QStackedLayout()
    tab2_hidden.setLayout(tab2_hidden_layout)

    # Stack 1: Empty layout. Cluster disabled
    tab2_hidden_stack_1 = QWidget()
    tab2_hidden_stack_1_layout = QFormLayout()
    tab2_hidden_stack_1.setLayout(tab2_hidden_stack_1_layout)

    # Stack 2: Regular quandenser, cluster enabled
    tab2_hidden_stack_2 = QWidget()
    tab2_hidden_stack_2_layout = QFormLayout()
    tab2_hidden_stack_2_layout.setVerticalSpacing(0)
    tab2_hidden_stack_2.setLayout(tab2_hidden_stack_2_layout)

    stack_2_widgets = []
    stack_2_widgets.append(get_tooltip('cluster-type'))
    stack_2_widgets.append(choose_option("process.executor", paths['nf']))
    stack_2_widgets.append(filler)
    stack_2_widgets.append(get_tooltip('cluster-arguments'))
    stack_2_widgets.append(
        cluster_arguments("process.clusterOptions", paths['nf']))
    stack_2_widgets.append(filler)
    stack_2_widgets.append(get_tooltip('cluster-queue'))
    stack_2_widgets.append(cluster_arguments("process.queue", paths['nf']))
    stack_2_widgets.append(filler)
    stack_2_widgets.append(QLabel('MSconvert cpus + time'))
    stack_2_widgets.append(set_cpus("msconvert_cpus", paths['nf']))
    stack_2_widgets.append(set_time("msconvert_time", paths['nf']))
    stack_2_widgets.append(QLabel('Boxcar convert cpus + time'))
    stack_2_widgets.append(set_cpus("boxcar_convert_cpus", paths['nf']))
    stack_2_widgets.append(set_time("boxcar_convert_time", paths['nf']))
    stack_2_widgets.append(QLabel('Quandenser cpus + time'))
    stack_2_widgets.append(set_cpus("quandenser_cpus", paths['nf']))
    stack_2_widgets.append(set_time("quandenser_time", paths['nf']))
    stack_2_widgets.append(QLabel('Tide cpus + time'))
    stack_2_widgets.append(set_cpus("tide_search_cpus", paths['nf']))
    stack_2_widgets.append(set_time("tide_search_time", paths['nf']))
    stack_2_widgets.append(QLabel('Triqler cpus + time'))
    stack_2_widgets.append(set_cpus("triqler_cpus", paths['nf']))
    stack_2_widgets.append(set_time("triqler_time", paths['nf']))

    list_itr = iter(stack_2_widgets)
    for label in list_itr:
        combine_widget = QWidget()
        combine_widget_layout = QFormLayout()
        combine_widget.setLayout(combine_widget_layout)
        widget1, widget2 = next(list_itr), next(list_itr)
        combine_widget_layout.addRow(widget1, widget2)
        tab2_hidden_stack_2_layout.addRow(label, combine_widget)

    # Stack 3: Parallel quandenser, cluster enabled
    tab2_hidden_stack_3 = QWidget()
    tab2_hidden_stack_3_layout = QFormLayout()
    tab2_hidden_stack_3_layout.setVerticalSpacing(0)
    tab2_hidden_stack_3.setLayout(tab2_hidden_stack_3_layout)

    stack_3_widgets = []
    stack_3_widgets.append(get_tooltip('cluster-type'))
    stack_3_widgets.append(choose_option("process.executor", paths['nf']))
    stack_3_widgets.append(filler)
    stack_3_widgets.append(get_tooltip('cluster-arguments'))
    stack_3_widgets.append(
        cluster_arguments("process.clusterOptions", paths['nf']))
    stack_3_widgets.append(filler)
    stack_3_widgets.append(get_tooltip('cluster-queue'))
    stack_3_widgets.append(cluster_arguments("process.queue", paths['nf']))
    stack_3_widgets.append(filler)
    stack_3_widgets.append(QLabel('MSconvert cpus + time'))
    stack_3_widgets.append(set_cpus("msconvert_cpus", paths['nf']))
    stack_3_widgets.append(set_time("msconvert_time", paths['nf']))
    stack_3_widgets.append(QLabel('Boxcar convert cpus + time'))
    stack_3_widgets.append(set_cpus("boxcar_convert_cpus", paths['nf']))
    stack_3_widgets.append(set_time("boxcar_convert_time", paths['nf']))
    stack_3_widgets.append(QLabel('Quandenser p1 cpus + time'))
    stack_3_widgets.append(set_cpus("quandenser_parallel_1_cpus", paths['nf']))
    stack_3_widgets.append(set_time("quandenser_parallel_1_time", paths['nf']))
    stack_3_widgets.append(QLabel('Quandenser p2 cpus + time'))
    stack_3_widgets.append(set_cpus("quandenser_parallel_2_cpus", paths['nf']))
    stack_3_widgets.append(set_time("quandenser_parallel_2_time", paths['nf']))
    stack_3_widgets.append(QLabel('Quandenser p3 cpus + time'))
    stack_3_widgets.append(set_cpus("quandenser_parallel_3_cpus", paths['nf']))
    stack_3_widgets.append(set_time("quandenser_parallel_3_time", paths['nf']))
    stack_3_widgets.append(QLabel('Quandenser p4 cpus + time'))
    stack_3_widgets.append(set_cpus("quandenser_parallel_4_cpus", paths['nf']))
    stack_3_widgets.append(set_time("quandenser_parallel_4_time", paths['nf']))
    stack_3_widgets.append(QLabel('Tide cpus + time'))
    stack_3_widgets.append(set_cpus("tide_search_cpus", paths['nf']))
    stack_3_widgets.append(set_time("tide_search_time", paths['nf']))
    stack_3_widgets.append(QLabel('Triqler cpus + time'))
    stack_3_widgets.append(set_cpus("triqler_cpus", paths['nf']))
    stack_3_widgets.append(set_time("triqler_time", paths['nf']))
    stack_3_widgets.extend([filler, filler, filler])  # Empty space

    list_itr = iter(stack_3_widgets)
    for label in list_itr:
        combine_widget = QWidget()
        combine_widget_layout = QFormLayout()
        combine_widget.setLayout(combine_widget_layout)
        widget1, widget2 = next(list_itr), next(list_itr)
        combine_widget_layout.addRow(widget1, widget2)
        tab2_hidden_stack_3_layout.addRow(label, combine_widget)

    # Add stacks
    tab2_hidden_layout.addWidget(tab2_hidden_stack_1)
    tab2_hidden_layout.addWidget(tab2_hidden_stack_2)
    tab2_hidden_layout.addWidget(tab2_hidden_stack_3)

    # Add hidden stacked layout
    tab2_leftbox_layout.addWidget(tab2_hidden)

    # Right box
    tab2_rightbox = QWidget()
    tab2_rightbox_layout = QHBoxLayout()
    tab2_rightbox.setLayout(tab2_rightbox_layout)

    pipe_parser = custom_config_parser()
    pipe_parser.load(paths['pipe'])
    if pipe_parser.get('disable-opengl') in ['false', '']:
        tab2_workflow = workflow()
        tab2_rightbox_layout.addWidget(tab2_workflow)
    else:
        tab2_workflow = tooltip_label("OpenGL disabled",
                                      "OpenGL disabled",
                                      style=True)

    tab2_rightbox_layout.addWidget(tab2_workflow)
    tab2_layout.addWidget(tab2_rightbox)

    # Combine
    tab2_layout.addWidget(tab2_leftbox)
    tab2_layout.addWidget(tab2_rightbox)
    return tab2