forked from jgrewe/fishbook
improve feedback upon unknown or ambiguous ids
This commit is contained in:
parent
6a8c800b0b
commit
d542641f7d
@ -6,6 +6,13 @@ def _safe_get_val(dictionary:dict, key, default=None):
|
||||
return dictionary[key] if key in dictionary.keys() else default
|
||||
|
||||
|
||||
def _results_check(results, id, text="ID"):
|
||||
if len(results) == 0:
|
||||
raise ValueError("%s %s does not exist!" % (text, id))
|
||||
elif len(results) > 1:
|
||||
raise ValueError("%s %s is not unique!" % (text, id))
|
||||
|
||||
|
||||
class Cell:
|
||||
def __init__(self, cell_id=None, tuple=None):
|
||||
if tuple:
|
||||
@ -13,7 +20,7 @@ class Cell:
|
||||
elif cell_id:
|
||||
pattern = "cell_id like '{0:s}'".format(cell_id)
|
||||
cells = (Cells & pattern)
|
||||
assert (len(cells) == 1), "Cell id does not exist or is not unique!"
|
||||
_results_check(cells, cell_id, "Cell ID")
|
||||
self.__tuple = cells.fetch(as_dict=True)[0]
|
||||
else:
|
||||
print("Empty Cell, not linked to any database entry!")
|
||||
@ -78,7 +85,7 @@ class Dataset:
|
||||
elif dataset_id:
|
||||
pattern = "dataset_id like '{0:s}'".format(dataset_id)
|
||||
dsets = (Datasets & pattern)
|
||||
assert(len(dsets) == 1), "Dataset name is not unique!"
|
||||
_results_check(dsets, dataset_id, "Dataset ID")
|
||||
self.__tuple = dsets.fetch(limit=1)[0]
|
||||
else:
|
||||
print("Empty dataset, not linked to any database entry!")
|
||||
@ -147,7 +154,7 @@ class RePro:
|
||||
self.__tuple = tuple
|
||||
elif repro_id:
|
||||
repros = (RePro & "repro_id like '{0:s}'".format(repro_id))
|
||||
assert (len(repros) == 1), "Repro id does not exist or is not unique!"
|
||||
_results_check(repros, repro_id, "RePro ID")
|
||||
self.__tuple = repros.fetch(limit=1, as_dict=True)[0]
|
||||
else:
|
||||
self.__tuple = {}
|
||||
@ -208,7 +215,7 @@ class Stimulus:
|
||||
self.__tuple = tuple
|
||||
elif stimulus_id:
|
||||
stims = Stimuli & "stimulus_id = '%s'" %stimulus_id
|
||||
assert(len(stims) == 1), "Stimulus_id does not exist or is not unique!"
|
||||
_results_check(stims, stimulus_id, "Stimulus ID")
|
||||
self.__tuple = stims.fetch(limit=1, as_dict=True)[0]
|
||||
else:
|
||||
print("Empty RePro, not linked to any database entry!")
|
||||
@ -230,7 +237,9 @@ class Subject:
|
||||
if tuple:
|
||||
self.__tuple = tuple
|
||||
elif subject_id:
|
||||
self.__tuple = Subjects & "subject_id like '{0:s}'".format(subject_id).fetch()[0]
|
||||
subjects = Subjects & "subject_id like '{0:s}'".format(subject_id)
|
||||
_results_check(subjects, subject_id, "Subject ID")
|
||||
self.__tuple = subjects.fetch()[0]
|
||||
else:
|
||||
self.__tuple = {}
|
||||
print("Empty Subject, not linked to any database entry!")
|
||||
|
Loading…
Reference in New Issue
Block a user