MCP_Research / orchestrator /provenance.py
mgbam's picture
Update orchestrator/provenance.py
7ed183c verified
raw
history blame
1.09 kB
# SQLAlchemy models for provenance
# File: orchestrator/provenance.py
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, create_engine
from sqlalchemy.orm import declarative_base, relationship, sessionmaker
from datetime import datetime
Base = declarative_base()
class Paper(Base):
__tablename__ = 'papers'
id = Column(String, primary_key=True)
title = Column(String)
authors = Column(String)
abstract = Column(String)
fetched_at = Column(DateTime, default=datetime.utcnow)
runs = relationship("Run", back_populates="paper")
class Run(Base):
__tablename__ = 'runs'
id = Column(Integer, primary_key=True, autoincrement=True)
paper_id = Column(String, ForeignKey('papers.id'))
cell_index = Column(Integer)
output = Column(String)
executed_at = Column(DateTime, default=datetime.utcnow)
paper = relationship("Paper", back_populates="runs")
# Utility to initialize and get a session
def init_db(db_url: str):
engine = create_engine(db_url)
Base.metadata.create_all(engine)
return sessionmaker(bind=engine)