Newer
Older
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'navrh.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from src import pydot_example
Ivo Peterek
committed
from collections import OrderedDict as ordDict
Ivo Peterek
committed
from runpy import run_path
from PyQt5 import QtCore, QtGui, QtWidgets
from pathlib import Path
class CustomStepSpinBox(QtWidgets.QDoubleSpinBox):
def __init__(self):
QtWidgets.QDoubleSpinBox.__init__(self)
def stepBy(self, steps: int):
if steps == 1:
self.setValue(self.value()*10)
if self.decimals() > 0:
self.setDecimals(self.decimals()-1)
if steps == -1:
if self.decimals() < 324 and (self.value()/10) % 1 != 0: # maximum value for decimals is 323
self.setDecimals(self.decimals()+1)
self.setValue(self.value()/10)
def __init__(self):
self.current_labels_dic = {'xLabel': None, 'funcLabel': None}
self.tab_widget = None
self.data_path = ''
self.config_path = ''
Ivo Peterek
committed
self.tab_Regions = None
self.parameters_count = 0
self.possible_time_vars = []
self.possible_energy_vars = []
self.time_var = ''
self.energy_var = ''
self.measurement_params = []
self.possible_meric_parameters = []
self.opt_settings_items_dic = {}
self.current_opt_items_dic = {}
self.onlyFloat = QtGui.QDoubleValidator()
self.all_nested_regs_selected = False
self.config_dic = {}
Ivo Peterek
committed
self.first_tab_change = True
self.tree_data_selected = dict()
def setupUi(self, TabWidget_p, DataPath, ConfigPath):
self.tab_widget = TabWidget_p
self.data_path = DataPath
self.config_path = ConfigPath
if self.config_path:
self.config_dic = run_path(self.config_path)
if 'root_' \
'folder' in self.config_dic and self.config_dic['root_folder'][0][0] and not self.data_path:
self.data_path = self.config_dic['root_folder'][0][0]
for region in os.listdir(self.data_path):
if os.path.isdir(self.data_path + "/" + region):
if glob.glob(glob.escape(self.data_path) + '/' + region + '/*.csv'):
self.regions = sorted(self.regions, key=lambda s: s.lower())
csv_names = glob.glob(glob.escape(self.data_path) + '/' + self.regions[0] + '/*.csv')
first_csv_path = csv_names[0]
dkey = ''
with open(first_csv_path) as csvfile:
reader = csv.reader(csvfile, delimiter=',')
if line[0].startswith('#') and not line[0].startswith("# CALLTREE"):
elif dkey and line[0] is not dkey and not line[0].startswith("# CALLTREE"):
self.ylabel_dic.setdefault(dkey, []).append(line[0].strip())
self.ylabel_dic[k] = sorted(list(set(v)))
first_csv_name = first_csv_path.split('/')[-1]
self.parameters_count = first_csv_name.count('_')+1
self.parameter_values_dic = {}
for i in range(self.parameters_count):
self.parameter_values_dic[i] = []
for n, item in enumerate(csv_names):
item = item.split('/')[-1]
item = os.path.splitext(item)[0]
item = item.split('_')
for i in range(self.parameters_count):
self.parameter_values_dic[i].append(item[i])
for k, v in self.parameter_values_dic.items():
if v[0].isdigit():
self.parameter_values_dic[k] = sorted(list(set(v)), key=lambda s: int(s), reverse=True)
else:
self.parameter_values_dic[k] = sorted(list(set(v)), reverse=True)
measurement_info_path = Path(self.data_path + '/measurementInfo.json')
if measurement_info_path.exists():
with open(measurement_info_path) as f:
try:
measurement_info_file_data = json.load(f)
self.measurement_params = measurement_info_file_data['DataFormat'].split("_")
except json.decoder.JSONDecodeError:
self.__print_error_msg('measurementInfo.json file is not in valid format')
i = 0
self.reg_times = {}
for subdir, dirs, files in os.walk(self.data_path):
if not i:
i += 1
continue
with open('{}/{}'.format(subdir, files[0])) as f:
for line in f:
line = line.strip()
if 'Runtime of function' in line:
tmp2 = float(line.split(',')[-1])
self.reg_times[subdir.split('/')[-1]] = tmp2
break
TabWidget_p.setObjectName("TabWidget")
TabWidget_p.setWindowModality(QtCore.Qt.NonModal)
Ivo Peterek
committed
TabWidget_p.setEnabled(True)
TabWidget_p.resize(794, 589)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(TabWidget_p.sizePolicy().hasHeightForWidth())
TabWidget_p.setSizePolicy(sizePolicy)
TabWidget_p.setMinimumSize(QtCore.QSize(400, 200))
TabWidget_p.setAutoFillBackground(False)
self.tab_Regions = QtWidgets.QWidget()
self.tab_Regions.setEnabled(True)
self.tab_Regions.setMinimumSize(QtCore.QSize(794, 0))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
font.setStrikeOut(False)
font.setKerning(False)
self.tab_Regions.setFont(font)
self.tab_Regions.setObjectName("tab_Regions")
self.pushButton_Regions_Next = QtWidgets.QPushButton(self.tab_Regions)
self.pushButton_Regions_Next.setGeometry(QtCore.QRect(660, 520, 99, 27))
pet0205
committed
font = QtGui.QFont()
font.setPointSize(11)
self.pushButton_Regions_Next.setFont(font)
self.pushButton_Regions_Next.setObjectName("pushButton_Regions_Next")
self.label_MainRegions = QtWidgets.QLabel(self.tab_Regions)
self.label_MainRegions.setGeometry(QtCore.QRect(50, 20, 150, 27))
pet0205
committed
font = QtGui.QFont()
font.setPointSize(11)
self.label_MainRegions.setFont(font)
self.label_MainRegions.setObjectName("label_MainRegions")
self.comboBox_MainRegion = QtWidgets.QComboBox(self.tab_Regions)
self.comboBox_MainRegion.setGeometry(QtCore.QRect(50, 50, 251, 27))
font.setPointSize(11)
self.comboBox_MainRegion.setFont(font)
self.comboBox_MainRegion.setEditable(False)
self.comboBox_MainRegion.setCurrentText("")
self.comboBox_MainRegion.setObjectName("comboBox_MainRegion")
self.label_IterationRegion = QtWidgets.QLabel(self.tab_Regions)
self.label_IterationRegion.setGeometry(QtCore.QRect(50, 90, 150, 27))
font = QtGui.QFont()
font.setPointSize(11)
self.label_IterationRegion.setFont(font)
self.label_IterationRegion.setObjectName("label_IterationRegion")
self.comboBox_IterationRegion = QtWidgets.QComboBox(self.tab_Regions)
self.comboBox_IterationRegion.setGeometry(QtCore.QRect(50, 120, 251, 27))
font = QtGui.QFont()
font.setPointSize(11)
self.comboBox_IterationRegion.setFont(font)
self.comboBox_IterationRegion.setEditable(False)
self.comboBox_IterationRegion.setObjectName("comboBox_IterationRegion")
self.widget_nested_regions = QtWidgets.QWidget(self.tab_Regions)
self.widget_nested_regions.setGeometry(QtCore.QRect(360, 50, 401, 421))
self.widget_nested_regions.setObjectName("widget_nested_regions")
self.frame_nested_regions = QtWidgets.QFrame(self.widget_nested_regions)
self.frame_nested_regions.setGeometry(QtCore.QRect(0, 0, 401, 421))
self.frame_nested_regions.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_nested_regions.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_nested_regions.setObjectName("frame_nested_regions")
self.label_NestedRegions = QtWidgets.QLabel(self.tab_Regions)
Ivo Peterek
committed
self.label_NestedRegions.setGeometry(QtCore.QRect(360, 20, 150, 27))
self.label_NestedRegions.setFont(font)
self.label_NestedRegions.setObjectName("label_NestedRegions")
self.pushButton_Regions_All = QtWidgets.QPushButton(self.tab_Regions)
self.pushButton_Regions_All.setGeometry(QtCore.QRect(660, 480, 99, 27))
font = QtGui.QFont()
font.setPointSize(11)
self.pushButton_Regions_All.setFont(font)
self.pushButton_Regions_All.setObjectName("pushButton_Regions_All")
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
self.doubleSpinBox = QtWidgets.QDoubleSpinBox(self.tab_Regions)
self.doubleSpinBox.setGeometry(QtCore.QRect(50, 200, 121, 26))
self.doubleSpinBox.setDecimals(8)
self.doubleSpinBox.setObjectName("doubleSpinBox")
self.pushButton_tree = QtWidgets.QPushButton(self.tab_Regions)
self.pushButton_tree.setGeometry(QtCore.QRect(50, 290, 151, 27))
font = QtGui.QFont()
font.setPointSize(11)
self.pushButton_tree.setFont(font)
self.pushButton_tree.setObjectName("pushButton_tree")
self.pushButton_filter = QtWidgets.QPushButton(self.tab_Regions)
self.pushButton_filter.setGeometry(QtCore.QRect(50, 240, 99, 27))
font = QtGui.QFont()
font.setPointSize(11)
self.pushButton_filter.setFont(font)
self.pushButton_filter.setObjectName("pushButton_filter")
self.label_sec = QtWidgets.QLabel(self.tab_Regions)
self.label_sec.setGeometry(QtCore.QRect(180, 200, 31, 27))
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(True)
font.setWeight(75)
self.label_sec.setFont(font)
self.label_sec.setObjectName("label_sec")
self.label_filter = QtWidgets.QLabel(self.tab_Regions)
self.label_filter.setGeometry(QtCore.QRect(50, 170, 231, 27))
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(True)
font.setWeight(75)
self.label_filter.setFont(font)
self.label_filter.setObjectName("label_filter")
TabWidget_p.addTab(self.tab_Regions, "")
self.tab_DataParameters = QtWidgets.QWidget()
self.tab_DataParameters.setObjectName("tab_DataParameters")
self.pushButton_DataParam_Next = QtWidgets.QPushButton(self.tab_DataParameters)
self.pushButton_DataParam_Next.setGeometry(QtCore.QRect(660, 520, 99, 27))
self.pushButton_DataParam_Next.setObjectName("pushButton_DataParam_Next")
self.pushButton_DataParam_Prev = QtWidgets.QPushButton(self.tab_DataParameters)
self.pushButton_DataParam_Prev.setGeometry(QtCore.QRect(560, 520, 99, 27))
self.pushButton_DataParam_Prev.setObjectName("pushButton_DataParam_Prev")
self.label_ylabel = QtWidgets.QLabel(self.tab_DataParameters)
self.label_ylabel.setGeometry(QtCore.QRect(50, 20, 150, 27))
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(True)
font.setWeight(75)
self.label_ylabel.setFont(font)
self.label_ylabel.setObjectName("label_ylabel")
self.widget_parameters = QtWidgets.QWidget(self.tab_DataParameters)
self.widget_parameters.setGeometry(QtCore.QRect(50, 210, 711, 300))
self.widget_parameters.setObjectName("widget_parameters")
self.frame_parameters = QtWidgets.QFrame(self.widget_parameters)
self.frame_parameters.setGeometry(QtCore.QRect(0, 0, 711, 300))
self.frame_parameters.setFrameShape(QtWidgets.QFrame.NoFrame)
self.frame_parameters.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_parameters.setObjectName("frame_parameters")
self.label_parameters = QtWidgets.QLabel(self.tab_DataParameters)
self.label_parameters.setGeometry(QtCore.QRect(50, 190, 150, 27))
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(True)
font.setWeight(75)
self.label_parameters.setFont(font)
self.label_parameters.setObjectName("label_parameters")
self.treeWidget_ylabel = QtWidgets.QTreeWidget(self.tab_DataParameters)
self.treeWidget_ylabel.setGeometry(QtCore.QRect(50, 50, 471, 140))
self.treeWidget_ylabel.setObjectName("treeWidget_ylabel")
self.treeWidget_ylabel.headerItem().setText(0, "1")
self.treeWidget_ylabel.header().setVisible(False)
self.checkBox_time_energy_vars = QtWidgets.QCheckBox(self.tab_DataParameters)
self.checkBox_time_energy_vars.setGeometry(QtCore.QRect(540, 20, 191, 23))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.checkBox_time_energy_vars.setFont(font)
self.checkBox_time_energy_vars.setObjectName("checkBox_time_energy_vars")
Ivo Peterek
committed
self.frame_time_energy = QtWidgets.QFrame(self.tab_DataParameters)
self.frame_time_energy.setGeometry(QtCore.QRect(540, 50, 221, 141))
self.frame_time_energy.setFrameShape(QtWidgets.QFrame.NoFrame)
self.frame_time_energy.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_time_energy.setObjectName("frame_time_energy")
Ivo Peterek
committed
self.lineEdit_baseline = QtWidgets.QLineEdit(self.frame_time_energy)
self.lineEdit_baseline.setGeometry(QtCore.QRect(80, 110, 113, 25))
self.lineEdit_baseline.setObjectName("lineEdit_baseline")
self.comboBox_time = QtWidgets.QComboBox(self.frame_time_energy)
self.comboBox_time.setEnabled(True)
self.comboBox_time.setGeometry(QtCore.QRect(0, 20, 221, 25))
self.comboBox_time.setObjectName("comboBox_time")
self.label_Baseline = QtWidgets.QLabel(self.frame_time_energy)
self.label_Baseline.setGeometry(QtCore.QRect(0, 110, 81, 27))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
Ivo Peterek
committed
self.label_Baseline.setFont(font)
self.label_Baseline.setObjectName("label_Baseline")
self.label_energy = QtWidgets.QLabel(self.frame_time_energy)
self.label_energy.setEnabled(True)
self.label_energy.setGeometry(QtCore.QRect(0, 50, 67, 17))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_energy.setFont(font)
self.label_energy.setObjectName("label_energy")
Ivo Peterek
committed
self.comboBox_energy = QtWidgets.QComboBox(self.frame_time_energy)
self.comboBox_energy.setEnabled(True)
self.comboBox_energy.setGeometry(QtCore.QRect(0, 70, 221, 25))
self.comboBox_energy.setObjectName("comboBox_energy")
Ivo Peterek
committed
self.label_W = QtWidgets.QLabel(self.frame_time_energy)
self.label_W.setGeometry(QtCore.QRect(200, 110, 31, 27))
self.label_W.setObjectName("label_W")
self.label_time = QtWidgets.QLabel(self.frame_time_energy)
self.label_time.setEnabled(True)
self.label_time.setGeometry(QtCore.QRect(0, 0, 67, 17))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_time.setFont(font)
self.label_time.setObjectName("label_time")
myform_param = QtWidgets.QFormLayout()
label_parameters_list = []
self.lineEdit_parameters_list = []
self.comboBox_parameters_list = []
self.comboBox_default_vals_list = []
self.spinBox_default_multp_list = []
self.lineEdit_default_unit_list = []
self.all_parameters = ['key', 'config', 'funcLabel', 'xLabel']
self.parameters_combobox_items_dic = {}
head_label1 = QtWidgets.QLabel()
head_label1.setFixedWidth(150)
head_label1.setFont(font)
head_label2 = QtWidgets.QLabel('Role')
head_label2.setFixedWidth(100)
head_label2.setFont(font)
head_label3 = QtWidgets.QLabel('Default value')
head_label3.setFixedWidth(150)
head_label3.setFont(font)
head_label4 = QtWidgets.QLabel('Multiplier')
head_label4.setFixedWidth(100)
head_label4.setFont(font)
head_label5 = QtWidgets.QLabel('Unit')
head_label5.setFixedWidth(100)
head_label5.setFont(font)
new_row = QtWidgets.QHBoxLayout()
new_row.addWidget(head_label1)
new_row.addWidget(head_label2)
new_row.addWidget(head_label3)
new_row.addWidget(head_label4)
new_row.addWidget(head_label5)
myform_param.addRow(new_row)
for i in range(self.parameters_count):
label_parameters_list.append(QtWidgets.QLabel('Parameter {}'.format(i+1)))
label_parameters_list[i].setFont(font)
myform_param.addRow(label_parameters_list[i])
self.lineEdit_parameters_list.append(QtWidgets.QLineEdit())
self.comboBox_parameters_list.append(QtWidgets.QComboBox())
self.comboBox_default_vals_list.append(QtWidgets.QComboBox())
self.spinBox_default_multp_list.append(CustomStepSpinBox())
self.lineEdit_default_unit_list.append(QtWidgets.QLineEdit())
self.parameters_combobox_items_dic[self.comboBox_parameters_list[-1]] = list(self.all_parameters)
self.comboBox_default_vals_list[i].addItems(self.parameter_values_dic[i])
self.comboBox_parameters_list[i].addItems(self.all_parameters)
func_list.append((lambda tmp: lambda: self.__parameters_combobox(self.comboBox_parameters_list[tmp]))(i))
self.comboBox_parameters_list[i].activated.connect(func_list[-1])
self.lineEdit_parameters_list[i].textChanged.connect(self.__parameter_name_changed)
Ivo Peterek
committed
if self.measurement_params and i < len(self.measurement_params):
self.lineEdit_parameters_list[i].setText(self.measurement_params[i])
self.lineEdit_parameters_list[i].setFixedWidth(150)
self.comboBox_parameters_list[i].setFixedWidth(100)
self.comboBox_default_vals_list[i].setFixedWidth(150)
self.spinBox_default_multp_list[i].setFixedWidth(100)
self.spinBox_default_multp_list[i].setEnabled(False)
self.spinBox_default_multp_list[i].setValue(1)
self.spinBox_default_multp_list[i].setDecimals(0)
self.spinBox_default_multp_list[i].setRange(sys.float_info.min, sys.float_info.max)
self.lineEdit_default_unit_list[i].setFixedWidth(100)
new_row = QtWidgets.QHBoxLayout()
new_row.addWidget(self.lineEdit_parameters_list[i])
new_row.addWidget(self.comboBox_parameters_list[i])
new_row.addWidget(self.comboBox_default_vals_list[i])
new_row.addWidget(self.spinBox_default_multp_list[i])
new_row.addWidget(self.lineEdit_default_unit_list[i])
myform_param.addRow(new_row)
self.frame_parameters.setLayout(myform_param)
scroll = QtWidgets.QScrollArea()
scroll.setWidget(self.frame_parameters)
scroll.setWidgetResizable(True)
layout = QtWidgets.QVBoxLayout(self.widget_parameters)
layout.addWidget(scroll)
TabWidget_p.addTab(self.tab_DataParameters, "")
self.tab_AddOptions = QtWidgets.QWidget()
self.tab_AddOptions.setObjectName("tab_AddOptions")
self.pushButton_AddOpts_Prev = QtWidgets.QPushButton(self.tab_AddOptions)
Ivo Peterek
committed
self.pushButton_AddOpts_Prev.setGeometry(QtCore.QRect(410, 520, 99, 27))
self.pushButton_AddOpts_Prev.setObjectName("pushButton_AddOpts_Prev")
self.checkBox_DetailedInfo = QtWidgets.QCheckBox(self.tab_AddOptions)
Ivo Peterek
committed
self.checkBox_DetailedInfo.setGeometry(QtCore.QRect(50, 20, 121, 22))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.checkBox_DetailedInfo.setFont(font)
self.checkBox_DetailedInfo.setObjectName("checkBox_DetailedInfo")
self.checkBox_SmoothRunsAverage = QtWidgets.QCheckBox(self.tab_AddOptions)
Ivo Peterek
committed
self.checkBox_SmoothRunsAverage.setGeometry(QtCore.QRect(50, 50, 181, 22))
pet0205
committed
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.checkBox_SmoothRunsAverage.setFont(font)
self.checkBox_SmoothRunsAverage.setObjectName("checkBox_SmoothRunsAverage")
Ivo Peterek
committed
self.checkBox_GenerateOptSettingFile = QtWidgets.QCheckBox(self.tab_AddOptions)
Ivo Peterek
committed
self.checkBox_GenerateOptSettingFile.setGeometry(QtCore.QRect(50, 110, 241, 27))
pet0205
committed
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
Ivo Peterek
committed
self.checkBox_GenerateOptSettingFile.setFont(font)
self.checkBox_GenerateOptSettingFile.setChecked(False)
self.checkBox_GenerateOptSettingFile.setObjectName("checkBox_GenerateOptSettingFile")
self.pushButton_Generate = QtWidgets.QPushButton(self.tab_AddOptions)
Ivo Peterek
committed
self.pushButton_Generate.setGeometry(QtCore.QRect(510, 520, 99, 27))
self.pushButton_Generate.setObjectName("pushButton_Generate")
self.frame_opt_settings = QtWidgets.QFrame(self.tab_AddOptions)
Ivo Peterek
committed
self.frame_opt_settings.setGeometry(QtCore.QRect(50, 150, 451, 271))
self.frame_opt_settings.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_opt_settings.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_opt_settings.setObjectName("frame_opt_settings")
self.pushButton_BrowseOptSettings = QtWidgets.QPushButton(self.frame_opt_settings)
self.pushButton_BrowseOptSettings.setEnabled(True)
self.pushButton_BrowseOptSettings.setGeometry(QtCore.QRect(320, 80, 99, 27))
self.pushButton_BrowseOptSettings.setObjectName("pushButton_BrowseOptSettings")
self.label_Role = QtWidgets.QLabel(self.frame_opt_settings)
self.label_Role.setEnabled(True)
self.label_Role.setGeometry(QtCore.QRect(10, 130, 241, 23))
pet0205
committed
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.label_Role.setFont(font)
self.label_Role.setObjectName("label_Role")
self.comboBox_UncoreFreq = QtWidgets.QComboBox(self.frame_opt_settings)
self.comboBox_UncoreFreq.setEnabled(True)
self.comboBox_UncoreFreq.setGeometry(QtCore.QRect(160, 195, 111, 27))
self.comboBox_UncoreFreq.setEditable(False)
self.comboBox_UncoreFreq.setObjectName("comboBox_UncoreFreq")
self.lineEdit_OptSettingsFilePath = QtWidgets.QLineEdit(self.frame_opt_settings)
self.lineEdit_OptSettingsFilePath.setEnabled(True)
self.lineEdit_OptSettingsFilePath.setGeometry(QtCore.QRect(10, 80, 300, 27))
self.lineEdit_OptSettingsFilePath.setObjectName("lineEdit_OptSettingsFilePath")
self.comboBox_NumThreads = QtWidgets.QComboBox(self.frame_opt_settings)
self.comboBox_NumThreads.setEnabled(True)
self.comboBox_NumThreads.setGeometry(QtCore.QRect(160, 230, 111, 27))
self.comboBox_NumThreads.setEditable(False)
self.comboBox_NumThreads.setObjectName("comboBox_NumThreads")
self.label_NumThreads = QtWidgets.QLabel(self.frame_opt_settings)
self.label_NumThreads.setEnabled(True)
self.label_NumThreads.setGeometry(QtCore.QRect(10, 230, 141, 27))
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.label_NumThreads.setFont(font)
self.label_NumThreads.setObjectName("label_NumThreads")
self.label_CoreFreq = QtWidgets.QLabel(self.frame_opt_settings)
self.label_CoreFreq.setEnabled(True)
self.label_CoreFreq.setGeometry(QtCore.QRect(10, 160, 111, 27))
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.label_CoreFreq.setFont(font)
self.label_CoreFreq.setObjectName("label_CoreFreq")
self.label_UncoreFreq = QtWidgets.QLabel(self.frame_opt_settings)
self.label_UncoreFreq.setEnabled(True)
self.label_UncoreFreq.setGeometry(QtCore.QRect(10, 195, 125, 27))
pet0205
committed
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
Ivo Peterek
committed
self.label_UncoreFreq.setFont(font)
self.label_UncoreFreq.setObjectName("label_UncoreFreq")
self.label_PathToOptSetting = QtWidgets.QLabel(self.frame_opt_settings)
self.label_PathToOptSetting.setEnabled(True)
self.label_PathToOptSetting.setGeometry(QtCore.QRect(10, 50, 211, 27))
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.label_PathToOptSetting.setFont(font)
self.label_PathToOptSetting.setObjectName("label_PathToOptSetting")
self.comboBox_CoreFreq = QtWidgets.QComboBox(self.frame_opt_settings)
self.comboBox_CoreFreq.setEnabled(True)
self.comboBox_CoreFreq.setGeometry(QtCore.QRect(160, 160, 111, 27))
self.comboBox_CoreFreq.setEditable(False)
self.comboBox_CoreFreq.setObjectName("comboBox_CoreFreq")
self.label = QtWidgets.QLabel(self.frame_opt_settings)
self.label.setGeometry(QtCore.QRect(10, 10, 301, 17))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
self.checkBox_test_csv_init = QtWidgets.QCheckBox(self.tab_AddOptions)
Ivo Peterek
committed
self.checkBox_test_csv_init.setGeometry(QtCore.QRect(50, 80, 181, 22))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.checkBox_test_csv_init.setFont(font)
self.checkBox_test_csv_init.setObjectName("checkBox_test_csv_init")
self.pushButton_run = QtWidgets.QPushButton(self.tab_AddOptions)
Ivo Peterek
committed
self.pushButton_run.setGeometry(QtCore.QRect(610, 520, 151, 27))
self.pushButton_run.setObjectName("pushButton_run")
Ivo Peterek
committed
TabWidget_p.addTab(self.tab_AddOptions, "")
self.retranslateUi(TabWidget_p)
TabWidget_p.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(TabWidget_p)
myform = QtWidgets.QFormLayout()
self.nested_regs_list = []
self.nested_regs_selected_dic = ordDict()
for i, region in enumerate(self.regions):
self.nested_regs_list.append(QtWidgets.QCheckBox(region))
if 'all_nested_regs' in self.config_dic and region in self.config_dic['all_nested_regs']:
self.nested_regs_list[i].setCheckState(2)
self.nested_regs_list[i].toggled.connect(self.__nested_region_check_changed)
myform.addRow(self.nested_regs_list[i])
self.frame_nested_regions.setLayout(myform)
scroll = QtWidgets.QScrollArea()
scroll.setWidget(self.frame_nested_regions)
scroll.setWidgetResizable(True)
layout = QtWidgets.QVBoxLayout(self.widget_nested_regions)
layout.addWidget(scroll)
self.frame_opt_settings.setEnabled(False)
Ivo Peterek
committed
self.frame_time_energy.setEnabled(False)
Ivo Peterek
committed
self.pushButton_Regions_Next.clicked.connect(self.__next)
self.pushButton_DataParam_Next.clicked.connect(self.__next)
self.pushButton_DataParam_Prev.clicked.connect(self.__previous)
self.pushButton_AddOpts_Prev.clicked.connect(self.__previous)
self.pushButton_Generate.clicked.connect(self.__generate_btn)
self.pushButton_BrowseOptSettings.clicked.connect(self.__opt_settings_path)
self.pushButton_Regions_All.clicked.connect(self.__select_all_nested_regions)
self.pushButton_run.clicked.connect(self.__save_and_run)
self.pushButton_tree.clicked.connect(self.__show_tree)
self.pushButton_filter.clicked.connect(self.__filter)
Ivo Peterek
committed
self.comboBox_MainRegion.setEditable(False)
self.comboBox_MainRegion.activated.connect(self.__update_nested_regions)
self.comboBox_IterationRegion.addItems(['None'] + self.regions)
self.comboBox_IterationRegion.setEditable(False)
self.checkBox_GenerateOptSettingFile.stateChanged.connect(self.__optChecked)
self.checkBox_time_energy_vars.stateChanged.connect(self.__opt_time_eneregy)
self.treeWidget_ylabel.itemChanged.connect(self.__tree_select)
self.comboBox_time.activated.connect(self.__combo_time_energy)
self.comboBox_energy.activated.connect(self.__combo_time_energy)
self.comboBox_opt_settings_list=[self.comboBox_CoreFreq, self.comboBox_UncoreFreq, self.comboBox_NumThreads]
func_list = []
for i, e in enumerate(self.comboBox_opt_settings_list):
func_list.append((lambda tmp: lambda: self.__combo_opt_settings(self.comboBox_opt_settings_list[tmp]))(i))
self.comboBox_opt_settings_list[i].activated.connect(func_list[-1])
self.tab_widget.currentChanged.connect(self.__tab_index_changed)
self.lineEdit_baseline.setValidator(self.onlyFloat)
if 'main_reg' in self.config_dic and self.config_dic['main_reg'][0]:
if self.config_dic['main_reg'][0][list(self.config_dic['main_reg'][0].keys())[0]] in self.regions:
self.comboBox_MainRegion.setCurrentText(self.config_dic['main_reg'][0][list(self.config_dic['main_reg'][0].keys())[0]])
if 'iter_call_region' in self.config_dic and self.config_dic['iter_call_region'] in self.regions:
self.comboBox_IterationRegion.setCurrentText(self.config_dic['iter_call_region'])
for i in self.ylabel_dic.keys():
parent = QtWidgets.QTreeWidgetItem(self.treeWidget_ylabel)
parent.setText(0, i)
parent.setFlags(parent.flags() | QtCore.Qt.ItemIsTristate | QtCore.Qt.ItemIsUserCheckable)
for x in self.ylabel_dic[i]:
child = QtWidgets.QTreeWidgetItem(parent)
child.setFlags(child.flags() | QtCore.Qt.ItemIsUserCheckable)
child.setText(0, x)
if 'y_label' in self.config_dic and i in self.config_dic['y_label'] and x in [item for sublist in self.config_dic['y_label'][i] for item in sublist]:
child.setCheckState(0, QtCore.Qt.Checked)
else:
child.setCheckState(0, QtCore.Qt.Unchecked)
if 'file_name_args_tup' in self.config_dic:
key_num = 0
for i in range(self.parameters_count):
self.lineEdit_parameters_list[i].setText(self.config_dic['file_name_args_tup'][i][1])
role = self.config_dic['file_name_args_tup'][i][0]
self.comboBox_parameters_list[i].setCurrentText(role)
Ivo Peterek
committed
self.__parameters_combobox(self.comboBox_parameters_list[i])
if role == 'xLabel':
if 'def_x_val' in self.config_dic:
self.comboBox_default_vals_list[i].setCurrentText(str(self.config_dic['def_x_val']))
if 'x_val_unit' in self.config_dic:
self.lineEdit_default_unit_list[i].setText(self.config_dic['x_val_unit'])
if 'x_val_multiplier' in self.config_dic:
multiplier_string = str(self.config_dic['x_val_multiplier'])
decimals = multiplier_string[::-1].find('.')
self.spinBox_default_multp_list[i].setDecimals(decimals)
self.spinBox_default_multp_list[i].setValue(self.config_dic['x_val_multiplier'])
if role == 'funcLabel':
if 'def_label_val' in self.config_dic:
self.comboBox_default_vals_list[i].setCurrentText(str(self.config_dic['def_label_val']))
if 'func_label_unit' in self.config_dic:
self.lineEdit_default_unit_list[i].setText(self.config_dic['func_label_unit'])
if 'label_val_multiplier' in self.config_dic:
multiplier_string = str(self.config_dic['label_val_multiplier'])
decimals = multiplier_string[::-1].find('.')
self.spinBox_default_multp_list[i].setDecimals(decimals)
self.spinBox_default_multp_list[i].setValue(self.config_dic['label_val_multiplier'])
if role == 'key':
if 'def_keys_vals' in self.config_dic and self.config_dic['def_keys_vals'][key_num]:
self.comboBox_default_vals_list[i].setCurrentText(str(self.config_dic['def_keys_vals'][key_num]))
if 'keys_units' in self.config_dic and self.config_dic['keys_units'][key_num]:
self.lineEdit_default_unit_list[i].setText(self.config_dic['keys_units'][key_num])
key_num += 1
if 'time_energy_vars' in self.config_dic and self.config_dic['time_energy_vars']:
self.checkBox_time_energy_vars.setCheckState(2)
time_string = self.config_dic['time_energy_vars']['time'][0]+ " " +self.config_dic['time_energy_vars']['time'][1]
if time_string in self.possible_time_vars:
self.comboBox_time.setCurrentText(time_string)
self.time_var = self.comboBox_time.currentText()
self.__combo_time_energy()
energy_string = self.config_dic['time_energy_vars']['energy'][0]+ " " +self.config_dic['time_energy_vars']['energy'][1]
if energy_string in self.possible_energy_vars:
self.comboBox_energy.setCurrentText(energy_string)
self.energy_var = self.comboBox_energy.currentText()
self.__combo_time_energy()
if 'baseline' in self.config_dic and self.config_dic['baseline']:
self.lineEdit_baseline.setText(str(self.config_dic['baseline']))
if 'detailed_info' in self.config_dic and self.config_dic['detailed_info']:
self.checkBox_DetailedInfo.setCheckState(2)
if 'smooth_runs_average' in self.config_dic and self.config_dic['smooth_runs_average']:
self.checkBox_SmoothRunsAverage.setCheckState(2)
if 'test_csv_init' in self.config_dic and self.config_dic['test_csv_init']:
self.checkBox_test_csv_init.setCheckState(2)
if 'optim_settings_file_path' in self.config_dic and self.config_dic['optim_settings_file_path']:
self.lineEdit_OptSettingsFilePath.setText(self.config_dic['optim_settings_file_path'])
if 'generate_optim_settings_file' in self.config_dic and self.config_dic['generate_optim_settings_file']:
for k, v in self.config_dic['generate_optim_settings_file'].items():
if v == 'FREQUENCY':
self.comboBox_CoreFreq.setCurrentText(k)
if v == 'UNCORE_FREQUENCY':
self.comboBox_UncoreFreq.setCurrentText(k)
if v == 'NUM_THREADS':
self.comboBox_NumThreads.setCurrentText(k)
self.__nested_region_check_changed()
Ivo Peterek
committed
self.__update_nested_regions()
def retranslateUi(self, TabWidget_p):
_translate = QtCore.QCoreApplication.translate
TabWidget_p.setWindowTitle(_translate("TabWidget", "Radar configuration"))
self.pushButton_Regions_Next.setText(_translate("TabWidget", "Next"))
self.label_MainRegions.setText(_translate("TabWidget", "Main region"))
self.label_IterationRegion.setText(_translate("TabWidget", "Iteration region"))
self.label_NestedRegions.setText(_translate("TabWidget", "Nested regions"))
self.pushButton_Regions_All.setText(_translate("TabWidget", "Select all"))
self.pushButton_tree.setText(_translate("TabWidget", "Show region tree"))
self.pushButton_filter.setText(_translate("TabWidget", "Apply filter"))
self.label_sec.setText(_translate("TabWidget", "s"))
self.label_filter.setText(_translate("TabWidget", "Filter nested regions by time"))
TabWidget_p.setTabText(TabWidget_p.indexOf(self.tab_Regions), _translate("TabWidget", "Regions"))
self.pushButton_DataParam_Next.setText(_translate("TabWidget", "Next"))
self.pushButton_DataParam_Prev.setText(_translate("TabWidget", "Previous"))
self.label_ylabel.setText(_translate("TabWidget", "y label"))
self.label_parameters.setText(_translate("TabWidget", "Parameters"))
self.checkBox_time_energy_vars.setText(_translate("TabWidget", "Time-energy variables"))
Ivo Peterek
committed
self.label_Baseline.setText(_translate("TabWidget", "Baseline"))
self.label_energy.setText(_translate("TabWidget", "Energy"))
Ivo Peterek
committed
self.label_W.setText(_translate("TabWidget", "W"))
self.label_time.setText(_translate("TabWidget", "Time"))
TabWidget_p.setTabText(TabWidget_p.indexOf(self.tab_DataParameters), _translate("TabWidget", "Data parameters"))
self.pushButton_AddOpts_Prev.setText(_translate("TabWidget", "Previous"))
self.checkBox_DetailedInfo.setText(_translate("TabWidget", "Detailed info"))
self.checkBox_SmoothRunsAverage.setText(_translate("TabWidget", "Smooth runs average"))
self.checkBox_GenerateOptSettingFile.setText(_translate("TabWidget", "Generate optimal settings file"))
Ivo Peterek
committed
self.pushButton_Generate.setText(_translate("TabWidget", "Save config"))
self.pushButton_BrowseOptSettings.setText(_translate("TabWidget", "Browse.."))
Ivo Peterek
committed
self.label_Role.setText(_translate("TabWidget", "Set roles of parameters in MERIC"))
self.label_NumThreads.setText(_translate("TabWidget", "Number of threads"))
self.label_CoreFreq.setText(_translate("TabWidget", "Core frequency"))
Ivo Peterek
committed
self.label_UncoreFreq.setText(_translate("TabWidget", "Uncore frequency"))
self.label_PathToOptSetting.setText(_translate("TabWidget", "Path to optimal settings file"))
self.label.setText(_translate("TabWidget", "Optimal settings file options"))
self.checkBox_test_csv_init.setText(_translate("TabWidget", "CSV init test"))
self.pushButton_run.setText(_translate("TabWidget", "Save and run RADAR"))
Ivo Peterek
committed
TabWidget_p.setTabText(TabWidget_p.indexOf(self.tab_AddOptions), _translate("TabWidget", "Additional options"))
def __show_tree(self):
if len(self.regions) > 1:
self.tree_window = pydot_example.regionTree(pathToData=self.data_path, ownData=self.tree_data_selected,
addButtonIncluded=False)
self.tree_window.show()
else:
self.__print_info_msg('Unable to show region tree because there is only one region available'
' in selected measurement.')
def __filter(self):
threshold = float(self.doubleSpinBox.text().replace(',', '.'))
if self.nested_regs_selected_dic:
for check_box in self.nested_regs_list:
region = check_box.text()
if region == self.comboBox_MainRegion.currentText():
continue
act_region_time = self.reg_times[region]
if check_box.isChecked() and act_region_time < threshold:
check_box.setCheckState(False)
else:
for check_box in self.nested_regs_list:
region = check_box.text()
if region == self.comboBox_MainRegion.currentText():
continue
act_region_time = self.reg_times[region]
if act_region_time >= threshold:
check_box.setCheckState(2)
def __print_error_msg(self, text):
msg = QtWidgets.QMessageBox()
msg.setIcon(QtWidgets.QMessageBox.Critical)
msg.setText(text)
msg.setWindowTitle("USER INPUT ERROR")
msg.setStandardButtons(QtWidgets.QMessageBox.Close)
msg.exec_()
def msgbtn(self, i):
self.__terminate_program()
def __print_success_msg(self, text):
msg = QtWidgets.QMessageBox()
msg.setIcon(QtWidgets.QMessageBox.Information)
msg.setText(text)
msg.setWindowTitle("Configure file saved")
msg.setStandardButtons( QtWidgets.QMessageBox.Close | QtWidgets.QMessageBox.Ok )
msg.buttonClicked.connect(self.msgbtn)
def __print_info_msg(self, text):
msg = QtWidgets.QMessageBox()
msg.setIcon(QtWidgets.QMessageBox.Information)
msg.setText(text)
msg.setWindowTitle("Unable to show region tree.")
msg.setStandardButtons(QtWidgets.QMessageBox.Close)
msg.exec_()
Ivo Peterek
committed
def __next(self):
self.tab_widget.setCurrentIndex(self.tab_widget.currentIndex() + 1)
Ivo Peterek
committed
def __previous(self):
self.tab_widget.setCurrentIndex(self.tab_widget.currentIndex() - 1)
def __update_nested_regions(self):
for check_box in self.nested_regs_list:
check_box.setEnabled(True)
if check_box.text() == self.comboBox_MainRegion.currentText():
check_box.setEnabled(False)
check_box.setCheckState(False)
def __nested_region_check_changed(self):
self.all_nested_regs_selected = True
self.atleast_one_reg_selected = False
for check_box in self.nested_regs_list:
if check_box.text() == self.comboBox_MainRegion.currentText():
check_box.setCheckState(0)
continue
if not check_box.isChecked():
self.all_nested_regs_selected = False
self.pushButton_Regions_All.setText('Select All')
break
if self.all_nested_regs_selected:
self.pushButton_Regions_All.setText('Deselect All')
for check_box in self.nested_regs_list:
if check_box.isChecked() and check_box.text() not in self.nested_regs_selected_dic.keys():
self.nested_regs_selected_dic[check_box.text()] = [check_box.text()]
if not check_box.isChecked() and check_box.text() in self.nested_regs_selected_dic.keys():
self.nested_regs_selected_dic.pop(check_box.text())
self.tree_data_selected['all_nested_funcs_dic'] = self.nested_regs_selected_dic
def __select_all_nested_regions(self):
new_state = 2
if self.all_nested_regs_selected:
new_state = 0
for check_box in self.nested_regs_list:
if check_box.text() == self.comboBox_MainRegion.currentText():
continue
check_box.setCheckState(new_state)
def __opt_settings_path(self):
dlg = QtWidgets.QFileDialog()
dlg.setFileMode(QtWidgets.QFileDialog.Directory)
self.lineEdit_OptSettingsFilePath.setText(str(dlg.getOpenFileName(filter='Text files (*.options)')[0]))
Ivo Peterek
committed
def __optChecked(self):
if self.checkBox_GenerateOptSettingFile.isChecked():
self.frame_opt_settings.setEnabled(True)
Ivo Peterek
committed
else:
self.frame_opt_settings.setEnabled(False)
Ivo Peterek
committed
def __opt_time_eneregy(self):
if self.checkBox_time_energy_vars.isChecked():
Ivo Peterek
committed
self.frame_time_energy.setEnabled(True)
Ivo Peterek
committed
self.frame_time_energy.setEnabled(False)
def __combo_time_energy(self):
if self.time_var and self.time_var not in self.possible_energy_vars:
self.possible_energy_vars.append(self.time_var)
if self.energy_var and self. energy_var not in self.possible_time_vars:
self.possible_time_vars.append(self.energy_var)
if self.comboBox_time.currentText():
self.time_var = self.comboBox_time.currentText()
if self.time_var in self.possible_energy_vars:
self.possible_energy_vars.remove(self.time_var)
if self.comboBox_energy.currentText():
self.energy_var = self.comboBox_energy.currentText()
if self.energy_var in self.possible_time_vars:
self.possible_time_vars.remove(self.energy_var)
act_energy_label = self.comboBox_energy.currentText()
act_time_label = self.comboBox_time.currentText()
self.comboBox_energy.clear()
self.comboBox_time.clear()
self.comboBox_time.addItems(self.possible_time_vars)
self.comboBox_energy.addItems(self.possible_energy_vars)
self.comboBox_energy.setCurrentIndex(self.comboBox_energy.findText(act_energy_label))
self.comboBox_time.setCurrentIndex(self.comboBox_time.findText(act_time_label))
def __tree_select(self, item, column):
def refresh_items():
act_time_label = self.comboBox_time.currentText()
self.comboBox_time.clear()
self.comboBox_time.addItems(self.possible_time_vars)
self.comboBox_time.setCurrentIndex(self.comboBox_time.findText(act_time_label))
act_energy_label = self.comboBox_energy.currentText()
self.comboBox_energy.clear()
self.comboBox_energy.addItems(self.possible_energy_vars)
self.comboBox_energy.setCurrentIndex(self.comboBox_energy.findText(act_energy_label))
if item.text(0) not in self.ylabel_dic.keys():
new_item = item.parent().text(0) + ' ' + item.text(0)
if item.checkState(column) == QtCore.Qt.Checked:
self.possible_time_vars.append(new_item)
self.possible_energy_vars.append(new_item)
self.selected_y_labels.append(item)
elif item.checkState(column) == QtCore.Qt.Unchecked:
if item in self.selected_y_labels:
self.selected_y_labels.remove(item)
if new_item in self.possible_time_vars:
self.possible_time_vars.remove(new_item)
if new_item == self.time_var:
self.time_var = ''
if new_item in self.possible_energy_vars:
self.possible_energy_vars.remove(new_item)
if new_item == self.energy_var:
self.energy_var = ''
def __parameters_combobox(self, current_combo_box):
if current_combo_box.currentText() in ['xLabel', 'funcLabel']:
if self.current_labels_dic[current_combo_box.currentText()] != current_combo_box:
tmp_key = None
if current_combo_box in self.current_labels_dic.values():
tmp_key = [k for k, v in self.current_labels_dic.items() if v == current_combo_box][0]
self.current_labels_dic[tmp_key] = None
self.current_labels_dic[current_combo_box.currentText()] = current_combo_box
for key, val in self.parameters_combobox_items_dic.items():
if key == current_combo_box:
continue
act_label = key.currentText()
if tmp_key is not None:
self.parameters_combobox_items_dic[key].append(tmp_key)
self.parameters_combobox_items_dic[key].remove(current_combo_box.currentText())
key.addItems(self.parameters_combobox_items_dic[key])
key.setCurrentIndex(key.findText(act_label))
else:
if current_combo_box in self.current_labels_dic.values():
add_item = None
for key, val in self.current_labels_dic.items():
if val == current_combo_box:
add_item = key
self.current_labels_dic[key] = None
for key, val in self.parameters_combobox_items_dic.items():
if key == current_combo_box:
continue
act_label = key.currentText()
self.parameters_combobox_items_dic[key].append(add_item)
key.addItems(self.parameters_combobox_items_dic[key])
key.setCurrentIndex(key.findText(act_label))
for i, item in enumerate(self.comboBox_parameters_list):
has_default_value = False
if item in self.current_labels_dic.values() or item.currentText() == 'key':
has_default_value = True
self.comboBox_default_vals_list[i].setEnabled(has_default_value)
self.lineEdit_default_unit_list[i].setEnabled(has_default_value)
if item.currentText() == 'key':
has_default_value = False
self.spinBox_default_multp_list[i].setEnabled(has_default_value)
def __parameter_name_changed(self):
self.possible_meric_parameters = ['']
for e in self.lineEdit_parameters_list:
self.possible_meric_parameters.append(e.text())
def __refresh_opt_combos(self):
for key, val in self.opt_settings_items_dic.items():
act_val = key.currentText()
if act_val in self.current_opt_items_dic.keys():
if self.current_opt_items_dic[act_val] is None and act_val != '':
self.current_opt_items_dic[act_val] = key
for key2, val2 in self.opt_settings_items_dic.items():
if key == key2:
continue
if act_val in val2:
val2.remove(act_val)
else:
key.setCurrentText('')
for key, val in self.opt_settings_items_dic.items():
act_val = key.currentText()
key.clear()
key.addItems(val)
if key.findText(act_val) != -1:
key.setCurrentIndex(key.findText(act_val))
else:
key.setCurrentIndex(0)
def __tab_index_changed(self, index):
if index == 2:
self.opt_settings_items_dic = {}
self.current_opt_items_dic = {}
for e in self.comboBox_opt_settings_list:
self.opt_settings_items_dic[e] = self.possible_meric_parameters[:]
for e in self.possible_meric_parameters:
self.current_opt_items_dic[e] = None
self.__refresh_opt_combos()
if self.first_tab_change:
if 'generate_optim_settings_file' in self.config_dic and self.config_dic['generate_optim_settings_file']:
self.checkBox_GenerateOptSettingFile.setCheckState(2)
for k, v in self.config_dic['generate_optim_settings_file'].items():
if v == 'FREQUENCY':
self.comboBox_CoreFreq.setCurrentText(k)
if v == 'UNCORE_FREQUENCY':
self.comboBox_UncoreFreq.setCurrentText(k)
if v == 'NUM_THREADS':