Source code for allensdk.brain_observatory.behavior.data_objects.metadata.ophys_experiment_metadata.project_code

from allensdk.core import DataObject
from allensdk.core import \
    LimsReadableInterface
from allensdk.internal.api import PostgresQueryMixin


[docs]class ProjectCode(DataObject, LimsReadableInterface): def __init__(self, project_code: str): super().__init__(name='project_code', value=project_code)
[docs] @classmethod def from_lims(cls, ophys_experiment_id: int, lims_db: PostgresQueryMixin) -> "ProjectCode": query = f""" SELECT projects.code AS project_code FROM ophys_sessions JOIN projects ON projects.id = ophys_sessions.project_id WHERE ophys_sessions.id = ( SELECT oe.ophys_session_id FROM ophys_experiments oe WHERE oe.id = {ophys_experiment_id} ) """ project_code = lims_db.fetchone(query, strict=True) return cls(project_code=project_code)