Source code for server.web.models.tool_version

"""Tool version db table."""

from sqlalchemy import ForeignKey, Integer
from sqlalchemy.orm import Mapped, mapped_column, relationship

from jobmon.core.serializers import SerializeClientToolVersion
from jobmon.server.web.models import Base


[docs] class ToolVersion(Base): """Tool version db table."""
[docs] __tablename__ = "tool_version"
[docs] def to_wire_as_client_tool_version(self) -> tuple: """Serialize tool version object.""" serialized = SerializeClientToolVersion.to_wire( id=self.id, tool_id=self.tool_id ) return serialized
[docs] id: Mapped[int] = mapped_column(Integer, primary_key=True)
[docs] tool_id: Mapped[int] = mapped_column(Integer, ForeignKey("tool.id"), nullable=False)
# ORM relationships
[docs] tool = relationship("Tool", back_populates="tool_versions")
[docs] task_templates = relationship("TaskTemplate", back_populates="tool_versions")