repro can find by celltype, species and name correctly

This commit is contained in:
Jan Grewe 2019-09-19 10:12:51 +02:00
parent 4b282de987
commit d27c02614c

View File

@ -198,14 +198,31 @@ class RePro:
return [Stimulus(tuple=s) for s in stims]
@staticmethod
def find_repros(repro_name=None, cell_id=None, settings=None):
def find_repros(repro_name=None, cell_id=None, cell_type=None, species=None, settings=None):
"""
Cell type and species are ignored, if cell_id is provided
:param repro_name:
:param cell_id:
:param cell_type:
:param species:
:param settings:
:return:
"""
repros = Repros & True
if repro_name:
repros = repros & "repro_name like '%{0:s}%'".format(repro_name)
if cell_id:
repros = repros & "cell_id = '%s'" % cell_id
if settings:
repros = repros & "settings like '%{0:s}%'".format(settings)
if cell_id:
repros = repros & "cell_id = '{0:s}'".format(cell_id)
if not cell_id and (cell_type or species):
cells = Cells * Subjects
if cell_type:
cells = cells & "cell_type like '%{0:s}%'".format(cell_type)
if species:
cells = cells & "species like '%{0:s}%'".format(species)
repros = repros * cells
repros.proj("repro_id", "repro_name", "settings", "run", "cell_id", "start", "duration").fetch(as_dict=True)
return [RePro(tuple=r) for r in repros]