forked from jgrewe/fishbook
rearraning things
This commit is contained in:
parent
1874985f56
commit
14bed0cc6a
@ -1,4 +1,4 @@
|
||||
from .fishbook import Cell, Subject, Stimulus, Dataset, RePro
|
||||
import fishbook.reproclasses as repros
|
||||
import fishbook.database as database
|
||||
__all__ = ['fishbook', 'database']
|
||||
from fishbook.frontend.frontend_classes import Cell, Subject, Stimulus, Dataset, RePro
|
||||
#import fishbook.reproclasses as repros
|
||||
#import fishbook.database as database
|
||||
__all__ = ['', '']
|
||||
|
@ -1,3 +1,2 @@
|
||||
from .database import *
|
||||
|
||||
__all__ = ['database']
|
||||
from .database import Cells, Datasets, Stimuli, Repros, Subjects, SubjectDatasetMap, CellDatasetMap
|
||||
__all__ = ['database']
|
||||
|
1
fishbook/frontend/__init__.py
Normal file
1
fishbook/frontend/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
# __all__ = ["fronten_classes", "reproclasses"]
|
@ -1,21 +1,11 @@
|
||||
from fishbook.database.database import Cells, Datasets, CellDatasetMap, Subjects, SubjectProperties, SubjectDatasetMap, Stimuli, Repros
|
||||
from fishbook.backend.database import Cells, Datasets, CellDatasetMap, Subjects, SubjectProperties, SubjectDatasetMap, Stimuli, Repros
|
||||
from .util import safe_get_val, results_check
|
||||
import nixio as nix
|
||||
import os
|
||||
import numpy as np
|
||||
from IPython import embed
|
||||
|
||||
|
||||
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:
|
||||
@ -23,7 +13,7 @@ class Cell:
|
||||
elif cell_id:
|
||||
pattern = "cell_id like '{0:s}'".format(cell_id)
|
||||
cells = (Cells & pattern)
|
||||
_results_check(cells, cell_id, "Cell ID")
|
||||
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!")
|
||||
@ -105,7 +95,7 @@ class Dataset:
|
||||
elif dataset_id:
|
||||
pattern = "dataset_id like '{0:s}'".format(dataset_id)
|
||||
dsets = (Datasets & pattern)
|
||||
_results_check(dsets, dataset_id, "Dataset ID")
|
||||
results_check(dsets, dataset_id, "Dataset ID")
|
||||
self.__tuple = dsets.fetch(limit=1, as_dict=True)[0]
|
||||
else:
|
||||
print("Empty dataset, not linked to any database entry!")
|
||||
@ -220,7 +210,7 @@ class RePro:
|
||||
self.__tuple = tuple
|
||||
elif repro_id:
|
||||
repros = (RePro & "repro_id like '{0:s}'".format(repro_id))
|
||||
_results_check(repros, repro_id, "RePro ID")
|
||||
results_check(repros, repro_id, "RePro ID")
|
||||
self.__tuple = repros.fetch(limit=1, as_dict=True)[0]
|
||||
else:
|
||||
self.__tuple = {}
|
||||
@ -228,15 +218,15 @@ class RePro:
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return _safe_get_val(self.__tuple, "repro_id", "")
|
||||
return safe_get_val(self.__tuple, "repro_id", "")
|
||||
|
||||
@property
|
||||
def run(self):
|
||||
return _safe_get_val(self.__tuple, "run", -1)
|
||||
return safe_get_val(self.__tuple, "run", -1)
|
||||
|
||||
@property
|
||||
def cell_id(self):
|
||||
return _safe_get_val(self.__tuple, "cell_id", "")
|
||||
return safe_get_val(self.__tuple, "cell_id", "")
|
||||
|
||||
@property
|
||||
def cell(self):
|
||||
@ -252,19 +242,19 @@ class RePro:
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
return _safe_get_val(self.__tuple, "repro_name", "")
|
||||
return safe_get_val(self.__tuple, "repro_name", "")
|
||||
|
||||
@property
|
||||
def settings(self):
|
||||
return _safe_get_val(self.__tuple, "settings", "")
|
||||
return safe_get_val(self.__tuple, "settings", "")
|
||||
|
||||
@property
|
||||
def start(self):
|
||||
return _safe_get_val(self.__tuple, "start", 0.0)
|
||||
return safe_get_val(self.__tuple, "start", 0.0)
|
||||
|
||||
@property
|
||||
def duration(self):
|
||||
return _safe_get_val(self.__tuple, "duration", 0.0)
|
||||
return safe_get_val(self.__tuple, "duration", 0.0)
|
||||
|
||||
@property
|
||||
def stimuli(self):
|
||||
@ -316,16 +306,16 @@ class Stimulus:
|
||||
self.__tuple = tuple
|
||||
elif stimulus_id:
|
||||
stimuli = Stimuli & "stimulus_id = '%s'" %stimulus_id
|
||||
_results_check(stimuli, stimulus_id, "Stimulus ID")
|
||||
results_check(stimuli, stimulus_id, "Stimulus ID")
|
||||
self.__tuple = stimuli.fetch(limit=1, as_dict=True)[0]
|
||||
else:
|
||||
print("Empty RePro, not linked to any database entry!")
|
||||
|
||||
def __str__(self):
|
||||
str = "Stimulus %s: " % _safe_get_val(self.__tuple, "stimulus_id", "")
|
||||
str += "\nStart time/index: %0.4f/%i, duration: %.3f" % (_safe_get_val(self.__tuple, "start_time", 0.0),
|
||||
_safe_get_val(self.__tuple, "start_index", -1),
|
||||
_safe_get_val(self.__tuple, "duration", 0.0))
|
||||
str = "Stimulus %s: " % safe_get_val(self.__tuple, "stimulus_id", "")
|
||||
str += "\nStart time/index: %0.4f/%i, duration: %.3f" % (safe_get_val(self.__tuple, "start_time", 0.0),
|
||||
safe_get_val(self.__tuple, "start_index", -1),
|
||||
safe_get_val(self.__tuple, "duration", 0.0))
|
||||
return str
|
||||
|
||||
@property
|
||||
@ -370,7 +360,7 @@ class Stimulus:
|
||||
|
||||
@property
|
||||
def settings(self):
|
||||
return _safe_get_val(self.__tuple, "settings", "")
|
||||
return safe_get_val(self.__tuple, "settings", "")
|
||||
|
||||
@property
|
||||
def _tuple(self):
|
||||
@ -405,7 +395,7 @@ class Subject:
|
||||
self.__tuple = tuple
|
||||
elif subject_id:
|
||||
subjects = Subjects & "subject_id like '{0:s}'".format(subject_id)
|
||||
_results_check(subjects, subject_id, "Subject ID")
|
||||
results_check(subjects, subject_id, "Subject ID")
|
||||
self.__tuple = subjects.fetch()[0]
|
||||
else:
|
||||
self.__tuple = {}
|
9
fishbook/frontend/util.py
Normal file
9
fishbook/frontend/util.py
Normal file
@ -0,0 +1,9 @@
|
||||
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))
|
Loading…
Reference in New Issue
Block a user