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)