Adisri99 commited on
Commit
7fe6b80
·
verified ·
1 Parent(s): 97a3e28

Update backend/app/repositories/experiment_repo.py

Browse files
backend/app/repositories/experiment_repo.py CHANGED
@@ -1,16 +1,46 @@
1
- from sqlalchemy import Column, Integer, String, Text
2
- from backend.app.db import Base
3
-
4
-
5
- class Experiment(Base):
6
- __tablename__ = "experiments"
7
-
8
- id = Column(String, primary_key=True, index=True)
9
- dataset_id = Column(String, nullable=False, index=True)
10
- algorithm = Column(String, nullable=False)
11
- status = Column(String, nullable=False)
12
- config_json = Column(Text, nullable=True)
13
- metrics_json = Column(Text, nullable=True)
14
- summary_json = Column(Text, nullable=True)
15
- runtime_ms = Column(Integer, nullable=True)
16
- error_message = Column(Text, nullable=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sqlalchemy.orm import Session
2
+
3
+ from backend.app.models.experiment import Experiment
4
+
5
+
6
+ def create_experiment(
7
+ db: Session,
8
+ id: str,
9
+ dataset_id: str,
10
+ algorithm: str,
11
+ status: str,
12
+ config_json: str | None = None,
13
+ metrics_json: str | None = None,
14
+ summary_json: str | None = None,
15
+ runtime_ms: int | None = None,
16
+ error_message: str | None = None,
17
+ ) -> Experiment:
18
+ experiment = Experiment(
19
+ id=id,
20
+ dataset_id=dataset_id,
21
+ algorithm=algorithm,
22
+ status=status,
23
+ config_json=config_json,
24
+ metrics_json=metrics_json,
25
+ summary_json=summary_json,
26
+ runtime_ms=runtime_ms,
27
+ error_message=error_message,
28
+ )
29
+ db.add(experiment)
30
+ db.commit()
31
+ db.refresh(experiment)
32
+ return experiment
33
+
34
+
35
+ def get_experiment(db: Session, experiment_id: str) -> Experiment | None:
36
+ return db.query(Experiment).filter(Experiment.id == experiment_id).first()
37
+
38
+
39
+ def list_experiments(db: Session) -> list[Experiment]:
40
+ return db.query(Experiment).order_by(Experiment.id.desc()).all()
41
+
42
+
43
+ def get_experiments_by_ids(db: Session, experiment_ids: list[str]) -> list[Experiment]:
44
+ if not experiment_ids:
45
+ return []
46
+ return db.query(Experiment).filter(Experiment.id.in_(experiment_ids)).all()