plexus-python-pulse-demeter 1.1.126__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- plexus/pulse/demeter/__init__.py +6 -0
- plexus/pulse/demeter/app/__init__.py +0 -0
- plexus/pulse/demeter/app/api/__init__.py +44 -0
- plexus/pulse/demeter/app/api/archive_internal_endpoints.py +316 -0
- plexus/pulse/demeter/app/api/archive_public_endpoints.py +255 -0
- plexus/pulse/demeter/app/api/dataset_internal_endpoints.py +1043 -0
- plexus/pulse/demeter/app/api/dataset_public_endpoints.py +2161 -0
- plexus/pulse/demeter/app/api/dataset_workflow_endpoints.py +532 -0
- plexus/pulse/demeter/app/api/tagging_endpoints.py +323 -0
- plexus/pulse/demeter/app/api/user_endpoints.py +78 -0
- plexus/pulse/demeter/app/core/__init__.py +0 -0
- plexus/pulse/demeter/app/core/database.py +43 -0
- plexus/pulse/demeter/app/core/vault.py +29 -0
- plexus/pulse/demeter/app/main.py +16 -0
- plexus/pulse/demeter/app/models/__init__.py +33 -0
- plexus/pulse/demeter/app/models/local.py +249 -0
- plexus/pulse/demeter/app/models/registry/__init__.py +112 -0
- plexus/pulse/demeter/app/models/registry/archive.py +529 -0
- plexus/pulse/demeter/app/models/registry/dataset.py +1531 -0
- plexus/pulse/demeter/app/models/registry/tagging.py +478 -0
- plexus/pulse/demeter/app/models/registry/user.py +79 -0
- plexus/pulse/demeter/tools/__init__.py +0 -0
- plexus/pulse/demeter/tools/main.py +306 -0
- plexus/pulse/demeter/utils/__init__.py +0 -0
- plexus/pulse/demeter/utils/config.py +25 -0
- plexus/pulse/demeter/utils/datautils.py +436 -0
- plexus_python_pulse_demeter-1.1.126.dist-info/METADATA +36 -0
- plexus_python_pulse_demeter-1.1.126.dist-info/RECORD +31 -0
- plexus_python_pulse_demeter-1.1.126.dist-info/WHEEL +5 -0
- plexus_python_pulse_demeter-1.1.126.dist-info/entry_points.txt +2 -0
- plexus_python_pulse_demeter-1.1.126.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,1043 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
|
|
3
|
+
import sqlalchemy.orm as sa_orm
|
|
4
|
+
from fastapi import APIRouter, Depends
|
|
5
|
+
from fastapi.params import Query
|
|
6
|
+
from plexus.common.utils.dtutils import dt_utc_now
|
|
7
|
+
from plexus.pulse.common.utils.apiutils import managed_db_session
|
|
8
|
+
from plexus.pulse.common.utils.ormutils import (
|
|
9
|
+
db_create_revision_model,
|
|
10
|
+
db_create_revision_models,
|
|
11
|
+
db_expire_revision_model,
|
|
12
|
+
db_read_active_revision_model_of_record,
|
|
13
|
+
db_read_active_revision_models,
|
|
14
|
+
db_update_revision_model,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
from plexus.pulse.demeter.app.core.database import make_session
|
|
18
|
+
from plexus.pulse.demeter.app.models.registry.dataset import (
|
|
19
|
+
AnnotationGuideline as Guideline,
|
|
20
|
+
ClassifierTaxonomy as Taxonomy,
|
|
21
|
+
DatasetPromotion as DatasetPromotion,
|
|
22
|
+
DatasetRegistration as Registration,
|
|
23
|
+
ModelArchitecture as Architecture,
|
|
24
|
+
ModelAssessment as Assessment,
|
|
25
|
+
ModelAssessmentPromotion as AssessmentPromotion,
|
|
26
|
+
ModelBenchmark as Benchmark,
|
|
27
|
+
ModelEvaluation as Evaluation,
|
|
28
|
+
ModelExperiment as Experiment,
|
|
29
|
+
ModelExperimentPromotion as ExperimentPromotion,
|
|
30
|
+
ModelTraining as Training,
|
|
31
|
+
RegisteredDataset as Dataset,
|
|
32
|
+
RegisteredSample as Sample,
|
|
33
|
+
SampleAnnotation as Annotation,
|
|
34
|
+
SampleClassifier as Classifier,
|
|
35
|
+
SampleLayout as Layout,
|
|
36
|
+
)
|
|
37
|
+
from plexus.pulse.demeter.app.models.registry.dataset import (
|
|
38
|
+
AnnotationGuidelineTable as GuidelineTable,
|
|
39
|
+
ClassifierTaxonomyTable as TaxonomyTable,
|
|
40
|
+
DatasetPromotionTable as DatasetPromotionTable,
|
|
41
|
+
DatasetRegistrationTable as RegistrationTable,
|
|
42
|
+
ModelArchitectureTable as ArchitectureTable,
|
|
43
|
+
ModelAssessmentPromotionTable as AssessmentPromotionTable,
|
|
44
|
+
ModelAssessmentTable as AssessmentTable,
|
|
45
|
+
ModelBenchmarkTable as BenchmarkTable,
|
|
46
|
+
ModelEvaluationTable as EvaluationTable,
|
|
47
|
+
ModelExperimentPromotionTable as ExperimentPromotionTable,
|
|
48
|
+
ModelExperimentTable as ExperimentTable,
|
|
49
|
+
ModelTrainingTable as TrainingTable,
|
|
50
|
+
RegisteredDatasetTable as DatasetTable,
|
|
51
|
+
RegisteredSampleTable as SampleTable,
|
|
52
|
+
SampleAnnotationTable as AnnotationTable,
|
|
53
|
+
SampleClassifierTable as ClassifierTable,
|
|
54
|
+
SampleLayoutTable as LayoutTable,
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
router = APIRouter(prefix="/pulse_demeter/dataset_internal", tags=["dataset_internal"])
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
# Layout
|
|
61
|
+
@router.post("/layout/", response_model=LayoutTable)
|
|
62
|
+
def create_layout(
|
|
63
|
+
layout: Layout,
|
|
64
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
65
|
+
db: sa_orm.Session = Depends(make_session),
|
|
66
|
+
) -> LayoutTable:
|
|
67
|
+
with managed_db_session(db):
|
|
68
|
+
return db_create_revision_model(db, LayoutTable, layout, created_at)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@router.post("/layouts/", response_model=list[LayoutTable])
|
|
72
|
+
def create_layouts(
|
|
73
|
+
layouts: list[Layout],
|
|
74
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
75
|
+
db: sa_orm.Session = Depends(make_session),
|
|
76
|
+
) -> list[LayoutTable]:
|
|
77
|
+
with managed_db_session(db):
|
|
78
|
+
return db_create_revision_models(db, LayoutTable, layouts, created_at)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
@router.get("/layout/{record_sqn}", response_model=LayoutTable)
|
|
82
|
+
def read_layout(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> LayoutTable:
|
|
83
|
+
with managed_db_session(db):
|
|
84
|
+
return db_read_active_revision_model_of_record(db, LayoutTable, record_sqn)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@router.get("/layouts/", response_model=list[LayoutTable])
|
|
88
|
+
def read_layouts(
|
|
89
|
+
skip: int = Query(0),
|
|
90
|
+
limit: int = Query(1000),
|
|
91
|
+
db: sa_orm.Session = Depends(make_session),
|
|
92
|
+
) -> list[LayoutTable]:
|
|
93
|
+
with managed_db_session(db):
|
|
94
|
+
return db_read_active_revision_models(db, LayoutTable, skip, limit)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
@router.put("/layout/{record_sqn}", response_model=LayoutTable)
|
|
98
|
+
def update_layout(
|
|
99
|
+
record_sqn: int,
|
|
100
|
+
layout: Layout,
|
|
101
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
102
|
+
db: sa_orm.Session = Depends(make_session),
|
|
103
|
+
) -> LayoutTable:
|
|
104
|
+
with managed_db_session(db):
|
|
105
|
+
return db_update_revision_model(db, LayoutTable, layout, record_sqn, updated_at)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@router.delete("/layout/{record_sqn}", response_model=LayoutTable)
|
|
109
|
+
def delete_layout(
|
|
110
|
+
record_sqn: int,
|
|
111
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
112
|
+
db: sa_orm.Session = Depends(make_session),
|
|
113
|
+
) -> LayoutTable:
|
|
114
|
+
with managed_db_session(db):
|
|
115
|
+
return db_expire_revision_model(db, LayoutTable, record_sqn, updated_at)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
# Taxonomy
|
|
119
|
+
@router.post("/taxonomy/", response_model=TaxonomyTable)
|
|
120
|
+
def create_taxonomy(
|
|
121
|
+
taxonomy: Taxonomy,
|
|
122
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
123
|
+
db: sa_orm.Session = Depends(make_session),
|
|
124
|
+
) -> TaxonomyTable:
|
|
125
|
+
with managed_db_session(db):
|
|
126
|
+
return db_create_revision_model(db, TaxonomyTable, taxonomy, created_at)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
@router.post("/taxonomies/", response_model=list[TaxonomyTable])
|
|
130
|
+
def create_taxonomies(
|
|
131
|
+
taxonomies: list[Taxonomy],
|
|
132
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
133
|
+
db: sa_orm.Session = Depends(make_session),
|
|
134
|
+
) -> list[TaxonomyTable]:
|
|
135
|
+
with managed_db_session(db):
|
|
136
|
+
return db_create_revision_models(db, TaxonomyTable, taxonomies, created_at)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
@router.get("/taxonomy/{record_sqn}", response_model=TaxonomyTable)
|
|
140
|
+
def read_taxonomy(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> TaxonomyTable:
|
|
141
|
+
with managed_db_session(db):
|
|
142
|
+
return db_read_active_revision_model_of_record(db, TaxonomyTable, record_sqn)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
@router.get("/taxonomies/", response_model=list[TaxonomyTable])
|
|
146
|
+
def read_taxonomies(
|
|
147
|
+
skip: int = Query(0),
|
|
148
|
+
limit: int = Query(1000),
|
|
149
|
+
db: sa_orm.Session = Depends(make_session),
|
|
150
|
+
) -> list[TaxonomyTable]:
|
|
151
|
+
with managed_db_session(db):
|
|
152
|
+
return db_read_active_revision_models(db, TaxonomyTable, skip, limit)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
@router.put("/taxonomy/{record_sqn}", response_model=TaxonomyTable)
|
|
156
|
+
def update_taxonomy(
|
|
157
|
+
record_sqn: int,
|
|
158
|
+
taxonomy: Taxonomy,
|
|
159
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
160
|
+
db: sa_orm.Session = Depends(make_session),
|
|
161
|
+
) -> TaxonomyTable:
|
|
162
|
+
with managed_db_session(db):
|
|
163
|
+
return db_update_revision_model(db, TaxonomyTable, taxonomy, record_sqn, updated_at)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
@router.delete("/taxonomy/{record_sqn}", response_model=TaxonomyTable)
|
|
167
|
+
def delete_taxonomy(
|
|
168
|
+
record_sqn: int,
|
|
169
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
170
|
+
db: sa_orm.Session = Depends(make_session),
|
|
171
|
+
) -> TaxonomyTable:
|
|
172
|
+
with managed_db_session(db):
|
|
173
|
+
return db_expire_revision_model(db, TaxonomyTable, record_sqn, updated_at)
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
# Guideline
|
|
177
|
+
@router.post("/guideline/", response_model=GuidelineTable)
|
|
178
|
+
def create_guideline(
|
|
179
|
+
guideline: Guideline,
|
|
180
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
181
|
+
db: sa_orm.Session = Depends(make_session),
|
|
182
|
+
) -> GuidelineTable:
|
|
183
|
+
with managed_db_session(db):
|
|
184
|
+
return db_create_revision_model(db, GuidelineTable, guideline, created_at)
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
@router.post("/guidelines/", response_model=list[GuidelineTable])
|
|
188
|
+
def create_guidelines(
|
|
189
|
+
guidelines: list[Guideline],
|
|
190
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
191
|
+
db: sa_orm.Session = Depends(make_session),
|
|
192
|
+
) -> list[GuidelineTable]:
|
|
193
|
+
with managed_db_session(db):
|
|
194
|
+
return db_create_revision_models(db, GuidelineTable, guidelines, created_at)
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
@router.get("/guideline/{record_sqn}", response_model=GuidelineTable)
|
|
198
|
+
def read_guideline(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> GuidelineTable:
|
|
199
|
+
with managed_db_session(db):
|
|
200
|
+
return db_read_active_revision_model_of_record(db, GuidelineTable, record_sqn)
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
@router.get("/guidelines/", response_model=list[GuidelineTable])
|
|
204
|
+
def read_guidelines(
|
|
205
|
+
skip: int = Query(0),
|
|
206
|
+
limit: int = Query(1000),
|
|
207
|
+
db: sa_orm.Session = Depends(make_session),
|
|
208
|
+
) -> list[GuidelineTable]:
|
|
209
|
+
with managed_db_session(db):
|
|
210
|
+
return db_read_active_revision_models(db, GuidelineTable, skip, limit)
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
@router.put("/guideline/{record_sqn}", response_model=GuidelineTable)
|
|
214
|
+
def update_guideline(
|
|
215
|
+
record_sqn: int,
|
|
216
|
+
guideline: Guideline,
|
|
217
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
218
|
+
db: sa_orm.Session = Depends(make_session),
|
|
219
|
+
) -> GuidelineTable:
|
|
220
|
+
with managed_db_session(db):
|
|
221
|
+
return db_update_revision_model(db, GuidelineTable, guideline, record_sqn, updated_at)
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
@router.delete("/guideline/{record_sqn}", response_model=GuidelineTable)
|
|
225
|
+
def delete_guideline(
|
|
226
|
+
record_sqn: int,
|
|
227
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
228
|
+
db: sa_orm.Session = Depends(make_session),
|
|
229
|
+
) -> GuidelineTable:
|
|
230
|
+
with managed_db_session(db):
|
|
231
|
+
return db_expire_revision_model(db, GuidelineTable, record_sqn, updated_at)
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
# Architecture
|
|
235
|
+
@router.post("/architecture/", response_model=ArchitectureTable)
|
|
236
|
+
def create_architecture(
|
|
237
|
+
architecture: Architecture,
|
|
238
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
239
|
+
db: sa_orm.Session = Depends(make_session),
|
|
240
|
+
) -> ArchitectureTable:
|
|
241
|
+
with managed_db_session(db):
|
|
242
|
+
return db_create_revision_model(db, ArchitectureTable, architecture, created_at)
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
@router.post("/architectures/", response_model=list[ArchitectureTable])
|
|
246
|
+
def create_architectures(
|
|
247
|
+
architectures: list[Architecture],
|
|
248
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
249
|
+
db: sa_orm.Session = Depends(make_session),
|
|
250
|
+
) -> list[ArchitectureTable]:
|
|
251
|
+
with managed_db_session(db):
|
|
252
|
+
return db_create_revision_models(db, ArchitectureTable, architectures, created_at)
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
@router.get("/architecture/{record_sqn}", response_model=ArchitectureTable)
|
|
256
|
+
def read_architecture(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> ArchitectureTable:
|
|
257
|
+
with managed_db_session(db):
|
|
258
|
+
return db_read_active_revision_model_of_record(db, ArchitectureTable, record_sqn)
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
@router.get("/architectures/", response_model=list[ArchitectureTable])
|
|
262
|
+
def read_architectures(
|
|
263
|
+
skip: int = Query(0),
|
|
264
|
+
limit: int = Query(1000),
|
|
265
|
+
db: sa_orm.Session = Depends(make_session),
|
|
266
|
+
) -> list[ArchitectureTable]:
|
|
267
|
+
with managed_db_session(db):
|
|
268
|
+
return db_read_active_revision_models(db, ArchitectureTable, skip, limit)
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
@router.put("/architecture/{record_sqn}", response_model=ArchitectureTable)
|
|
272
|
+
def update_architecture(
|
|
273
|
+
record_sqn: int,
|
|
274
|
+
architecture: Architecture,
|
|
275
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
276
|
+
db: sa_orm.Session = Depends(make_session),
|
|
277
|
+
) -> ArchitectureTable:
|
|
278
|
+
with managed_db_session(db):
|
|
279
|
+
return db_update_revision_model(db, ArchitectureTable, architecture, record_sqn, updated_at)
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
@router.delete("/architecture/{record_sqn}", response_model=ArchitectureTable)
|
|
283
|
+
def delete_architecture(
|
|
284
|
+
record_sqn: int,
|
|
285
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
286
|
+
db: sa_orm.Session = Depends(make_session),
|
|
287
|
+
) -> ArchitectureTable:
|
|
288
|
+
with managed_db_session(db):
|
|
289
|
+
return db_expire_revision_model(db, ArchitectureTable, record_sqn, updated_at)
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
# Benchmark
|
|
293
|
+
@router.post("/benchmark/", response_model=BenchmarkTable)
|
|
294
|
+
def create_benchmark(
|
|
295
|
+
benchmark: Benchmark,
|
|
296
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
297
|
+
db: sa_orm.Session = Depends(make_session),
|
|
298
|
+
) -> BenchmarkTable:
|
|
299
|
+
with managed_db_session(db):
|
|
300
|
+
return db_create_revision_model(db, BenchmarkTable, benchmark, created_at)
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
@router.post("/benchmarks/", response_model=list[BenchmarkTable])
|
|
304
|
+
def create_benchmarks(
|
|
305
|
+
benchmarks: list[Benchmark],
|
|
306
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
307
|
+
db: sa_orm.Session = Depends(make_session),
|
|
308
|
+
) -> list[BenchmarkTable]:
|
|
309
|
+
with managed_db_session(db):
|
|
310
|
+
return db_create_revision_models(db, BenchmarkTable, benchmarks, created_at)
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
@router.get("/benchmark/{record_sqn}", response_model=BenchmarkTable)
|
|
314
|
+
def read_benchmark(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> BenchmarkTable:
|
|
315
|
+
with managed_db_session(db):
|
|
316
|
+
return db_read_active_revision_model_of_record(db, BenchmarkTable, record_sqn)
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
@router.get("/benchmarks/", response_model=list[BenchmarkTable])
|
|
320
|
+
def read_benchmarks(
|
|
321
|
+
skip: int = Query(0),
|
|
322
|
+
limit: int = Query(1000),
|
|
323
|
+
db: sa_orm.Session = Depends(make_session),
|
|
324
|
+
) -> list[BenchmarkTable]:
|
|
325
|
+
with managed_db_session(db):
|
|
326
|
+
return db_read_active_revision_models(db, BenchmarkTable, skip, limit)
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
@router.put("/benchmark/{record_sqn}", response_model=BenchmarkTable)
|
|
330
|
+
def update_benchmark(
|
|
331
|
+
record_sqn: int,
|
|
332
|
+
benchmark: Benchmark,
|
|
333
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
334
|
+
db: sa_orm.Session = Depends(make_session),
|
|
335
|
+
) -> BenchmarkTable:
|
|
336
|
+
with managed_db_session(db):
|
|
337
|
+
return db_update_revision_model(db, BenchmarkTable, benchmark, record_sqn, updated_at)
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
@router.delete("/benchmark/{record_sqn}", response_model=BenchmarkTable)
|
|
341
|
+
def delete_benchmark(
|
|
342
|
+
record_sqn: int,
|
|
343
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
344
|
+
db: sa_orm.Session = Depends(make_session),
|
|
345
|
+
) -> BenchmarkTable:
|
|
346
|
+
with managed_db_session(db):
|
|
347
|
+
return db_expire_revision_model(db, BenchmarkTable, record_sqn, updated_at)
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
# Registration
|
|
351
|
+
@router.post("/registration/", response_model=RegistrationTable)
|
|
352
|
+
def create_registration(
|
|
353
|
+
registration: Registration,
|
|
354
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
355
|
+
db: sa_orm.Session = Depends(make_session),
|
|
356
|
+
) -> RegistrationTable:
|
|
357
|
+
with managed_db_session(db):
|
|
358
|
+
return db_create_revision_model(db, RegistrationTable, registration, created_at)
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
@router.post("/registrations/", response_model=list[RegistrationTable])
|
|
362
|
+
def create_registrations(
|
|
363
|
+
registrations: list[Registration],
|
|
364
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
365
|
+
db: sa_orm.Session = Depends(make_session),
|
|
366
|
+
) -> list[RegistrationTable]:
|
|
367
|
+
with managed_db_session(db):
|
|
368
|
+
return db_create_revision_models(db, RegistrationTable, registrations, created_at)
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
@router.get("/registration/{record_sqn}", response_model=RegistrationTable)
|
|
372
|
+
def read_registration(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> RegistrationTable:
|
|
373
|
+
with managed_db_session(db):
|
|
374
|
+
return db_read_active_revision_model_of_record(db, RegistrationTable, record_sqn)
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
@router.get("/registrations/", response_model=list[RegistrationTable])
|
|
378
|
+
def read_registrations(
|
|
379
|
+
skip: int = Query(0),
|
|
380
|
+
limit: int = Query(1000),
|
|
381
|
+
db: sa_orm.Session = Depends(make_session),
|
|
382
|
+
) -> list[RegistrationTable]:
|
|
383
|
+
with managed_db_session(db):
|
|
384
|
+
return db_read_active_revision_models(db, RegistrationTable, skip, limit)
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
@router.put("/registration/{record_sqn}", response_model=RegistrationTable)
|
|
388
|
+
def update_registration(
|
|
389
|
+
record_sqn: int,
|
|
390
|
+
registration: Registration,
|
|
391
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
392
|
+
db: sa_orm.Session = Depends(make_session),
|
|
393
|
+
) -> RegistrationTable:
|
|
394
|
+
with managed_db_session(db):
|
|
395
|
+
return db_update_revision_model(db, RegistrationTable, registration, record_sqn, updated_at)
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
@router.delete("/registration/{record_sqn}", response_model=RegistrationTable)
|
|
399
|
+
def delete_registration(
|
|
400
|
+
record_sqn: int,
|
|
401
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
402
|
+
db: sa_orm.Session = Depends(make_session),
|
|
403
|
+
) -> RegistrationTable:
|
|
404
|
+
with managed_db_session(db):
|
|
405
|
+
return db_expire_revision_model(db, RegistrationTable, record_sqn, updated_at)
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
# Dataset Promotion
|
|
409
|
+
@router.post("/dataset_promotion/", response_model=DatasetPromotionTable)
|
|
410
|
+
def create_dataset_promotion(
|
|
411
|
+
dataset_promotion: DatasetPromotion,
|
|
412
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
413
|
+
db: sa_orm.Session = Depends(make_session),
|
|
414
|
+
) -> DatasetPromotionTable:
|
|
415
|
+
with managed_db_session(db):
|
|
416
|
+
return db_create_revision_model(db, DatasetPromotionTable, dataset_promotion, created_at)
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
@router.post("/dataset_promotions/", response_model=list[DatasetPromotionTable])
|
|
420
|
+
def create_dataset_promotions(
|
|
421
|
+
dataset_promotions: list[DatasetPromotion],
|
|
422
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
423
|
+
db: sa_orm.Session = Depends(make_session),
|
|
424
|
+
) -> list[DatasetPromotionTable]:
|
|
425
|
+
with managed_db_session(db):
|
|
426
|
+
return db_create_revision_models(db, DatasetPromotionTable, dataset_promotions, created_at)
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
@router.get("/dataset_promotion/{record_sqn}", response_model=DatasetPromotionTable)
|
|
430
|
+
def read_dataset_promotion(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> DatasetPromotionTable:
|
|
431
|
+
with managed_db_session(db):
|
|
432
|
+
return db_read_active_revision_model_of_record(db, DatasetPromotionTable, record_sqn)
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
@router.get("/dataset_promotions/", response_model=list[DatasetPromotionTable])
|
|
436
|
+
def read_dataset_promotions(
|
|
437
|
+
skip: int = Query(0),
|
|
438
|
+
limit: int = Query(1000),
|
|
439
|
+
db: sa_orm.Session = Depends(make_session),
|
|
440
|
+
) -> list[DatasetPromotionTable]:
|
|
441
|
+
with managed_db_session(db):
|
|
442
|
+
return db_read_active_revision_models(db, DatasetPromotionTable, skip, limit)
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
@router.put("/dataset_promotion/{record_sqn}", response_model=DatasetPromotionTable)
|
|
446
|
+
def update_dataset_promotion(
|
|
447
|
+
record_sqn: int,
|
|
448
|
+
dataset_promotion: DatasetPromotion,
|
|
449
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
450
|
+
db: sa_orm.Session = Depends(make_session),
|
|
451
|
+
) -> DatasetPromotionTable:
|
|
452
|
+
with managed_db_session(db):
|
|
453
|
+
return db_update_revision_model(db, DatasetPromotionTable, dataset_promotion, record_sqn, updated_at)
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
@router.delete("/dataset_promotion/{record_sqn}", response_model=DatasetPromotionTable)
|
|
457
|
+
def delete_dataset_promotion(
|
|
458
|
+
record_sqn: int,
|
|
459
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
460
|
+
db: sa_orm.Session = Depends(make_session),
|
|
461
|
+
) -> DatasetPromotionTable:
|
|
462
|
+
with managed_db_session(db):
|
|
463
|
+
return db_expire_revision_model(db, DatasetPromotionTable, record_sqn, updated_at)
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
# Dataset
|
|
467
|
+
@router.post("/dataset/", response_model=DatasetTable)
|
|
468
|
+
def create_dataset(
|
|
469
|
+
dataset: Dataset,
|
|
470
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
471
|
+
db: sa_orm.Session = Depends(make_session),
|
|
472
|
+
) -> DatasetTable:
|
|
473
|
+
with managed_db_session(db):
|
|
474
|
+
return db_create_revision_model(db, DatasetTable, dataset, created_at)
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
@router.post("/datasets/", response_model=list[DatasetTable])
|
|
478
|
+
def create_datasets(
|
|
479
|
+
datasets: list[Dataset],
|
|
480
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
481
|
+
db: sa_orm.Session = Depends(make_session),
|
|
482
|
+
) -> list[DatasetTable]:
|
|
483
|
+
with managed_db_session(db):
|
|
484
|
+
return db_create_revision_models(db, DatasetTable, datasets, created_at)
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
@router.get("/dataset/{record_sqn}", response_model=DatasetTable)
|
|
488
|
+
def read_dataset(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> DatasetTable:
|
|
489
|
+
with managed_db_session(db):
|
|
490
|
+
return db_read_active_revision_model_of_record(db, DatasetTable, record_sqn)
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
@router.get("/datasets/", response_model=list[DatasetTable])
|
|
494
|
+
def read_datasets(
|
|
495
|
+
skip: int = Query(0),
|
|
496
|
+
limit: int = Query(1000),
|
|
497
|
+
db: sa_orm.Session = Depends(make_session),
|
|
498
|
+
) -> list[DatasetTable]:
|
|
499
|
+
with managed_db_session(db):
|
|
500
|
+
return db_read_active_revision_models(db, DatasetTable, skip, limit)
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
@router.put("/dataset/{record_sqn}", response_model=DatasetTable)
|
|
504
|
+
def update_dataset(
|
|
505
|
+
record_sqn: int,
|
|
506
|
+
dataset: Dataset,
|
|
507
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
508
|
+
db: sa_orm.Session = Depends(make_session),
|
|
509
|
+
) -> DatasetTable:
|
|
510
|
+
with managed_db_session(db):
|
|
511
|
+
return db_update_revision_model(db, DatasetTable, dataset, record_sqn, updated_at)
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
@router.delete("/dataset/{record_sqn}", response_model=DatasetTable)
|
|
515
|
+
def delete_dataset(
|
|
516
|
+
record_sqn: int,
|
|
517
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
518
|
+
db: sa_orm.Session = Depends(make_session),
|
|
519
|
+
) -> DatasetTable:
|
|
520
|
+
with managed_db_session(db):
|
|
521
|
+
return db_expire_revision_model(db, DatasetTable, record_sqn, updated_at)
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
# Sample
|
|
525
|
+
@router.post("/sample/", response_model=SampleTable)
|
|
526
|
+
def create_sample(
|
|
527
|
+
sample: Sample,
|
|
528
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
529
|
+
db: sa_orm.Session = Depends(make_session),
|
|
530
|
+
) -> SampleTable:
|
|
531
|
+
with managed_db_session(db):
|
|
532
|
+
return db_create_revision_model(db, SampleTable, sample, created_at)
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
@router.post("/samples/", response_model=list[SampleTable])
|
|
536
|
+
def create_samples(
|
|
537
|
+
samples: list[Sample],
|
|
538
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
539
|
+
db: sa_orm.Session = Depends(make_session),
|
|
540
|
+
) -> list[SampleTable]:
|
|
541
|
+
with managed_db_session(db):
|
|
542
|
+
return db_create_revision_models(db, SampleTable, samples, created_at)
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
@router.get("/sample/{record_sqn}", response_model=SampleTable)
|
|
546
|
+
def read_sample(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> SampleTable:
|
|
547
|
+
with managed_db_session(db):
|
|
548
|
+
return db_read_active_revision_model_of_record(db, SampleTable, record_sqn)
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
@router.get("/samples/", response_model=list[SampleTable])
|
|
552
|
+
def read_samples(
|
|
553
|
+
skip: int = Query(0),
|
|
554
|
+
limit: int = Query(1000),
|
|
555
|
+
db: sa_orm.Session = Depends(make_session),
|
|
556
|
+
) -> list[SampleTable]:
|
|
557
|
+
with managed_db_session(db):
|
|
558
|
+
return db_read_active_revision_models(db, SampleTable, skip, limit)
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
@router.put("/sample/{record_sqn}", response_model=SampleTable)
|
|
562
|
+
def update_sample(
|
|
563
|
+
record_sqn: int,
|
|
564
|
+
sample: Sample,
|
|
565
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
566
|
+
db: sa_orm.Session = Depends(make_session),
|
|
567
|
+
) -> SampleTable:
|
|
568
|
+
with managed_db_session(db):
|
|
569
|
+
return db_update_revision_model(db, SampleTable, sample, record_sqn, updated_at)
|
|
570
|
+
|
|
571
|
+
|
|
572
|
+
@router.delete("/sample/{record_sqn}", response_model=SampleTable)
|
|
573
|
+
def delete_sample(
|
|
574
|
+
record_sqn: int,
|
|
575
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
576
|
+
db: sa_orm.Session = Depends(make_session),
|
|
577
|
+
) -> SampleTable:
|
|
578
|
+
with managed_db_session(db):
|
|
579
|
+
return db_expire_revision_model(db, SampleTable, record_sqn, updated_at)
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
# Classifier
|
|
583
|
+
@router.post("/classifier/", response_model=ClassifierTable)
|
|
584
|
+
def create_classifier(
|
|
585
|
+
classifier: Classifier,
|
|
586
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
587
|
+
db: sa_orm.Session = Depends(make_session),
|
|
588
|
+
) -> ClassifierTable:
|
|
589
|
+
with managed_db_session(db):
|
|
590
|
+
return db_create_revision_model(db, ClassifierTable, classifier, created_at)
|
|
591
|
+
|
|
592
|
+
|
|
593
|
+
@router.post("/classifiers/", response_model=list[ClassifierTable])
|
|
594
|
+
def create_classifiers(
|
|
595
|
+
classifiers: list[Classifier],
|
|
596
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
597
|
+
db: sa_orm.Session = Depends(make_session),
|
|
598
|
+
) -> list[ClassifierTable]:
|
|
599
|
+
with managed_db_session(db):
|
|
600
|
+
return db_create_revision_models(db, ClassifierTable, classifiers, created_at)
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
@router.get("/classifier/{record_sqn}", response_model=ClassifierTable)
|
|
604
|
+
def read_classifier(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> ClassifierTable:
|
|
605
|
+
with managed_db_session(db):
|
|
606
|
+
return db_read_active_revision_model_of_record(db, ClassifierTable, record_sqn)
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
@router.get("/classifiers/", response_model=list[ClassifierTable])
|
|
610
|
+
def read_classifiers(
|
|
611
|
+
skip: int = Query(0),
|
|
612
|
+
limit: int = Query(1000),
|
|
613
|
+
db: sa_orm.Session = Depends(make_session),
|
|
614
|
+
) -> list[ClassifierTable]:
|
|
615
|
+
with managed_db_session(db):
|
|
616
|
+
return db_read_active_revision_models(db, ClassifierTable, skip, limit)
|
|
617
|
+
|
|
618
|
+
|
|
619
|
+
@router.put("/classifier/{record_sqn}", response_model=ClassifierTable)
|
|
620
|
+
def update_classifier(
|
|
621
|
+
record_sqn: int,
|
|
622
|
+
classifier: Classifier,
|
|
623
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
624
|
+
db: sa_orm.Session = Depends(make_session),
|
|
625
|
+
) -> ClassifierTable:
|
|
626
|
+
with managed_db_session(db):
|
|
627
|
+
return db_update_revision_model(db, ClassifierTable, classifier, record_sqn, updated_at)
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
@router.delete("/classifier/{record_sqn}", response_model=ClassifierTable)
|
|
631
|
+
def delete_classifier(
|
|
632
|
+
record_sqn: int,
|
|
633
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
634
|
+
db: sa_orm.Session = Depends(make_session),
|
|
635
|
+
) -> ClassifierTable:
|
|
636
|
+
with managed_db_session(db):
|
|
637
|
+
return db_expire_revision_model(db, ClassifierTable, record_sqn, updated_at)
|
|
638
|
+
|
|
639
|
+
|
|
640
|
+
# Annotation
|
|
641
|
+
@router.post("/annotation/", response_model=AnnotationTable)
|
|
642
|
+
def create_annotation(
|
|
643
|
+
annotation: Annotation,
|
|
644
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
645
|
+
db: sa_orm.Session = Depends(make_session),
|
|
646
|
+
) -> AnnotationTable:
|
|
647
|
+
with managed_db_session(db):
|
|
648
|
+
return db_create_revision_model(db, AnnotationTable, annotation, created_at)
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
@router.post("/annotations/", response_model=list[AnnotationTable])
|
|
652
|
+
def create_annotations(
|
|
653
|
+
annotations: list[Annotation],
|
|
654
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
655
|
+
db: sa_orm.Session = Depends(make_session),
|
|
656
|
+
) -> list[AnnotationTable]:
|
|
657
|
+
with managed_db_session(db):
|
|
658
|
+
return db_create_revision_models(db, AnnotationTable, annotations, created_at)
|
|
659
|
+
|
|
660
|
+
|
|
661
|
+
@router.get("/annotation/{record_sqn}", response_model=AnnotationTable)
|
|
662
|
+
def read_annotation(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> AnnotationTable:
|
|
663
|
+
with managed_db_session(db):
|
|
664
|
+
return db_read_active_revision_model_of_record(db, AnnotationTable, record_sqn)
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
@router.get("/annotations/", response_model=list[AnnotationTable])
|
|
668
|
+
def read_annotations(
|
|
669
|
+
skip: int = Query(0),
|
|
670
|
+
limit: int = Query(1000),
|
|
671
|
+
db: sa_orm.Session = Depends(make_session),
|
|
672
|
+
) -> list[AnnotationTable]:
|
|
673
|
+
with managed_db_session(db):
|
|
674
|
+
return db_read_active_revision_models(db, AnnotationTable, skip, limit)
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
@router.put("/annotation/{record_sqn}", response_model=AnnotationTable)
|
|
678
|
+
def update_annotation(
|
|
679
|
+
record_sqn: int,
|
|
680
|
+
annotation: Annotation,
|
|
681
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
682
|
+
db: sa_orm.Session = Depends(make_session),
|
|
683
|
+
) -> AnnotationTable:
|
|
684
|
+
with managed_db_session(db):
|
|
685
|
+
return db_update_revision_model(db, AnnotationTable, annotation, record_sqn, updated_at)
|
|
686
|
+
|
|
687
|
+
|
|
688
|
+
@router.delete("/annotation/{record_sqn}", response_model=AnnotationTable)
|
|
689
|
+
def delete_annotation(
|
|
690
|
+
record_sqn: int,
|
|
691
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
692
|
+
db: sa_orm.Session = Depends(make_session),
|
|
693
|
+
) -> AnnotationTable:
|
|
694
|
+
with managed_db_session(db):
|
|
695
|
+
return db_expire_revision_model(db, AnnotationTable, record_sqn, updated_at)
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
# Experiment
|
|
699
|
+
@router.post("/experiment/", response_model=ExperimentTable)
|
|
700
|
+
def create_experiment(
|
|
701
|
+
experiment: Experiment,
|
|
702
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
703
|
+
db: sa_orm.Session = Depends(make_session),
|
|
704
|
+
) -> ExperimentTable:
|
|
705
|
+
with managed_db_session(db):
|
|
706
|
+
return db_create_revision_model(db, ExperimentTable, experiment, created_at)
|
|
707
|
+
|
|
708
|
+
|
|
709
|
+
@router.post("/experiments/", response_model=list[ExperimentTable])
|
|
710
|
+
def create_experiments(
|
|
711
|
+
experiments: list[Experiment],
|
|
712
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
713
|
+
db: sa_orm.Session = Depends(make_session),
|
|
714
|
+
) -> list[ExperimentTable]:
|
|
715
|
+
with managed_db_session(db):
|
|
716
|
+
return db_create_revision_models(db, ExperimentTable, experiments, created_at)
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
@router.get("/experiment/{record_sqn}", response_model=ExperimentTable)
|
|
720
|
+
def read_experiment(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> ExperimentTable:
|
|
721
|
+
with managed_db_session(db):
|
|
722
|
+
return db_read_active_revision_model_of_record(db, ExperimentTable, record_sqn)
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
@router.get("/experiments/", response_model=list[ExperimentTable])
|
|
726
|
+
def read_experiments(
|
|
727
|
+
skip: int = Query(0),
|
|
728
|
+
limit: int = Query(1000),
|
|
729
|
+
db: sa_orm.Session = Depends(make_session),
|
|
730
|
+
) -> list[ExperimentTable]:
|
|
731
|
+
with managed_db_session(db):
|
|
732
|
+
return db_read_active_revision_models(db, ExperimentTable, skip, limit)
|
|
733
|
+
|
|
734
|
+
|
|
735
|
+
@router.put("/experiment/{record_sqn}", response_model=ExperimentTable)
|
|
736
|
+
def update_experiment(
|
|
737
|
+
record_sqn: int,
|
|
738
|
+
experiment: Experiment,
|
|
739
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
740
|
+
db: sa_orm.Session = Depends(make_session),
|
|
741
|
+
) -> ExperimentTable:
|
|
742
|
+
with managed_db_session(db):
|
|
743
|
+
return db_update_revision_model(db, ExperimentTable, experiment, record_sqn, updated_at)
|
|
744
|
+
|
|
745
|
+
|
|
746
|
+
@router.delete("/experiment/{record_sqn}", response_model=ExperimentTable)
|
|
747
|
+
def delete_experiment(
|
|
748
|
+
record_sqn: int,
|
|
749
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
750
|
+
db: sa_orm.Session = Depends(make_session),
|
|
751
|
+
) -> ExperimentTable:
|
|
752
|
+
with managed_db_session(db):
|
|
753
|
+
return db_expire_revision_model(db, ExperimentTable, record_sqn, updated_at)
|
|
754
|
+
|
|
755
|
+
|
|
756
|
+
# Training
|
|
757
|
+
@router.post("/training/", response_model=TrainingTable)
|
|
758
|
+
def create_training(
|
|
759
|
+
training: Training,
|
|
760
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
761
|
+
db: sa_orm.Session = Depends(make_session),
|
|
762
|
+
) -> TrainingTable:
|
|
763
|
+
with managed_db_session(db):
|
|
764
|
+
return db_create_revision_model(db, TrainingTable, training, created_at)
|
|
765
|
+
|
|
766
|
+
|
|
767
|
+
@router.post("/trainings/", response_model=list[TrainingTable])
|
|
768
|
+
def create_trainings(
|
|
769
|
+
trainings: list[Training],
|
|
770
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
771
|
+
db: sa_orm.Session = Depends(make_session),
|
|
772
|
+
) -> list[TrainingTable]:
|
|
773
|
+
with managed_db_session(db):
|
|
774
|
+
return db_create_revision_models(db, TrainingTable, trainings, created_at)
|
|
775
|
+
|
|
776
|
+
|
|
777
|
+
@router.get("/training/{record_sqn}", response_model=TrainingTable)
|
|
778
|
+
def read_training(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> TrainingTable:
|
|
779
|
+
with managed_db_session(db):
|
|
780
|
+
return db_read_active_revision_model_of_record(db, TrainingTable, record_sqn)
|
|
781
|
+
|
|
782
|
+
|
|
783
|
+
@router.get("/trainings/", response_model=list[TrainingTable])
|
|
784
|
+
def read_trainings(
|
|
785
|
+
skip: int = Query(0),
|
|
786
|
+
limit: int = Query(1000),
|
|
787
|
+
db: sa_orm.Session = Depends(make_session),
|
|
788
|
+
) -> list[TrainingTable]:
|
|
789
|
+
with managed_db_session(db):
|
|
790
|
+
return db_read_active_revision_models(db, TrainingTable, skip, limit)
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
@router.put("/training/{record_sqn}", response_model=TrainingTable)
|
|
794
|
+
def update_training(
|
|
795
|
+
record_sqn: int,
|
|
796
|
+
training: Training,
|
|
797
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
798
|
+
db: sa_orm.Session = Depends(make_session),
|
|
799
|
+
) -> TrainingTable:
|
|
800
|
+
with managed_db_session(db):
|
|
801
|
+
return db_update_revision_model(db, TrainingTable, training, record_sqn, updated_at)
|
|
802
|
+
|
|
803
|
+
|
|
804
|
+
@router.delete("/training/{record_sqn}", response_model=TrainingTable)
|
|
805
|
+
def delete_training(
|
|
806
|
+
record_sqn: int,
|
|
807
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
808
|
+
db: sa_orm.Session = Depends(make_session),
|
|
809
|
+
) -> TrainingTable:
|
|
810
|
+
with managed_db_session(db):
|
|
811
|
+
return db_expire_revision_model(db, TrainingTable, record_sqn, updated_at)
|
|
812
|
+
|
|
813
|
+
|
|
814
|
+
# Model Experiment Promotion
|
|
815
|
+
@router.post("/experiment_promotion/", response_model=ExperimentPromotionTable)
|
|
816
|
+
def create_experiment_promotion(
|
|
817
|
+
experiment_promotion: ExperimentPromotion,
|
|
818
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
819
|
+
db: sa_orm.Session = Depends(make_session),
|
|
820
|
+
) -> ExperimentPromotionTable:
|
|
821
|
+
with managed_db_session(db):
|
|
822
|
+
return db_create_revision_model(db, ExperimentPromotionTable, experiment_promotion, created_at)
|
|
823
|
+
|
|
824
|
+
|
|
825
|
+
@router.post("/experiment_promotions/", response_model=list[ExperimentPromotionTable])
|
|
826
|
+
def create_experiment_promotions(
|
|
827
|
+
experiment_promotions: list[ExperimentPromotion],
|
|
828
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
829
|
+
db: sa_orm.Session = Depends(make_session),
|
|
830
|
+
) -> list[ExperimentPromotionTable]:
|
|
831
|
+
with managed_db_session(db):
|
|
832
|
+
return db_create_revision_models(db, ExperimentPromotionTable, experiment_promotions, created_at)
|
|
833
|
+
|
|
834
|
+
|
|
835
|
+
@router.get("/experiment_promotion/{record_sqn}", response_model=ExperimentPromotionTable)
|
|
836
|
+
def read_experiment_promotion(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> ExperimentPromotionTable:
|
|
837
|
+
with managed_db_session(db):
|
|
838
|
+
return db_read_active_revision_model_of_record(db, ExperimentPromotionTable, record_sqn)
|
|
839
|
+
|
|
840
|
+
|
|
841
|
+
@router.get("/experiment_promotions/", response_model=list[ExperimentPromotionTable])
|
|
842
|
+
def read_experiment_promotions(
|
|
843
|
+
skip: int = Query(0),
|
|
844
|
+
limit: int = Query(1000),
|
|
845
|
+
db: sa_orm.Session = Depends(make_session),
|
|
846
|
+
) -> list[ExperimentPromotionTable]:
|
|
847
|
+
with managed_db_session(db):
|
|
848
|
+
return db_read_active_revision_models(db, ExperimentPromotionTable, skip, limit)
|
|
849
|
+
|
|
850
|
+
|
|
851
|
+
@router.put("/experiment_promotion/{record_sqn}", response_model=ExperimentPromotionTable)
|
|
852
|
+
def update_experiment_promotion(
|
|
853
|
+
record_sqn: int,
|
|
854
|
+
experiment_promotion: ExperimentPromotion,
|
|
855
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
856
|
+
db: sa_orm.Session = Depends(make_session),
|
|
857
|
+
) -> ExperimentPromotionTable:
|
|
858
|
+
with managed_db_session(db):
|
|
859
|
+
return db_update_revision_model(db, ExperimentPromotionTable, experiment_promotion, record_sqn, updated_at)
|
|
860
|
+
|
|
861
|
+
|
|
862
|
+
@router.delete("/experiment_promotion/{record_sqn}", response_model=ExperimentPromotionTable)
|
|
863
|
+
def delete_experiment_promotion(
|
|
864
|
+
record_sqn: int,
|
|
865
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
866
|
+
db: sa_orm.Session = Depends(make_session),
|
|
867
|
+
) -> ExperimentPromotionTable:
|
|
868
|
+
with managed_db_session(db):
|
|
869
|
+
return db_expire_revision_model(db, ExperimentPromotionTable, record_sqn, updated_at)
|
|
870
|
+
|
|
871
|
+
|
|
872
|
+
# Assessment
|
|
873
|
+
@router.post("/assessment/", response_model=AssessmentTable)
|
|
874
|
+
def create_assessment(
|
|
875
|
+
assessment: Assessment,
|
|
876
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
877
|
+
db: sa_orm.Session = Depends(make_session),
|
|
878
|
+
) -> AssessmentTable:
|
|
879
|
+
with managed_db_session(db):
|
|
880
|
+
return db_create_revision_model(db, AssessmentTable, assessment, created_at)
|
|
881
|
+
|
|
882
|
+
|
|
883
|
+
@router.post("/assessments/", response_model=list[AssessmentTable])
|
|
884
|
+
def create_assessments(
|
|
885
|
+
assessments: list[Assessment],
|
|
886
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
887
|
+
db: sa_orm.Session = Depends(make_session),
|
|
888
|
+
) -> list[AssessmentTable]:
|
|
889
|
+
with managed_db_session(db):
|
|
890
|
+
return db_create_revision_models(db, AssessmentTable, assessments, created_at)
|
|
891
|
+
|
|
892
|
+
|
|
893
|
+
@router.get("/assessment/{record_sqn}", response_model=AssessmentTable)
|
|
894
|
+
def read_assessment(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> AssessmentTable:
|
|
895
|
+
with managed_db_session(db):
|
|
896
|
+
return db_read_active_revision_model_of_record(db, AssessmentTable, record_sqn)
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
@router.get("/assessments/", response_model=list[AssessmentTable])
|
|
900
|
+
def read_assessments(
|
|
901
|
+
skip: int = Query(0),
|
|
902
|
+
limit: int = Query(1000),
|
|
903
|
+
db: sa_orm.Session = Depends(make_session),
|
|
904
|
+
) -> list[AssessmentTable]:
|
|
905
|
+
with managed_db_session(db):
|
|
906
|
+
return db_read_active_revision_models(db, AssessmentTable, skip, limit)
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
@router.put("/assessment/{record_sqn}", response_model=AssessmentTable)
|
|
910
|
+
def update_assessment(
|
|
911
|
+
record_sqn: int,
|
|
912
|
+
assessment: Assessment,
|
|
913
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
914
|
+
db: sa_orm.Session = Depends(make_session),
|
|
915
|
+
) -> AssessmentTable:
|
|
916
|
+
with managed_db_session(db):
|
|
917
|
+
return db_update_revision_model(db, AssessmentTable, assessment, record_sqn, updated_at)
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
@router.delete("/assessment/{record_sqn}", response_model=AssessmentTable)
|
|
921
|
+
def delete_assessment(
|
|
922
|
+
record_sqn: int,
|
|
923
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
924
|
+
db: sa_orm.Session = Depends(make_session),
|
|
925
|
+
) -> AssessmentTable:
|
|
926
|
+
with managed_db_session(db):
|
|
927
|
+
return db_expire_revision_model(db, AssessmentTable, record_sqn, updated_at)
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
# Evaluation
|
|
931
|
+
@router.post("/evaluation/", response_model=EvaluationTable)
|
|
932
|
+
def create_evaluation(
|
|
933
|
+
evaluation: Evaluation,
|
|
934
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
935
|
+
db: sa_orm.Session = Depends(make_session),
|
|
936
|
+
) -> EvaluationTable:
|
|
937
|
+
with managed_db_session(db):
|
|
938
|
+
return db_create_revision_model(db, EvaluationTable, evaluation, created_at)
|
|
939
|
+
|
|
940
|
+
|
|
941
|
+
@router.post("/evaluations/", response_model=list[EvaluationTable])
|
|
942
|
+
def create_evaluations(
|
|
943
|
+
evaluations: list[Evaluation],
|
|
944
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
945
|
+
db: sa_orm.Session = Depends(make_session),
|
|
946
|
+
) -> list[EvaluationTable]:
|
|
947
|
+
with managed_db_session(db):
|
|
948
|
+
return db_create_revision_models(db, EvaluationTable, evaluations, created_at)
|
|
949
|
+
|
|
950
|
+
|
|
951
|
+
@router.get("/evaluation/{record_sqn}", response_model=EvaluationTable)
|
|
952
|
+
def read_evaluation(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> EvaluationTable:
|
|
953
|
+
with managed_db_session(db):
|
|
954
|
+
return db_read_active_revision_model_of_record(db, EvaluationTable, record_sqn)
|
|
955
|
+
|
|
956
|
+
|
|
957
|
+
@router.get("/evaluations/", response_model=list[EvaluationTable])
|
|
958
|
+
def read_evaluations(
|
|
959
|
+
skip: int = Query(0),
|
|
960
|
+
limit: int = Query(1000),
|
|
961
|
+
db: sa_orm.Session = Depends(make_session),
|
|
962
|
+
) -> list[EvaluationTable]:
|
|
963
|
+
with managed_db_session(db):
|
|
964
|
+
return db_read_active_revision_models(db, EvaluationTable, skip, limit)
|
|
965
|
+
|
|
966
|
+
|
|
967
|
+
@router.put("/evaluation/{record_sqn}", response_model=EvaluationTable)
|
|
968
|
+
def update_evaluation(
|
|
969
|
+
record_sqn: int,
|
|
970
|
+
evaluation: Evaluation,
|
|
971
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
972
|
+
db: sa_orm.Session = Depends(make_session),
|
|
973
|
+
) -> EvaluationTable:
|
|
974
|
+
with managed_db_session(db):
|
|
975
|
+
return db_update_revision_model(db, EvaluationTable, evaluation, record_sqn, updated_at)
|
|
976
|
+
|
|
977
|
+
|
|
978
|
+
@router.delete("/evaluation/{record_sqn}", response_model=EvaluationTable)
|
|
979
|
+
def delete_evaluation(
|
|
980
|
+
record_sqn: int,
|
|
981
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
982
|
+
db: sa_orm.Session = Depends(make_session),
|
|
983
|
+
) -> EvaluationTable:
|
|
984
|
+
with managed_db_session(db):
|
|
985
|
+
return db_expire_revision_model(db, EvaluationTable, record_sqn, updated_at)
|
|
986
|
+
|
|
987
|
+
|
|
988
|
+
# Model Assessment Promotion
|
|
989
|
+
@router.post("/assessment_promotion/", response_model=AssessmentPromotionTable)
|
|
990
|
+
def create_assessment_promotion(
|
|
991
|
+
assessment_promotion: AssessmentPromotion,
|
|
992
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
993
|
+
db: sa_orm.Session = Depends(make_session),
|
|
994
|
+
) -> AssessmentPromotionTable:
|
|
995
|
+
with managed_db_session(db):
|
|
996
|
+
return db_create_revision_model(db, AssessmentPromotionTable, assessment_promotion, created_at)
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
@router.post("/assessment_promotions/", response_model=list[AssessmentPromotionTable])
|
|
1000
|
+
def create_assessment_promotions(
|
|
1001
|
+
assessment_promotions: list[AssessmentPromotion],
|
|
1002
|
+
created_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
1003
|
+
db: sa_orm.Session = Depends(make_session),
|
|
1004
|
+
) -> list[AssessmentPromotionTable]:
|
|
1005
|
+
with managed_db_session(db):
|
|
1006
|
+
return db_create_revision_models(db, AssessmentPromotionTable, assessment_promotions, created_at)
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
@router.get("/assessment_promotion/{record_sqn}", response_model=AssessmentPromotionTable)
|
|
1010
|
+
def read_assessment_promotion(record_sqn: int, db: sa_orm.Session = Depends(make_session)) -> AssessmentPromotionTable:
|
|
1011
|
+
with managed_db_session(db):
|
|
1012
|
+
return db_read_active_revision_model_of_record(db, AssessmentPromotionTable, record_sqn)
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
@router.get("/assessment_promotions/", response_model=list[AssessmentPromotionTable])
|
|
1016
|
+
def read_assessment_promotions(
|
|
1017
|
+
skip: int = Query(0),
|
|
1018
|
+
limit: int = Query(1000),
|
|
1019
|
+
db: sa_orm.Session = Depends(make_session),
|
|
1020
|
+
) -> list[AssessmentPromotionTable]:
|
|
1021
|
+
with managed_db_session(db):
|
|
1022
|
+
return db_read_active_revision_models(db, AssessmentPromotionTable, skip, limit)
|
|
1023
|
+
|
|
1024
|
+
|
|
1025
|
+
@router.put("/assessment_promotion/{record_sqn}", response_model=AssessmentPromotionTable)
|
|
1026
|
+
def update_assessment_promotion(
|
|
1027
|
+
record_sqn: int,
|
|
1028
|
+
assessment_promotion: AssessmentPromotion,
|
|
1029
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
1030
|
+
db: sa_orm.Session = Depends(make_session),
|
|
1031
|
+
) -> AssessmentPromotionTable:
|
|
1032
|
+
with managed_db_session(db):
|
|
1033
|
+
return db_update_revision_model(db, AssessmentPromotionTable, assessment_promotion, record_sqn, updated_at)
|
|
1034
|
+
|
|
1035
|
+
|
|
1036
|
+
@router.delete("/assessment_promotion/{record_sqn}", response_model=AssessmentPromotionTable)
|
|
1037
|
+
def delete_assessment_promotion(
|
|
1038
|
+
record_sqn: int,
|
|
1039
|
+
updated_at: datetime.datetime = Query(default_factory=dt_utc_now),
|
|
1040
|
+
db: sa_orm.Session = Depends(make_session),
|
|
1041
|
+
) -> AssessmentPromotionTable:
|
|
1042
|
+
with managed_db_session(db):
|
|
1043
|
+
return db_expire_revision_model(db, AssessmentPromotionTable, record_sqn, updated_at)
|