Skip to content
Snippets Groups Projects

Fileselection/sc 108

Merged Verbeek, J.M. (Janneke) requested to merge fileselection/SC-108 into master
Files
2
umbra/model.py 0 → 100644
+ 82
0
from statistics import Statistics
from utils import Utils as ut
class Model:
"""Internal data representation and processing."""
def __init__(self):
self._stats = Statistics(None)
self._data_source = None
self._multi_data_shadow = {} # dict because fast and indexing
self._data_shadow = None
self._analysis_results = None
self._multi_results = {}
self._save_pref = None
self._id = -1
@property
def save_pref(self):
return self._save_pref
@save_pref.setter
def save_pref(self, save_pref_code):
self._save_pref = save_pref_code
@property
def data_source(self):
return self._data_source
@data_source.setter
def data_source(self, data):
self._data_source = data
@property
def multi_data_shadow(self):
return self._multi_data_shadow
@multi_data_shadow.setter
def multi_data_shadow(self, data):
self._multi_data_shadow = data
@property
def data_shadow(self):
return self._data_shadow
@data_shadow.setter
def data_shadow(self, data):
self._data_shadow = data
@property
def analysis_results(self):
return self._analysis_results
def has_source(self):
"""Check whether self._data_source has a value."""
return self._data_source is not None
def has_shadow(self):
"""Check whether self._data_shadow has a value."""
return self._data_shadow is not None \
or self._multi_data_shadow is not None
def analysis_complete(self):
"""Check whether self._analysis_results has a value."""
return self._analysis_results is not None \
or self._multi_results is not None
def compare(self):
""""Run the analyses and saves the results."""
if self.has_source() and self.has_shadow():
if self._multi_data_shadow:
for key, data in self._multi_data_shadow.items():
if self._id is ut.filter_key(key):
result = self._stats.analyze(self._data_source, data)
ut.add_to_dict(key+"_res", result, self._multi_results)
else:
pass
else:
self._analysis_results = \
self._stats.analyze(self._data_source, self._data_shadow)
else:
pass
Loading