-
Notifications
You must be signed in to change notification settings - Fork 63
/
resources.py
102 lines (88 loc) · 2.68 KB
/
resources.py
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
101
102
from this import d
from maggma.api.query_operator import PaginationQuery, SortQuery, SparseFieldsQuery
from maggma.api.resource import ReadOnlyResource
from emmet.api.routes.materials.query_operators import (
ChemsysQuery,
ElementsQuery,
FormulaQuery,
)
from emmet.api.routes.tasks.hint_scheme import TasksHintScheme
from emmet.api.routes.tasks.query_operators import (
DeprecationQuery,
MultipleTaskIDsQuery,
TrajectoryQuery,
EntryQuery,
)
from emmet.api.core.global_header import GlobalHeaderProcessor
from emmet.api.core.settings import MAPISettings
from emmet.core.tasks import DeprecationDoc, TaskDoc, TrajectoryDoc, EntryDoc
timeout = MAPISettings().TIMEOUT
def task_resource(task_store):
resource = ReadOnlyResource(
task_store,
TaskDoc,
query_operators=[
FormulaQuery(),
ChemsysQuery(),
ElementsQuery(),
MultipleTaskIDsQuery(),
SortQuery(),
PaginationQuery(),
SparseFieldsQuery(
TaskDoc, default_fields=["task_id", "formula_pretty", "last_updated"],
),
],
header_processor=GlobalHeaderProcessor(),
hint_scheme=TasksHintScheme(),
tags=["Tasks"],
timeout=timeout,
disable_validation=True,
)
return resource
def task_deprecation_resource(materials_store):
resource = ReadOnlyResource(
materials_store,
DeprecationDoc,
query_operators=[DeprecationQuery(), PaginationQuery()],
tags=["Tasks"],
enable_get_by_key=False,
enable_default_search=True,
sub_path="/deprecation/",
header_processor=GlobalHeaderProcessor(),
timeout=timeout,
)
return resource
def trajectory_resource(task_store):
resource = ReadOnlyResource(
task_store,
TrajectoryDoc,
query_operators=[TrajectoryQuery(), PaginationQuery()],
key_fields=["task_id", "calcs_reversed"],
tags=["Tasks"],
sub_path="/trajectory/",
header_processor=GlobalHeaderProcessor(),
timeout=timeout,
disable_validation=True,
)
return resource
def entries_resource(task_store):
resource = ReadOnlyResource(
task_store,
EntryDoc,
query_operators=[EntryQuery(), PaginationQuery()],
key_fields=[
"task_id",
"input",
"output",
"run_type",
"task_type",
"completed_at",
"last_updated",
],
tags=["Tasks"],
sub_path="/entries/",
header_processor=GlobalHeaderProcessor(),
timeout=timeout,
disable_validation=True,
)
return resource