Source code for orm.strain

import sqlalchemy as sql
from sqlalchemy.orm import (
    Mapped,
    mapped_column,
    relationship,
)

from app.model.lib.db import execute_text
from app.model.orm.orm_base import OrmBase


[docs] class Strain(OrmBase):
[docs] __tablename__ = 'Strains'
[docs] id: Mapped[int] = mapped_column(sql.Integer, primary_key=True)
[docs] name: Mapped[str] = mapped_column(sql.String(100))
[docs] description: Mapped[str] = mapped_column(sql.String)
[docs] defined: Mapped[bool] = mapped_column(sql.Boolean, nullable=False, default=True)
[docs] NCBId: Mapped[int] = mapped_column(sql.Integer)
[docs] studyId: Mapped[str] = mapped_column(sql.ForeignKey('Studies.studyId'), nullable=False)
[docs] study: Mapped['Study'] = relationship(back_populates="strains")
[docs] userUniqueID: Mapped[str] = mapped_column(sql.String(100))
[docs] def __lt__(self, other): return self.name < other.name
@staticmethod
[docs] def find_for_study(db_conn, study_id, strain_name): return execute_text(db_conn, """ SELECT strainId FROM Strains WHERE studyId = :study_id AND name = :strain_name """, study_id=study_id, strain_name=strain_name).scalar()