Spaces:
Sleeping
Sleeping
File size: 1,093 Bytes
df94728 7ed183c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# 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) |