Spaces:
Sleeping
Sleeping
File size: 3,688 Bytes
6c15786 db913fc 6c15786 db913fc 6c15786 | 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | """SQLAlchemy ORM models."""
import datetime
import uuid
from sqlalchemy import Column, String, Integer, Text, Float, DateTime, JSON
from .database import Base
def _id() -> str:
return uuid.uuid4().hex
class User(Base):
__tablename__ = "users"
id = Column(String, primary_key=True, default=_id)
username = Column(String, unique=True, index=True, nullable=False)
email = Column(String, unique=True, index=True, nullable=False)
hashed_password = Column(String, nullable=False)
created_at = Column(DateTime, default=datetime.datetime.utcnow)
class ModelRepo(Base):
__tablename__ = "model_repos"
id = Column(String, primary_key=True, default=_id)
name = Column(String, nullable=False)
owner = Column(String, index=True, nullable=False)
description = Column(Text, default="")
pipeline_tag = Column(String, default="text-generation")
tags = Column(JSON, default=list)
license = Column(String, default="apache-2.0")
hf_repo_id = Column(String, nullable=True)
downloads = Column(Integer, default=0)
likes = Column(Integer, default=0)
created_at = Column(DateTime, default=datetime.datetime.utcnow)
class DatasetRepo(Base):
__tablename__ = "dataset_repos"
id = Column(String, primary_key=True, default=_id)
name = Column(String, nullable=False)
owner = Column(String, index=True, nullable=False)
description = Column(Text, default="")
tags = Column(JSON, default=list)
license = Column(String, default="apache-2.0")
columns = Column(JSON, default=list) # schema: list of column names
num_rows = Column(Integer, default=0)
size_bytes = Column(Integer, default=0)
downloads = Column(Integer, default=0)
created_at = Column(DateTime, default=datetime.datetime.utcnow)
class SpaceRepo(Base):
__tablename__ = "space_repos"
id = Column(String, primary_key=True, default=_id)
name = Column(String, nullable=False)
owner = Column(String, index=True, nullable=False)
description = Column(Text, default="")
sdk = Column(String, default="gradio")
status = Column(String, default="not-built") # not-built | building | running | sleeping
likes = Column(Integer, default=0)
created_at = Column(DateTime, default=datetime.datetime.utcnow)
class TrainingJob(Base):
__tablename__ = "training_jobs"
id = Column(String, primary_key=True, default=_id)
name = Column(String, nullable=False)
owner = Column(String, index=True, nullable=False)
base_model = Column(String, nullable=False)
dataset = Column(String, nullable=False)
job_type = Column(String, default="scratch") # scratch | finetune
status = Column(String, default="queued") # queued | running | completed | failed | cancelled
config = Column(JSON, default=dict)
metrics = Column(JSON, default=dict)
total_epochs = Column(Integer, default=0)
current_epoch = Column(Integer, default=0)
loss = Column(Float, nullable=True)
error = Column(Text, nullable=True)
created_at = Column(DateTime, default=datetime.datetime.utcnow)
started_at = Column(DateTime, nullable=True)
finished_at = Column(DateTime, nullable=True)
class StoredFile(Base):
__tablename__ = "stored_files"
id = Column(String, primary_key=True, default=_id)
repo_type = Column(String, index=True, nullable=False) # model | dataset
repo_id = Column(String, index=True, nullable=False) # owning repo id (polymorphic)
filename = Column(String, nullable=False)
size_bytes = Column(Integer, default=0)
sha256 = Column(String, nullable=True)
uploaded_at = Column(DateTime, default=datetime.datetime.utcnow)
|