Source code for allensdk.brain_observatory.behavior.data_objects.metadata.behavior_metadata.foraging_id

import uuid

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


[docs]class ForagingId(DataObject, LimsReadableInterface, JsonReadableInterface): """Foraging id""" def __init__(self, foraging_id: uuid.UUID): super().__init__(name="foraging_id", value=foraging_id)
[docs] @classmethod def from_json(cls, dict_repr: dict) -> "ForagingId": pass
[docs] @classmethod def from_lims(cls, behavior_session_id: int, lims_db: PostgresQueryMixin) -> "ForagingId": query = f""" SELECT foraging_id FROM behavior_sessions WHERE behavior_sessions.id = {behavior_session_id}; """ foraging_id = lims_db.fetchone(query, strict=True) try: foraging_id = uuid.UUID(foraging_id) except ValueError: foraging_id = None return cls(foraging_id=foraging_id)