forked from M-Labs/artiq
gui/experiments: support setting repository revision
This commit is contained in:
parent
24a33be9df
commit
cabcdb3784
|
@ -178,12 +178,15 @@ class _ExperimentDock(dockarea.Dock):
|
||||||
def __init__(self, manager, expname):
|
def __init__(self, manager, expname):
|
||||||
dockarea.Dock.__init__(self, "Exp: " + expname,
|
dockarea.Dock.__init__(self, "Exp: " + expname,
|
||||||
closable=True, size=(1500, 500))
|
closable=True, size=(1500, 500))
|
||||||
|
self.layout.setSpacing(5)
|
||||||
|
self.layout.setContentsMargins(5, 5, 5, 5)
|
||||||
|
|
||||||
self.manager = manager
|
self.manager = manager
|
||||||
self.expname = expname
|
self.expname = expname
|
||||||
|
|
||||||
self.argeditor = _ArgumentEditor(
|
self.argeditor = _ArgumentEditor(
|
||||||
manager.get_submission_arguments(expname))
|
manager.get_submission_arguments(expname))
|
||||||
self.addWidget(self.argeditor, 0, 0, colspan=4)
|
self.addWidget(self.argeditor, 0, 0, colspan=5)
|
||||||
|
|
||||||
scheduling = manager.get_submission_scheduling(expname)
|
scheduling = manager.get_submission_scheduling(expname)
|
||||||
options = manager.get_submission_options(expname)
|
options = manager.get_submission_options(expname)
|
||||||
|
@ -191,8 +194,8 @@ class _ExperimentDock(dockarea.Dock):
|
||||||
datetime = QtGui.QDateTimeEdit()
|
datetime = QtGui.QDateTimeEdit()
|
||||||
datetime.setDisplayFormat("MMM d yyyy hh:mm:ss")
|
datetime.setDisplayFormat("MMM d yyyy hh:mm:ss")
|
||||||
datetime_en = QtGui.QCheckBox("Due date:")
|
datetime_en = QtGui.QCheckBox("Due date:")
|
||||||
self.addWidget(datetime_en, 1, 0, colspan=2)
|
self.addWidget(datetime_en, 1, 0)
|
||||||
self.addWidget(datetime, 1, 2, colspan=2)
|
self.addWidget(datetime, 1, 1)
|
||||||
|
|
||||||
if scheduling["due_date"] is None:
|
if scheduling["due_date"] is None:
|
||||||
datetime.setDate(QtCore.QDate.currentDate())
|
datetime.setDate(QtCore.QDate.currentDate())
|
||||||
|
@ -213,8 +216,8 @@ class _ExperimentDock(dockarea.Dock):
|
||||||
datetime_en.stateChanged.connect(update_datetime_en)
|
datetime_en.stateChanged.connect(update_datetime_en)
|
||||||
|
|
||||||
pipeline_name = QtGui.QLineEdit()
|
pipeline_name = QtGui.QLineEdit()
|
||||||
self.addWidget(QtGui.QLabel("Pipeline:"), 2, 0, colspan=2)
|
self.addWidget(QtGui.QLabel("Pipeline:"), 1, 2)
|
||||||
self.addWidget(pipeline_name, 2, 2, colspan=2)
|
self.addWidget(pipeline_name, 1, 3)
|
||||||
|
|
||||||
pipeline_name.setText(scheduling["pipeline_name"])
|
pipeline_name.setText(scheduling["pipeline_name"])
|
||||||
def update_pipeline_name():
|
def update_pipeline_name():
|
||||||
|
@ -223,8 +226,8 @@ class _ExperimentDock(dockarea.Dock):
|
||||||
|
|
||||||
priority = QtGui.QSpinBox()
|
priority = QtGui.QSpinBox()
|
||||||
priority.setRange(-99, 99)
|
priority.setRange(-99, 99)
|
||||||
self.addWidget(QtGui.QLabel("Priority:"), 3, 0)
|
self.addWidget(QtGui.QLabel("Priority:"), 2, 0)
|
||||||
self.addWidget(priority, 3, 1)
|
self.addWidget(priority, 2, 1)
|
||||||
|
|
||||||
priority.setValue(scheduling["priority"])
|
priority.setValue(scheduling["priority"])
|
||||||
def update_priority(value):
|
def update_priority(value):
|
||||||
|
@ -233,7 +236,7 @@ class _ExperimentDock(dockarea.Dock):
|
||||||
|
|
||||||
flush = QtGui.QCheckBox("Flush")
|
flush = QtGui.QCheckBox("Flush")
|
||||||
flush.setToolTip("Flush the pipeline before starting the experiment")
|
flush.setToolTip("Flush the pipeline before starting the experiment")
|
||||||
self.addWidget(flush, 3, 2)
|
self.addWidget(flush, 2, 2, colspan=2)
|
||||||
|
|
||||||
flush.setChecked(scheduling["flush"])
|
flush.setChecked(scheduling["flush"])
|
||||||
def update_flush(checked):
|
def update_flush(checked):
|
||||||
|
@ -245,7 +248,10 @@ class _ExperimentDock(dockarea.Dock):
|
||||||
log_level.addItems(log_levels)
|
log_level.addItems(log_levels)
|
||||||
log_level.setCurrentIndex(1)
|
log_level.setCurrentIndex(1)
|
||||||
log_level.setToolTip("Minimum level for log entry production")
|
log_level.setToolTip("Minimum level for log entry production")
|
||||||
self.addWidget(log_level, 3, 3)
|
log_level_label = QtGui.QLabel("Logging level:")
|
||||||
|
log_level_label.setToolTip("Minimum level for log message production")
|
||||||
|
self.addWidget(log_level_label, 3, 0)
|
||||||
|
self.addWidget(log_level, 3, 1)
|
||||||
|
|
||||||
log_level.setCurrentIndex(log_levels.index(
|
log_level.setCurrentIndex(log_levels.index(
|
||||||
log_level_to_name(options["log_level"])))
|
log_level_to_name(options["log_level"])))
|
||||||
|
@ -253,9 +259,29 @@ class _ExperimentDock(dockarea.Dock):
|
||||||
options["log_level"] = getattr(logging, log_level.currentText())
|
options["log_level"] = getattr(logging, log_level.currentText())
|
||||||
log_level.currentIndexChanged.connect(update_log_level)
|
log_level.currentIndexChanged.connect(update_log_level)
|
||||||
|
|
||||||
|
repo_rev = QtGui.QLineEdit()
|
||||||
|
repo_rev.setPlaceholderText("HEAD")
|
||||||
|
repo_rev_label = QtGui.QLabel("Revision:")
|
||||||
|
repo_rev_label.setToolTip("Experiment repository revision "
|
||||||
|
"(commit ID) to use")
|
||||||
|
self.addWidget(repo_rev_label, 3, 2)
|
||||||
|
self.addWidget(repo_rev, 3, 3)
|
||||||
|
|
||||||
|
if options["repo_rev"] is not None:
|
||||||
|
repo_rev.setText(options["repo_rev"])
|
||||||
|
def update_repo_rev():
|
||||||
|
t = repo_rev.text()
|
||||||
|
if t:
|
||||||
|
options["repo_rev"] = t
|
||||||
|
else:
|
||||||
|
options["repo_rev"] = None
|
||||||
|
repo_rev.editingFinished.connect(update_repo_rev)
|
||||||
|
|
||||||
submit = QtGui.QPushButton("Submit")
|
submit = QtGui.QPushButton("Submit")
|
||||||
submit.setToolTip("Schedule the selected experiment (Ctrl+Return)")
|
submit.setToolTip("Schedule the selected experiment (Ctrl+Return)")
|
||||||
self.addWidget(submit, 4, 0, colspan=4)
|
submit.setSizePolicy(QtGui.QSizePolicy.Expanding,
|
||||||
|
QtGui.QSizePolicy.Expanding)
|
||||||
|
self.addWidget(submit, 1, 4, rowspan=3)
|
||||||
submit.clicked.connect(self.submit_clicked)
|
submit.clicked.connect(self.submit_clicked)
|
||||||
|
|
||||||
def submit_clicked(self):
|
def submit_clicked(self):
|
||||||
|
@ -316,7 +342,7 @@ class ExperimentManager:
|
||||||
"log_level": logging.WARNING,
|
"log_level": logging.WARNING,
|
||||||
"repo_rev": None
|
"repo_rev": None
|
||||||
}
|
}
|
||||||
self.submission_options = options
|
self.submission_options[expname] = options
|
||||||
return options
|
return options
|
||||||
|
|
||||||
def get_submission_arguments(self, expname):
|
def get_submission_arguments(self, expname):
|
||||||
|
|
Loading…
Reference in New Issue