Skip to content

Commit

Permalink
gui: improve error handling
Browse files Browse the repository at this point in the history
sbourdeauducq committed Dec 8, 2015
1 parent 0da8955 commit ed08352
Showing 2 changed files with 26 additions and 14 deletions.
16 changes: 8 additions & 8 deletions artiq/gui/experiments.py
Original file line number Diff line number Diff line change
@@ -202,8 +202,8 @@ async def _recompute_argument(self, name):
try:
arginfo = await self.manager.compute_arginfo(self.expurl)
except:
logger.warning("Could not recompute argument '%s' of '%s'",
name, self.expurl, exc_info=True)
logger.error("Could not recompute argument '%s' of '%s'",
name, self.expurl, exc_info=True)
argument = self.manager.get_submission_arguments(self.expurl)[name]

procdesc = arginfo[name][0]
@@ -362,17 +362,17 @@ def submit_clicked(self):
except:
# May happen when experiment has been removed
# from repository/explist
logger.warning("failed to submit '%s'",
self.expurl, exc_info=True)
logger.error("Failed to submit '%s'",
self.expurl, exc_info=True)

def reqterm_clicked(self):
try:
self.manager.request_inst_term(self.expurl)
except:
# May happen when experiment has been removed
# from repository/explist
logger.warning("failed to request termination of instances of '%s'",
self.expurl, exc_info=True)
logger.error("Failed to request termination of instances of '%s'",
self.expurl, exc_info=True)

def _recompute_arguments_clicked(self):
asyncio.ensure_future(self._recompute_arguments_task())
@@ -381,8 +381,8 @@ async def _recompute_arguments_task(self):
try:
arginfo = await self.manager.compute_arginfo(self.expurl)
except:
logger.warning("Could not recompute arguments of '%s'",
self.expurl, exc_info=True)
logger.error("Could not recompute arguments of '%s'",
self.expurl, exc_info=True)
self.manager.initialize_submission_arguments(self.expurl, arginfo)

self.argeditor.deleteLater()
24 changes: 18 additions & 6 deletions artiq/gui/explorer.py
Original file line number Diff line number Diff line change
@@ -9,28 +9,40 @@
from artiq.gui.models import DictSyncTreeSepModel


logger = logging.getLogger(__name__)


class _OpenFileDialog(QtGui.QDialog):
def __init__(self, parent, exp_manager):
QtGui.QDialog.__init__(self, parent=parent)
self.setWindowTitle("Open file outside repository")

self.exp_manager = exp_manager

grid = QtGui.QGridLayout()
self.setLayout(grid)

grid.addWidget(QtGui.QLabel("Filename:"), 0, 0)
filename = QtGui.QLineEdit()
grid.addWidget(filename, 0, 1)
self.filename = QtGui.QLineEdit()
grid.addWidget(self.filename, 0, 1)

buttons = QtGui.QDialogButtonBox(
QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel)
grid.addWidget(buttons, 1, 0, 1, 2)
buttons.accepted.connect(self.accept)
buttons.rejected.connect(self.reject)

def open_file():
file = filename.text()
asyncio.ensure_future(exp_manager.open_file(file))
self.accepted.connect(open_file)
self.accepted.connect(self.open_file)

def open_file(self):
file = self.filename.text()
async def open_task():
try:
await self.exp_manager.open_file(file)
except:
logger.error("Failed to open file '%s'",
file, exc_info=True)
asyncio.ensure_future(open_task())


class Model(DictSyncTreeSepModel):

0 comments on commit ed08352

Please sign in to comment.