/
load_run_model.py
74 lines (59 loc) · 2.3 KB
/
load_run_model.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Mantid Repository : https://github.com/mantidproject/mantid
#
# Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
# NScD Oak Ridge National Laboratory, European Spallation Source
# & Institut Laue - Langevin
# SPDX - License - Identifier: GPL - 3.0 +
from __future__ import (absolute_import, division, print_function)
from Muon.GUI.Common.muon_load_data import MuonLoadData
import Muon.GUI.Common.utilities.load_utils as load_utils
class LoadRunWidgetModel(object):
"""Stores info on all currently loaded workspaces"""
def __init__(self, loaded_data_store=MuonLoadData()):
# Used with load thread
self._filenames = []
self._loaded_data_store = loaded_data_store
self._current_run = None
def remove_previous_data(self):
self._loaded_data_store.remove_last_added_data()
# Used with load thread
def loadData(self, filenames):
self._filenames = filenames
# Used with load thread
def execute(self):
import pydevd
pydevd.settrace('localhost', port=5434, stdoutToServer=True, stderrToServer=True)
failed_files = []
for filename in self._filenames:
try:
ws, run, filename = load_utils.load_workspace_from_filename(filename)
except Exception:
failed_files += [filename]
continue
self._loaded_data_store.remove_data(run=run)
self._loaded_data_store.add_data(run=run, workspace=ws, filename=filename)
if failed_files:
message = load_utils.exception_message_for_failed_files(failed_files)
raise ValueError(message)
# This is needed to work with thread model
def output(self):
pass
def cancel(self):
pass
def clear_loaded_data(self):
self._loaded_data_store.clear()
@property
def current_run(self):
return self._current_run
@current_run.setter
def current_run(self, run):
self._current_run = run
@property
def loaded_filenames(self):
return self._loaded_data_store.get_parameter("filename")
@property
def loaded_workspaces(self):
return self._loaded_data_store.get_parameter("workspace")
@property
def loaded_runs(self):
return self._loaded_data_store.get_parameter("run")