mat3ra-esse 2025.8.14.post0__py3-none-any.whl → 2025.10.8.post0__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.

Potentially problematic release.


This version of mat3ra-esse might be problematic. Click here for more details.

Files changed (136) hide show
  1. mat3ra/esse/data/examples.py +1 -1
  2. mat3ra/esse/data/schemas.py +1 -1
  3. mat3ra/esse/models/core/abstract/_2d_data.py +2 -2
  4. mat3ra/esse/models/core/abstract/_2d_plot.py +2 -6
  5. mat3ra/esse/models/core/primitive/_1d_data_series.py +3 -3
  6. mat3ra/esse/models/core/primitive/axis_3d_names_enum.py +13 -0
  7. mat3ra/esse/models/core/reference/__init__.py +8 -8
  8. mat3ra/esse/models/core/reference/exabyte.py +2 -8
  9. mat3ra/esse/models/core/reference/experiment/__init__.py +2 -2
  10. mat3ra/esse/models/core/reusable/coordinate_conditions/__init__.py +1 -78
  11. mat3ra/esse/models/core/reusable/coordinate_conditions/index.py +80 -0
  12. mat3ra/esse/models/core/reusable/hubbard_parameters.py +48 -0
  13. mat3ra/esse/models/core/reusable/kpoint.py +16 -0
  14. mat3ra/esse/models/core/reusable/repetition.py +14 -0
  15. mat3ra/esse/models/definitions/material.py +13 -0
  16. mat3ra/esse/models/element.py +10 -8
  17. mat3ra/esse/models/job/__init__.py +62 -62
  18. mat3ra/esse/models/material/__init__.py +12 -12
  19. mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +80 -80
  20. mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +80 -80
  21. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +35 -35
  22. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +80 -80
  23. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +53 -53
  24. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +53 -53
  25. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +29 -29
  26. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +32 -32
  27. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +12 -12
  28. mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +12 -12
  29. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +52 -52
  30. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +32 -32
  31. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +32 -32
  32. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +32 -32
  33. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +1151 -0
  34. mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +17 -17
  35. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +8 -8
  36. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +12 -12
  37. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +12 -12
  38. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +8 -8
  39. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +12 -12
  40. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +8 -8
  41. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +8 -8
  42. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +8 -8
  43. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +12 -12
  44. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +12 -12
  45. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +12 -12
  46. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +8 -8
  47. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +52 -52
  48. mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +12 -12
  49. mat3ra/esse/models/methods_directory/physical/psp/__init__.py +2 -2
  50. mat3ra/esse/models/methods_directory/physical/psp/file.py +2 -2
  51. mat3ra/esse/models/methods_directory/physical/psp/file_data_item.py +2 -2
  52. mat3ra/esse/models/properties_directory/derived_properties.py +6 -6
  53. mat3ra/esse/models/properties_directory/elemental/atomic_radius.py +1 -1
  54. mat3ra/esse/models/properties_directory/elemental/electronegativity.py +1 -2
  55. mat3ra/esse/models/properties_directory/elemental/ionization_potential.py +3 -4
  56. mat3ra/esse/models/properties_directory/jupyter_notebook_endpoint.py +20 -0
  57. mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +4 -8
  58. mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +2 -2
  59. mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +5 -9
  60. mat3ra/esse/models/properties_directory/non_scalar/charge_density_profile.py +4 -8
  61. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +5 -8
  62. mat3ra/esse/models/properties_directory/non_scalar/dielectric_tensor.py +2 -2
  63. mat3ra/esse/models/properties_directory/non_scalar/file_content.py +2 -2
  64. mat3ra/esse/models/properties_directory/non_scalar/final_structure.py +22 -0
  65. mat3ra/esse/models/properties_directory/non_scalar/hubbard_u.py +4 -4
  66. mat3ra/esse/models/properties_directory/non_scalar/hubbard_v.py +3 -4
  67. mat3ra/esse/models/properties_directory/non_scalar/hubbard_v_nn.py +3 -4
  68. mat3ra/esse/models/properties_directory/non_scalar/is_relaxed.py +22 -0
  69. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +10 -14
  70. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +10 -14
  71. mat3ra/esse/models/properties_directory/non_scalar/potential_profile.py +8 -12
  72. mat3ra/esse/models/properties_directory/non_scalar/reaction_energy_profile.py +8 -12
  73. mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +5 -7
  74. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +64 -51
  75. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +10 -14
  76. mat3ra/esse/models/properties_directory/non_scalar/workflow.py +2234 -0
  77. mat3ra/esse/models/properties_directory/reusable/hubbard_parameters.py +48 -0
  78. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +1 -1
  79. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +1 -1
  80. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +1 -1
  81. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +3 -3
  82. mat3ra/esse/models/properties_directory/scalar/pressure.py +3 -4
  83. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +3 -3
  84. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +3 -3
  85. mat3ra/esse/models/properties_directory/scalar/total_energy.py +3 -3
  86. mat3ra/esse/models/properties_directory/scalar/total_force.py +3 -4
  87. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +3 -3
  88. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +3 -3
  89. mat3ra/esse/models/properties_directory/structural/atomic_forces.py +5 -5
  90. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +3 -3
  91. mat3ra/esse/models/properties_directory/structural/basis/boundary_conditions.py +30 -0
  92. mat3ra/esse/models/properties_directory/structural/basis/predicted_properties.py +82 -0
  93. mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +23 -1
  94. mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +5 -5
  95. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +5 -5
  96. mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +1 -1
  97. mat3ra/esse/models/properties_directory/structural/patterns/ring.py +1 -1
  98. mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +1 -1
  99. mat3ra/esse/models/properties_directory/workflow/convergence/electronic.py +4 -4
  100. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +6 -6
  101. mat3ra/esse/models/property/base.py +1492 -14
  102. mat3ra/esse/models/property/holder.py +3568 -0
  103. mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py +31 -0
  104. mat3ra/esse/models/property/meta_holder.py +140 -0
  105. mat3ra/esse/models/property/proto_holder.py +86 -0
  106. mat3ra/esse/models/property/raw.py +27 -11
  107. mat3ra/esse/models/property/source.py +24 -1
  108. mat3ra/esse/models/workflow/__init__.py +54 -54
  109. mat3ra/esse/models/workflow/base_flow.py +4 -4
  110. mat3ra/esse/models/workflow/subworkflow/__init__.py +7 -7
  111. mat3ra/esse/models/workflow/subworkflow/unit.py +10 -10
  112. mat3ra/esse/models/workflow/unit/__init__.py +12 -12
  113. mat3ra/esse/models/workflow/unit/io/__init__.py +4 -4
  114. mat3ra/esse/models/workflow/unit/io/db.py +2 -2
  115. mat3ra/esse/models/workflow/unit/io/object_storage.py +1 -1
  116. {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/METADATA +1 -1
  117. {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/RECORD +122 -118
  118. mat3ra/esse/models/property/meta.py +0 -200
  119. mat3ra/esse/models/software_directory/ml/exabyteml.py +0 -28
  120. mat3ra/esse/models/software_directory/ml/unit/execution/__init__.py +0 -879
  121. mat3ra/esse/models/software_directory/ml/unit/execution/evaluate/__init__.py +0 -3
  122. mat3ra/esse/models/software_directory/ml/unit/execution/evaluate/cross_validate.py +0 -293
  123. mat3ra/esse/models/software_directory/ml/unit/execution/initialize.py +0 -293
  124. mat3ra/esse/models/software_directory/ml/unit/execution/score.py +0 -286
  125. mat3ra/esse/models/software_directory/ml/unit/execution/train.py +0 -297
  126. mat3ra/esse/models/software_directory/ml/unit/processing/__init__.py +0 -276
  127. mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/__init__.py +0 -167
  128. mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/manipulation.py +0 -144
  129. mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/scale_and_reduce.py +0 -163
  130. mat3ra/esse/models/software_directory/ml/unit/processing/feature_selection/__init__.py +0 -148
  131. mat3ra/esse/models/software_directory/ml/unit/processing/feature_selection/filter_based.py +0 -144
  132. /mat3ra/esse/models/{software_directory/ml → properties_directory/reusable}/__init__.py +0 -0
  133. /mat3ra/esse/models/{software_directory/ml/unit → property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e}/__init__.py +0 -0
  134. {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/WHEEL +0 -0
  135. {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/licenses/LICENSE.md +0 -0
  136. {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,3568 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: property/holder.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import Any, Dict, List, Literal, Optional, Union
9
+
10
+ from pydantic import BaseModel, ConfigDict, Field, RootModel, conint, constr
11
+
12
+
13
+ class Name(Enum):
14
+ valence_band_offset = "valence_band_offset"
15
+
16
+
17
+ class Units(Enum):
18
+ kJ_mol = "kJ/mol"
19
+ eV = "eV"
20
+ J_mol = "J/mol"
21
+ hartree = "hartree"
22
+ cm_1 = "cm-1"
23
+ Ry = "Ry"
24
+ eV_atom = "eV/atom"
25
+
26
+
27
+ class Units192(Enum):
28
+ eV_A_2 = "eV/A^2"
29
+
30
+
31
+ class ValenceBandOffsetPropertySchema(BaseModel):
32
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
33
+ units: Union[Units, Units192]
34
+ value: float
35
+
36
+
37
+ class Name476(Enum):
38
+ zero_point_energy = "zero_point_energy"
39
+
40
+
41
+ class Units193(Enum):
42
+ kJ_mol = "kJ/mol"
43
+ eV = "eV"
44
+ J_mol = "J/mol"
45
+ hartree = "hartree"
46
+ cm_1 = "cm-1"
47
+ Ry = "Ry"
48
+ eV_atom = "eV/atom"
49
+
50
+
51
+ class Units194(Enum):
52
+ eV_A_2 = "eV/A^2"
53
+
54
+
55
+ class ZeroPointEnergyPropertySchema(BaseModel):
56
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
57
+ units: Union[Units193, Units194]
58
+ value: float
59
+
60
+
61
+ class Name477(Enum):
62
+ pressure = "pressure"
63
+
64
+
65
+ class Units195(Enum):
66
+ kbar = "kbar"
67
+ pa = "pa"
68
+
69
+
70
+ class PressurePropertySchema(BaseModel):
71
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
72
+ units: Units195
73
+ value: float
74
+
75
+
76
+ class Name478(Enum):
77
+ reaction_energy_barrier = "reaction_energy_barrier"
78
+
79
+
80
+ class Units196(Enum):
81
+ kJ_mol = "kJ/mol"
82
+ eV = "eV"
83
+ J_mol = "J/mol"
84
+ hartree = "hartree"
85
+ cm_1 = "cm-1"
86
+ Ry = "Ry"
87
+ eV_atom = "eV/atom"
88
+
89
+
90
+ class Units197(Enum):
91
+ eV_A_2 = "eV/A^2"
92
+
93
+
94
+ class ReactionEnergyBarrierPropertySchema(BaseModel):
95
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
96
+ units: Union[Units196, Units197]
97
+ value: float
98
+
99
+
100
+ class Name479(Enum):
101
+ surface_energy = "surface_energy"
102
+
103
+
104
+ class Units198(Enum):
105
+ kJ_mol = "kJ/mol"
106
+ eV = "eV"
107
+ J_mol = "J/mol"
108
+ hartree = "hartree"
109
+ cm_1 = "cm-1"
110
+ Ry = "Ry"
111
+ eV_atom = "eV/atom"
112
+
113
+
114
+ class Units199(Enum):
115
+ eV_A_2 = "eV/A^2"
116
+
117
+
118
+ class SurfaceEnergyPropertySchema(BaseModel):
119
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
120
+ units: Union[Units198, Units199]
121
+ value: float
122
+
123
+
124
+ class Name480(Enum):
125
+ total_energy = "total_energy"
126
+
127
+
128
+ class Units200(Enum):
129
+ kJ_mol = "kJ/mol"
130
+ eV = "eV"
131
+ J_mol = "J/mol"
132
+ hartree = "hartree"
133
+ cm_1 = "cm-1"
134
+ Ry = "Ry"
135
+ eV_atom = "eV/atom"
136
+
137
+
138
+ class Units201(Enum):
139
+ eV_A_2 = "eV/A^2"
140
+
141
+
142
+ class TotalEnergyPropertySchema(BaseModel):
143
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
144
+ units: Union[Units200, Units201]
145
+ value: float
146
+
147
+
148
+ class Name481(Enum):
149
+ total_force = "total_force"
150
+
151
+
152
+ class Units202(Enum):
153
+ eV_bohr = "eV/bohr"
154
+ eV_angstrom = "eV/angstrom"
155
+ Ry_a_u_ = "Ry/a.u."
156
+ newton = "newton"
157
+ kg_m_s_2 = "kg*m/s^2"
158
+ eV_a_u_ = "eV/a.u."
159
+
160
+
161
+ class TotalForcesPropertySchema(BaseModel):
162
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
163
+ units: Units202
164
+ value: float
165
+
166
+
167
+ class Name482(Enum):
168
+ fermi_energy = "fermi_energy"
169
+
170
+
171
+ class Units203(Enum):
172
+ kJ_mol = "kJ/mol"
173
+ eV = "eV"
174
+ J_mol = "J/mol"
175
+ hartree = "hartree"
176
+ cm_1 = "cm-1"
177
+ Ry = "Ry"
178
+ eV_atom = "eV/atom"
179
+
180
+
181
+ class Units204(Enum):
182
+ eV_A_2 = "eV/A^2"
183
+
184
+
185
+ class FermiEnergyPropertySchema(BaseModel):
186
+ name: Literal["7#-datamodel-code-generator-#-object-#-special-#"]
187
+ units: Union[Units203, Units204]
188
+ value: float
189
+
190
+
191
+ class Name483(Enum):
192
+ ionization_potential = "ionization_potential"
193
+
194
+
195
+ class Units205(Enum):
196
+ kJ_mol = "kJ/mol"
197
+ eV = "eV"
198
+ J_mol = "J/mol"
199
+ hartree = "hartree"
200
+ cm_1 = "cm-1"
201
+ Ry = "Ry"
202
+ eV_atom = "eV/atom"
203
+
204
+
205
+ class Units206(Enum):
206
+ eV_A_2 = "eV/A^2"
207
+
208
+
209
+ class IonizationPotentialScalarPropertySchema(BaseModel):
210
+ name: Literal["8#-datamodel-code-generator-#-object-#-special-#"]
211
+ units: Union[Units205, Units206]
212
+ value: float
213
+
214
+
215
+ class ArrayOf3NumberElementsSchema(RootModel[List[float]]):
216
+ root: List[float] = Field(..., title="array of 3 number elements schema")
217
+
218
+
219
+ class Name484(Enum):
220
+ stress_tensor = "stress_tensor"
221
+
222
+
223
+ class Units207(Enum):
224
+ kbar = "kbar"
225
+ pa = "pa"
226
+
227
+
228
+ class StressTensorPropertySchema(BaseModel):
229
+ value: List[ArrayOf3NumberElementsSchema] = Field(..., max_length=3, min_length=3, title="matrix 3x3 schema")
230
+ name: Literal["9#-datamodel-code-generator-#-object-#-special-#"]
231
+ units: Units207
232
+
233
+
234
+ class Name485(Enum):
235
+ band_gaps = "band_gaps"
236
+
237
+
238
+ class Type(Enum):
239
+ direct = "direct"
240
+ indirect = "indirect"
241
+
242
+
243
+ class Units208(Enum):
244
+ kJ_mol = "kJ/mol"
245
+ eV = "eV"
246
+ J_mol = "J/mol"
247
+ hartree = "hartree"
248
+ cm_1 = "cm-1"
249
+ Ry = "Ry"
250
+ eV_atom = "eV/atom"
251
+
252
+
253
+ class BandGapSchema(BaseModel):
254
+ kpointConduction: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
255
+ """
256
+ A k-point is a point in reciprocal space of a crystal.
257
+ """
258
+ kpointValence: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
259
+ """
260
+ A k-point is a point in reciprocal space of a crystal.
261
+ """
262
+ eigenvalueConduction: Optional[float] = None
263
+ """
264
+ eigenvalue at k-point in conduction band
265
+ """
266
+ eigenvalueValence: Optional[float] = None
267
+ """
268
+ eigenvalue at k-point in valence band
269
+ """
270
+ spin: Optional[float] = None
271
+ type: Type
272
+ units: Optional[Units208] = None
273
+ value: float
274
+
275
+
276
+ class Eigenvalue(BaseModel):
277
+ spin: Optional[float] = None
278
+ energies: Optional[List] = None
279
+ occupations: Optional[List] = None
280
+
281
+
282
+ class Eigenvalue2(BaseModel):
283
+ kpoint: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
284
+ """
285
+ A k-point is a point in reciprocal space of a crystal.
286
+ """
287
+ weight: Optional[float] = None
288
+ eigenvalues: Optional[List[Eigenvalue]] = None
289
+
290
+
291
+ class BandGapsPropertySchema(BaseModel):
292
+ name: Literal["10#-datamodel-code-generator-#-object-#-special-#"]
293
+ values: List[BandGapSchema]
294
+ eigenvalues: Optional[List[Eigenvalue2]] = None
295
+
296
+
297
+ class Label(Enum):
298
+ kpoints = "kpoints"
299
+
300
+
301
+ class Units209(Enum):
302
+ crystal = "crystal"
303
+ cartesian = "cartesian"
304
+
305
+
306
+ class AxisSchema(BaseModel):
307
+ label: Label
308
+ """
309
+ label of an axis object
310
+ """
311
+ units: Optional[Units209] = "crystal"
312
+ """
313
+ units for an axis
314
+ """
315
+
316
+
317
+ class Label9(Enum):
318
+ energy = "energy"
319
+
320
+
321
+ class Units210(Enum):
322
+ kJ_mol = "kJ/mol"
323
+ eV = "eV"
324
+ J_mol = "J/mol"
325
+ hartree = "hartree"
326
+ cm_1 = "cm-1"
327
+ Ry = "Ry"
328
+ eV_atom = "eV/atom"
329
+
330
+
331
+ class AxisSchema12(BaseModel):
332
+ label: Label9
333
+ """
334
+ label of an axis object
335
+ """
336
+ units: Optional[Units210] = None
337
+ """
338
+ units for an axis
339
+ """
340
+
341
+
342
+ class Name486(Enum):
343
+ band_structure = "band_structure"
344
+
345
+
346
+ class SpinEnum(Enum):
347
+ number_0_5 = 0.5
348
+ number__0_5 = -0.5
349
+
350
+
351
+ class BandStructurePropertySchema(BaseModel):
352
+ xAxis: AxisSchema = Field(..., title="axis schema")
353
+ yAxis: AxisSchema12 = Field(..., title="axis schema")
354
+ name: Literal["11#-datamodel-code-generator-#-object-#-special-#"]
355
+ spin: List[SpinEnum]
356
+ """
357
+ spin of each band
358
+ """
359
+ xDataArray: List[Union[float, List[float]]]
360
+ """
361
+ array containing values of x Axis
362
+ """
363
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
364
+
365
+
366
+ class Label10(Enum):
367
+ qpoints = "qpoints"
368
+
369
+
370
+ class Units211(Enum):
371
+ crystal = "crystal"
372
+ cartesian = "cartesian"
373
+
374
+
375
+ class AxisSchema13(BaseModel):
376
+ label: Label10
377
+ """
378
+ label of an axis object
379
+ """
380
+ units: Optional[Units211] = "crystal"
381
+ """
382
+ units for an axis
383
+ """
384
+
385
+
386
+ class Label11(Enum):
387
+ frequency = "frequency"
388
+
389
+
390
+ class Units212(Enum):
391
+ cm_1 = "cm-1"
392
+ THz = "THz"
393
+ meV = "meV"
394
+
395
+
396
+ class AxisSchema14(BaseModel):
397
+ label: Label11
398
+ """
399
+ label of an axis object
400
+ """
401
+ units: Optional[Units212] = None
402
+ """
403
+ units for an axis
404
+ """
405
+
406
+
407
+ class Name487(Enum):
408
+ phonon_dispersions = "phonon_dispersions"
409
+
410
+
411
+ class PhononBandStructurePropertySchema(BaseModel):
412
+ xAxis: AxisSchema13 = Field(..., title="axis schema")
413
+ yAxis: AxisSchema14 = Field(..., title="axis schema")
414
+ name: Literal["12#-datamodel-code-generator-#-object-#-special-#"]
415
+ xDataArray: List[Union[float, List[float]]]
416
+ """
417
+ array containing values of x Axis
418
+ """
419
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
420
+
421
+
422
+ class Name488(Enum):
423
+ temperature_entropy = "temperature_entropy"
424
+
425
+
426
+ class ScalarSchema(BaseModel):
427
+ name: Optional[Name488] = None
428
+ value: float
429
+
430
+
431
+ class Name489(Enum):
432
+ harris_foulkes = "harris_foulkes"
433
+
434
+
435
+ class ScalarSchema58(BaseModel):
436
+ name: Optional[Name489] = None
437
+ value: float
438
+
439
+
440
+ class Name490(Enum):
441
+ smearing = "smearing"
442
+
443
+
444
+ class ScalarSchema59(BaseModel):
445
+ name: Optional[Name490] = None
446
+ value: float
447
+
448
+
449
+ class Name491(Enum):
450
+ one_electron = "one_electron"
451
+
452
+
453
+ class ScalarSchema60(BaseModel):
454
+ name: Optional[Name491] = None
455
+ value: float
456
+
457
+
458
+ class Name492(Enum):
459
+ hartree = "hartree"
460
+
461
+
462
+ class ScalarSchema61(BaseModel):
463
+ name: Optional[Name492] = None
464
+ value: float
465
+
466
+
467
+ class Name493(Enum):
468
+ exchange = "exchange"
469
+
470
+
471
+ class ScalarSchema62(BaseModel):
472
+ name: Optional[Name493] = None
473
+ value: float
474
+
475
+
476
+ class Name494(Enum):
477
+ exchange_correlation = "exchange_correlation"
478
+
479
+
480
+ class ScalarSchema63(BaseModel):
481
+ name: Optional[Name494] = None
482
+ value: float
483
+
484
+
485
+ class Name495(Enum):
486
+ ewald = "ewald"
487
+
488
+
489
+ class ScalarSchema64(BaseModel):
490
+ name: Optional[Name495] = None
491
+ value: float
492
+
493
+
494
+ class Name496(Enum):
495
+ alphaZ = "alphaZ"
496
+
497
+
498
+ class ScalarSchema65(BaseModel):
499
+ name: Optional[Name496] = None
500
+ value: float
501
+
502
+
503
+ class Name497(Enum):
504
+ atomic_energy = "atomic_energy"
505
+
506
+
507
+ class ScalarSchema66(BaseModel):
508
+ name: Optional[Name497] = None
509
+ value: float
510
+
511
+
512
+ class Name498(Enum):
513
+ eigenvalues = "eigenvalues"
514
+
515
+
516
+ class ScalarSchema67(BaseModel):
517
+ name: Optional[Name498] = None
518
+ value: float
519
+
520
+
521
+ class Name499(Enum):
522
+ PAW_double_counting_correction_2 = "PAW_double-counting_correction_2"
523
+
524
+
525
+ class ScalarSchema68(BaseModel):
526
+ name: Optional[Name499] = None
527
+ value: float
528
+
529
+
530
+ class Name500(Enum):
531
+ PAW_double_counting_correction_3 = "PAW_double-counting_correction_3"
532
+
533
+
534
+ class ScalarSchema69(BaseModel):
535
+ name: Optional[Name500] = None
536
+ value: float
537
+
538
+
539
+ class Name501(Enum):
540
+ hartree_fock = "hartree_fock"
541
+
542
+
543
+ class ScalarSchema70(BaseModel):
544
+ name: Optional[Name501] = None
545
+ value: float
546
+
547
+
548
+ class Name502(Enum):
549
+ total_energy_contributions = "total_energy_contributions"
550
+
551
+
552
+ class Units213(Enum):
553
+ kJ_mol = "kJ/mol"
554
+ eV = "eV"
555
+ J_mol = "J/mol"
556
+ hartree = "hartree"
557
+ cm_1 = "cm-1"
558
+ Ry = "Ry"
559
+ eV_atom = "eV/atom"
560
+
561
+
562
+ class TotalEnergyContributionsPropertySchema(BaseModel):
563
+ temperatureEntropy: Optional[ScalarSchema] = Field(None, title="scalar schema")
564
+ """
565
+ product of temperature and configurational entropy
566
+ """
567
+ harris_foulkes: Optional[ScalarSchema58] = Field(None, title="scalar schema")
568
+ """
569
+ non self-consitent energy based on an input charge density
570
+ """
571
+ smearing: Optional[ScalarSchema59] = Field(None, title="scalar schema")
572
+ """
573
+ smearing energy
574
+ """
575
+ one_electron: Optional[ScalarSchema60] = Field(None, title="scalar schema")
576
+ """
577
+ kinetic + pseudopotential energy
578
+ """
579
+ hartree: Optional[ScalarSchema61] = Field(None, title="scalar schema")
580
+ """
581
+ energy due to coulomb potential
582
+ """
583
+ exchange: Optional[ScalarSchema62] = Field(None, title="scalar schema")
584
+ """
585
+ exchange energy
586
+ """
587
+ exchange_correlation: Optional[ScalarSchema63] = Field(None, title="scalar schema")
588
+ """
589
+ exchange and correlation energy per particle
590
+ """
591
+ ewald: Optional[ScalarSchema64] = Field(None, title="scalar schema")
592
+ """
593
+ summation of interaction energies at long length scales due to coloumbic interactions
594
+ """
595
+ alphaZ: Optional[ScalarSchema65] = Field(None, title="scalar schema")
596
+ """
597
+ divergent electrostatic ion interaction in compensating electron gas
598
+ """
599
+ atomicEnergy: Optional[ScalarSchema66] = Field(None, title="scalar schema")
600
+ """
601
+ kinetic energy of wavefunctions in the atomic limit
602
+ """
603
+ eigenvalues: Optional[ScalarSchema67] = Field(None, title="scalar schema")
604
+ """
605
+ sum of one electron energies of kinetic, electrostatic, and exchange correlation
606
+ """
607
+ PAWDoubleCounting2: Optional[ScalarSchema68] = Field(None, title="scalar schema")
608
+ """
609
+ double counting correction 2
610
+ """
611
+ PAWDoubleCounting3: Optional[ScalarSchema69] = Field(None, title="scalar schema")
612
+ """
613
+ double counting correction 3
614
+ """
615
+ hartreeFock: Optional[ScalarSchema70] = Field(None, title="scalar schema")
616
+ """
617
+ hartree-fock contribution
618
+ """
619
+ name: Literal["13#-datamodel-code-generator-#-object-#-special-#"]
620
+ units: Optional[Units213] = None
621
+
622
+
623
+ class Units214(Enum):
624
+ cm_1 = "cm-1"
625
+ THz = "THz"
626
+ meV = "meV"
627
+
628
+
629
+ class AxisSchema15(BaseModel):
630
+ label: Label11
631
+ """
632
+ label of an axis object
633
+ """
634
+ units: Optional[Units214] = None
635
+ """
636
+ units for an axis
637
+ """
638
+
639
+
640
+ class Label13(Enum):
641
+ Phonon_DOS = "Phonon DOS"
642
+
643
+
644
+ class Units215(Enum):
645
+ states_cm_1 = "states/cm-1"
646
+ states_THz = "states/THz"
647
+ states_meV = "states/meV"
648
+
649
+
650
+ class AxisSchema16(BaseModel):
651
+ label: Label13
652
+ """
653
+ label of an axis object
654
+ """
655
+ units: Optional[Units215] = None
656
+ """
657
+ units for an axis
658
+ """
659
+
660
+
661
+ class Name503(Enum):
662
+ phonon_dos = "phonon_dos"
663
+
664
+
665
+ class PhononDensityOfStatesPropertySchema(BaseModel):
666
+ xAxis: AxisSchema15 = Field(..., title="axis schema")
667
+ yAxis: AxisSchema16 = Field(..., title="axis schema")
668
+ name: Literal["14#-datamodel-code-generator-#-object-#-special-#"]
669
+ xDataArray: List[Union[float, List[float]]]
670
+ """
671
+ array containing values of x Axis
672
+ """
673
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
674
+
675
+
676
+ class Label14(Enum):
677
+ z_coordinate = "z coordinate"
678
+
679
+
680
+ class AxisSchema17(BaseModel):
681
+ label: Label14
682
+ """
683
+ label of an axis object
684
+ """
685
+ units: Optional[str] = None
686
+ """
687
+ units for an axis
688
+ """
689
+
690
+
691
+ class Label15(Enum):
692
+ energy = "energy"
693
+
694
+
695
+ class Units216(Enum):
696
+ kJ_mol = "kJ/mol"
697
+ eV = "eV"
698
+ J_mol = "J/mol"
699
+ hartree = "hartree"
700
+ cm_1 = "cm-1"
701
+ Ry = "Ry"
702
+ eV_atom = "eV/atom"
703
+
704
+
705
+ class AxisSchema18(BaseModel):
706
+ label: Label15
707
+ """
708
+ label of an axis object
709
+ """
710
+ units: Optional[Units216] = None
711
+ """
712
+ units for an axis
713
+ """
714
+
715
+
716
+ class Name504(Enum):
717
+ potential_profile = "potential_profile"
718
+
719
+
720
+ class PotentialProfilePropertySchema(BaseModel):
721
+ xAxis: AxisSchema17 = Field(..., title="axis schema")
722
+ yAxis: AxisSchema18 = Field(..., title="axis schema")
723
+ name: Literal["15#-datamodel-code-generator-#-object-#-special-#"]
724
+ xDataArray: List[Union[float, List[float]]]
725
+ """
726
+ array containing values of x Axis
727
+ """
728
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
729
+
730
+
731
+ class Label16(Enum):
732
+ reaction_coordinate = "reaction coordinate"
733
+
734
+
735
+ class AxisSchema19(BaseModel):
736
+ label: Label16
737
+ """
738
+ label of an axis object
739
+ """
740
+ units: Optional[str] = None
741
+ """
742
+ units for an axis
743
+ """
744
+
745
+
746
+ class Label17(Enum):
747
+ energy = "energy"
748
+
749
+
750
+ class AxisSchema20(BaseModel):
751
+ label: Label17
752
+ """
753
+ label of an axis object
754
+ """
755
+ units: Optional[Units216] = None
756
+ """
757
+ units for an axis
758
+ """
759
+
760
+
761
+ class Name505(Enum):
762
+ reaction_energy_profile = "reaction_energy_profile"
763
+
764
+
765
+ class ReactionEnergyProfilePropertySchema(BaseModel):
766
+ xAxis: AxisSchema19 = Field(..., title="axis schema")
767
+ yAxis: AxisSchema20 = Field(..., title="axis schema")
768
+ name: Literal["16#-datamodel-code-generator-#-object-#-special-#"]
769
+ xDataArray: List[Union[float, List[float]]]
770
+ """
771
+ array containing values of x Axis
772
+ """
773
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
774
+
775
+
776
+ class AxisSchema21(BaseModel):
777
+ label: Label17
778
+ """
779
+ label of an axis object
780
+ """
781
+ units: Optional[Units216] = None
782
+ """
783
+ units for an axis
784
+ """
785
+
786
+
787
+ class Label19(Enum):
788
+ density_of_states = "density of states"
789
+
790
+
791
+ class Units219(Enum):
792
+ states_unitcell = "states/unitcell"
793
+
794
+
795
+ class AxisSchema22(BaseModel):
796
+ label: Label19
797
+ """
798
+ label of an axis object
799
+ """
800
+ units: Optional[Units219] = None
801
+ """
802
+ units for an axis
803
+ """
804
+
805
+
806
+ class Name506(Enum):
807
+ density_of_states = "density_of_states"
808
+
809
+
810
+ class Spin(Enum):
811
+ number_0_5 = 0.5
812
+ number__0_5 = -0.5
813
+
814
+
815
+ class LegendItem(BaseModel):
816
+ element: Optional[str] = None
817
+ """
818
+ chemical element
819
+ """
820
+ index: Optional[int] = None
821
+ """
822
+ index inside sub-array of atoms of the same element type
823
+ """
824
+ electronicState: Optional[constr(pattern=r"^([1-5]{1})?(s|p|d|f|g).*$")] = None
825
+ """
826
+ electronic character and shell of PDOS, such as `1s` or `s`, or `total`
827
+ """
828
+ spin: Optional[Spin] = None
829
+ """
830
+ spin of the electronic state
831
+ """
832
+
833
+
834
+ class DensityOfStatesPropertySchema(BaseModel):
835
+ xAxis: AxisSchema21 = Field(..., title="axis schema")
836
+ yAxis: AxisSchema22 = Field(..., title="axis schema")
837
+ name: Literal["17#-datamodel-code-generator-#-object-#-special-#"]
838
+ legend: List[LegendItem]
839
+ xDataArray: List[Union[float, List[float]]]
840
+ """
841
+ array containing values of x Axis
842
+ """
843
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
844
+
845
+
846
+ class Name507(Enum):
847
+ dielectric_tensor = "dielectric_tensor"
848
+
849
+
850
+ class Part(Enum):
851
+ real = "real"
852
+ imaginary = "imaginary"
853
+
854
+
855
+ class DielectricTensor(BaseModel):
856
+ part: Part
857
+ """
858
+ Real or imaginary part of the dielectric tensor component
859
+ """
860
+ spin: Optional[float] = None
861
+ frequencies: List[float]
862
+ """
863
+ Frequencies
864
+ """
865
+ components: List[List[float]]
866
+ """
867
+ Matrix with 3 columns, e.g. x, y, z
868
+ """
869
+
870
+
871
+ class DielectricTensorPropertySchema(BaseModel):
872
+ name: Literal["18#-datamodel-code-generator-#-object-#-special-#"]
873
+ values: List[DielectricTensor]
874
+
875
+
876
+ class Name508(Enum):
877
+ file_content = "file_content"
878
+
879
+
880
+ class Filetype(Enum):
881
+ image = "image"
882
+ text = "text"
883
+ csv = "csv"
884
+
885
+
886
+ class ObjectStorageContainerData(BaseModel):
887
+ CONTAINER: Optional[str] = None
888
+ """
889
+ Object storage container for the file
890
+ """
891
+ NAME: Optional[str] = None
892
+ """
893
+ Name of the file inside the object storage bucket
894
+ """
895
+ PROVIDER: Optional[str] = None
896
+ """
897
+ Object storage provider
898
+ """
899
+ REGION: Optional[str] = None
900
+ """
901
+ Region for the object container specified in Container
902
+ """
903
+ SIZE: Optional[int] = None
904
+ """
905
+ Size of the file in bytes
906
+ """
907
+ TIMESTAMP: Optional[str] = None
908
+ """
909
+ Unix timestamp showing when the file was last modified
910
+ """
911
+
912
+
913
+ class FileContentPropertySchema(BaseModel):
914
+ name: Literal["19#-datamodel-code-generator-#-object-#-special-#"]
915
+ filetype: Filetype
916
+ """
917
+ What kind of file this is, e.g. image / text
918
+ """
919
+ objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data")
920
+ pathname: Optional[str] = None
921
+ """
922
+ Relative path to the directory that contains the file.
923
+ """
924
+ basename: Optional[str] = None
925
+ """
926
+ Basename of the file
927
+ """
928
+
929
+
930
+ class Name509(Enum):
931
+ hubbard_u = "hubbard_u"
932
+
933
+
934
+ class Units220(Enum):
935
+ eV = "eV"
936
+
937
+
938
+ class AtomicDataPerOrbitalNumeric(BaseModel):
939
+ id: int
940
+ """
941
+ Site number or index in the lattice
942
+ """
943
+ atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")
944
+ """
945
+ Example: Co1, Mn
946
+ """
947
+ orbitalName: constr(pattern=r"^[1-7][sSpPdDfF]$")
948
+ value: float
949
+ """
950
+ Value related to a specific property, e.g., Hubbard U, V etc.
951
+ """
952
+
953
+
954
+ class HubbardUParametersPropertySchema(BaseModel):
955
+ name: Literal["20#-datamodel-code-generator-#-object-#-special-#"]
956
+ units: Units220
957
+ values: List[AtomicDataPerOrbitalNumeric]
958
+
959
+
960
+ class Name510(Enum):
961
+ hubbard_v = "hubbard_v"
962
+
963
+
964
+ class AtomicDataPerOrbitalPairNumeric(BaseModel):
965
+ id: int
966
+ """
967
+ Site number or index in the lattice
968
+ """
969
+ id2: int
970
+ """
971
+ Site number or index in the lattice of second site
972
+ """
973
+ atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")
974
+ """
975
+ Example: Co1, Mn
976
+ """
977
+ atomicSpecies2: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")
978
+ """
979
+ Example: Co2, O
980
+ """
981
+ orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None
982
+ orbitalName2: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None
983
+ distance: Optional[float] = None
984
+ """
985
+ Distance between two sites in Bohr.
986
+ """
987
+ value: float
988
+ """
989
+ Value related to a specific property, e.g., Hubbard U, V etc.
990
+ """
991
+
992
+
993
+ class HubbardVParametersPropertySchema(BaseModel):
994
+ name: Literal["21#-datamodel-code-generator-#-object-#-special-#"]
995
+ units: Units220
996
+ values: List[AtomicDataPerOrbitalPairNumeric]
997
+
998
+
999
+ class Name511(Enum):
1000
+ hubbard_v_nn = "hubbard_v_nn"
1001
+
1002
+
1003
+ class HubbardVNNParametersPropertySchema(BaseModel):
1004
+ name: Literal["22#-datamodel-code-generator-#-object-#-special-#"]
1005
+ units: Units220
1006
+ values: List[AtomicDataPerOrbitalPairNumeric]
1007
+
1008
+
1009
+ class Label20(Enum):
1010
+ z_coordinate = "z coordinate"
1011
+
1012
+
1013
+ class Units223(Enum):
1014
+ km = "km"
1015
+ m = "m"
1016
+ cm = "cm"
1017
+ mm = "mm"
1018
+ um = "um"
1019
+ nm = "nm"
1020
+ angstrom = "angstrom"
1021
+ a_u_ = "a.u."
1022
+ bohr = "bohr"
1023
+ pm = "pm"
1024
+
1025
+
1026
+ class AxisSchema23(BaseModel):
1027
+ label: Label20
1028
+ """
1029
+ label of an axis object
1030
+ """
1031
+ units: Optional[Units223] = None
1032
+ """
1033
+ units for an axis
1034
+ """
1035
+
1036
+
1037
+ class Label21(Enum):
1038
+ energy = "energy"
1039
+
1040
+
1041
+ class Units224(Enum):
1042
+ kJ_mol = "kJ/mol"
1043
+ eV = "eV"
1044
+ J_mol = "J/mol"
1045
+ hartree = "hartree"
1046
+ cm_1 = "cm-1"
1047
+ Ry = "Ry"
1048
+ eV_atom = "eV/atom"
1049
+
1050
+
1051
+ class AxisSchema24(BaseModel):
1052
+ label: Label21
1053
+ """
1054
+ label of an axis object
1055
+ """
1056
+ units: Optional[Units224] = None
1057
+ """
1058
+ units for an axis
1059
+ """
1060
+
1061
+
1062
+ class Name512(Enum):
1063
+ average_potential_profile = "average_potential_profile"
1064
+
1065
+
1066
+ class AveragePotentialProfilePropertySchema(BaseModel):
1067
+ xAxis: AxisSchema23 = Field(..., title="axis schema")
1068
+ yAxis: AxisSchema24 = Field(..., title="axis schema")
1069
+ name: Literal["23#-datamodel-code-generator-#-object-#-special-#"]
1070
+ xDataArray: List[Union[float, List[float]]]
1071
+ """
1072
+ array containing values of x Axis
1073
+ """
1074
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
1075
+
1076
+
1077
+ class Label22(Enum):
1078
+ z_coordinate = "z coordinate"
1079
+
1080
+
1081
+ class AxisSchema25(BaseModel):
1082
+ label: Label22
1083
+ """
1084
+ label of an axis object
1085
+ """
1086
+ units: Optional[str] = None
1087
+ """
1088
+ units for an axis
1089
+ """
1090
+
1091
+
1092
+ class Label23(Enum):
1093
+ charge_density = "charge density"
1094
+
1095
+
1096
+ class Units225(Enum):
1097
+ e_A = "e/A"
1098
+
1099
+
1100
+ class AxisSchema26(BaseModel):
1101
+ label: Label23
1102
+ """
1103
+ label of an axis object
1104
+ """
1105
+ units: Optional[Units225] = None
1106
+ """
1107
+ units for an axis
1108
+ """
1109
+
1110
+
1111
+ class Name513(Enum):
1112
+ charge_density_profile = "charge_density_profile"
1113
+
1114
+
1115
+ class ChargeDensityProfilePropertySchema(BaseModel):
1116
+ xAxis: AxisSchema25 = Field(..., title="axis schema")
1117
+ yAxis: AxisSchema26 = Field(..., title="axis schema")
1118
+ name: Literal["24#-datamodel-code-generator-#-object-#-special-#"]
1119
+ xDataArray: List[Union[float, List[float]]]
1120
+ """
1121
+ array containing values of x Axis
1122
+ """
1123
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
1124
+
1125
+
1126
+ class Name514(Enum):
1127
+ workflow_pyml_predict = "workflow:pyml_predict"
1128
+
1129
+
1130
+ class Type22(Enum):
1131
+ io = "io"
1132
+
1133
+
1134
+ class Subtype(Enum):
1135
+ input = "input"
1136
+ output = "output"
1137
+ dataFrame = "dataFrame"
1138
+
1139
+
1140
+ class Source(Enum):
1141
+ api = "api"
1142
+ db = "db"
1143
+ object_storage = "object_storage"
1144
+
1145
+
1146
+ class DataIORestAPIInputSchema(BaseModel):
1147
+ model_config = ConfigDict(
1148
+ extra="allow",
1149
+ )
1150
+ endpoint: str
1151
+ """
1152
+ rest API endpoint
1153
+ """
1154
+ endpoint_options: Dict[str, Any]
1155
+ """
1156
+ rest API endpoint options
1157
+ """
1158
+ name: Optional[str] = None
1159
+ """
1160
+ the name of the variable in local scope to save the data under
1161
+ """
1162
+
1163
+
1164
+ class DataIODatabaseInputOutputSchema(BaseModel):
1165
+ model_config = ConfigDict(
1166
+ extra="allow",
1167
+ )
1168
+ ids: List[str]
1169
+ """
1170
+ IDs of item to retrieve from db
1171
+ """
1172
+
1173
+
1174
+ class DataIODatabaseInputOutputSchema3(BaseModel):
1175
+ model_config = ConfigDict(
1176
+ extra="allow",
1177
+ )
1178
+ collection: str
1179
+ """
1180
+ db collection name
1181
+ """
1182
+ draft: bool
1183
+ """
1184
+ whether the result should be saved as draft
1185
+ """
1186
+
1187
+
1188
+ class ObjectStorageIoSchema(BaseModel):
1189
+ model_config = ConfigDict(
1190
+ extra="allow",
1191
+ )
1192
+ objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data")
1193
+ overwrite: Optional[bool] = None
1194
+ """
1195
+ if a file with the same filename already exists, whether to overwrite the old file
1196
+ """
1197
+ pathname: Optional[str] = None
1198
+ """
1199
+ Relative path to the directory that contains the file.
1200
+ """
1201
+ basename: Optional[str] = None
1202
+ """
1203
+ Basename of the file
1204
+ """
1205
+ filetype: Optional[str] = None
1206
+ """
1207
+ What kind of file this is, e.g. image / text
1208
+ """
1209
+
1210
+
1211
+ class Status(Enum):
1212
+ idle = "idle"
1213
+ active = "active"
1214
+ warning = "warning"
1215
+ error = "error"
1216
+ finished = "finished"
1217
+
1218
+
1219
+ class NameResultSchema(BaseModel):
1220
+ name: str
1221
+ """
1222
+ The name of this item. e.g. scf_accuracy
1223
+ """
1224
+
1225
+
1226
+ class StatusTrackItem(BaseModel):
1227
+ trackedAt: float
1228
+ status: str
1229
+ repetition: Optional[float] = None
1230
+
1231
+
1232
+ class DataIOUnitSchema(BaseModel):
1233
+ model_config = ConfigDict(
1234
+ extra="allow",
1235
+ )
1236
+ type: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
1237
+ """
1238
+ type of the unit
1239
+ """
1240
+ subtype: Subtype
1241
+ source: Source
1242
+ input: List[
1243
+ Union[
1244
+ DataIORestAPIInputSchema,
1245
+ Union[DataIODatabaseInputOutputSchema, DataIODatabaseInputOutputSchema3],
1246
+ ObjectStorageIoSchema,
1247
+ ]
1248
+ ]
1249
+ field_id: Optional[str] = Field(None, alias="_id")
1250
+ """
1251
+ entity identity
1252
+ """
1253
+ isDraft: Optional[bool] = None
1254
+ name: Optional[str] = None
1255
+ """
1256
+ name of the unit. e.g. pw_scf
1257
+ """
1258
+ status: Optional[Status] = None
1259
+ """
1260
+ Status of the unit.
1261
+ """
1262
+ head: Optional[bool] = None
1263
+ """
1264
+ Whether this unit is the first one to be executed.
1265
+ """
1266
+ flowchartId: str
1267
+ """
1268
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1269
+ """
1270
+ next: Optional[str] = None
1271
+ """
1272
+ Next unit's flowchartId. If empty, the current unit is the last.
1273
+ """
1274
+ enableRender: Optional[bool] = None
1275
+ """
1276
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1277
+ """
1278
+ context: Optional[Dict[str, Any]] = None
1279
+ slug: Optional[str] = None
1280
+ """
1281
+ entity slug
1282
+ """
1283
+ systemName: Optional[str] = None
1284
+ schemaVersion: Optional[str] = "2022.8.16"
1285
+ """
1286
+ entity's schema version. Used to distinct between different schemas.
1287
+ """
1288
+ isDefault: Optional[bool] = False
1289
+ """
1290
+ Identifies that entity is defaultable
1291
+ """
1292
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1293
+ """
1294
+ names of the pre-processors for this calculation
1295
+ """
1296
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1297
+ """
1298
+ names of the post-processors for this calculation
1299
+ """
1300
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1301
+ """
1302
+ names of the monitors for this calculation
1303
+ """
1304
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1305
+ """
1306
+ names of the results for this calculation
1307
+ """
1308
+ tags: Optional[List[str]] = None
1309
+ """
1310
+ entity tags
1311
+ """
1312
+ statusTrack: Optional[List[StatusTrackItem]] = None
1313
+
1314
+
1315
+ class Type23(Enum):
1316
+ reduce = "reduce"
1317
+
1318
+
1319
+ class InputItem(BaseModel):
1320
+ operation: str
1321
+ """
1322
+ reduce operation, e.g. aggregate
1323
+ """
1324
+ arguments: List[str]
1325
+ """
1326
+ arguments which are passed to reduce operation function
1327
+ """
1328
+
1329
+
1330
+ class ReduceUnitSchema(BaseModel):
1331
+ model_config = ConfigDict(
1332
+ extra="allow",
1333
+ )
1334
+ type: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
1335
+ """
1336
+ type of the unit
1337
+ """
1338
+ mapFlowchartId: str
1339
+ """
1340
+ corresponding map unit flowchart ID
1341
+ """
1342
+ input: List[InputItem]
1343
+ """
1344
+ input information for reduce unit
1345
+ """
1346
+ field_id: Optional[str] = Field(None, alias="_id")
1347
+ """
1348
+ entity identity
1349
+ """
1350
+ isDraft: Optional[bool] = None
1351
+ name: Optional[str] = None
1352
+ """
1353
+ name of the unit. e.g. pw_scf
1354
+ """
1355
+ status: Optional[Status] = None
1356
+ """
1357
+ Status of the unit.
1358
+ """
1359
+ head: Optional[bool] = None
1360
+ """
1361
+ Whether this unit is the first one to be executed.
1362
+ """
1363
+ flowchartId: str
1364
+ """
1365
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1366
+ """
1367
+ next: Optional[str] = None
1368
+ """
1369
+ Next unit's flowchartId. If empty, the current unit is the last.
1370
+ """
1371
+ enableRender: Optional[bool] = None
1372
+ """
1373
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1374
+ """
1375
+ context: Optional[Dict[str, Any]] = None
1376
+ slug: Optional[str] = None
1377
+ """
1378
+ entity slug
1379
+ """
1380
+ systemName: Optional[str] = None
1381
+ schemaVersion: Optional[str] = "2022.8.16"
1382
+ """
1383
+ entity's schema version. Used to distinct between different schemas.
1384
+ """
1385
+ isDefault: Optional[bool] = False
1386
+ """
1387
+ Identifies that entity is defaultable
1388
+ """
1389
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1390
+ """
1391
+ names of the pre-processors for this calculation
1392
+ """
1393
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1394
+ """
1395
+ names of the post-processors for this calculation
1396
+ """
1397
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1398
+ """
1399
+ names of the monitors for this calculation
1400
+ """
1401
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1402
+ """
1403
+ names of the results for this calculation
1404
+ """
1405
+ tags: Optional[List[str]] = None
1406
+ """
1407
+ entity tags
1408
+ """
1409
+ statusTrack: Optional[List[StatusTrackItem]] = None
1410
+
1411
+
1412
+ class Type24(Enum):
1413
+ condition = "condition"
1414
+
1415
+
1416
+ class WorkflowUnitInputSchema(BaseModel):
1417
+ scope: str
1418
+ """
1419
+ Scope of the variable. e.g. 'global' or 'flowchart_id_2'
1420
+ """
1421
+ name: str
1422
+ """
1423
+ Name of the input data. e.g. total_energy
1424
+ """
1425
+
1426
+
1427
+ class ConditionUnitSchema(BaseModel):
1428
+ model_config = ConfigDict(
1429
+ extra="allow",
1430
+ )
1431
+ type: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
1432
+ """
1433
+ type of the unit
1434
+ """
1435
+ input: List[WorkflowUnitInputSchema]
1436
+ """
1437
+ Input information for condition.
1438
+ """
1439
+ statement: str
1440
+ """
1441
+ Condition statement. e.g. 'abs(x-total_energy) < 1e-5'
1442
+ """
1443
+ then: str
1444
+ """
1445
+ Flowchart ID reference for `then` part of the condition.
1446
+ """
1447
+ else_: str = Field(..., alias="else")
1448
+ """
1449
+ Flowchart ID reference for `else` part of the condition.
1450
+ """
1451
+ maxOccurrences: int
1452
+ """
1453
+ Maximum occurrence of the condition, usable for loops.
1454
+ """
1455
+ throwException: Optional[bool] = None
1456
+ """
1457
+ Throw exception on reaching to maximum occurence.
1458
+ """
1459
+ field_id: Optional[str] = Field(None, alias="_id")
1460
+ """
1461
+ entity identity
1462
+ """
1463
+ isDraft: Optional[bool] = None
1464
+ name: Optional[str] = None
1465
+ """
1466
+ name of the unit. e.g. pw_scf
1467
+ """
1468
+ status: Optional[Status] = None
1469
+ """
1470
+ Status of the unit.
1471
+ """
1472
+ head: Optional[bool] = None
1473
+ """
1474
+ Whether this unit is the first one to be executed.
1475
+ """
1476
+ flowchartId: str
1477
+ """
1478
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1479
+ """
1480
+ next: Optional[str] = None
1481
+ """
1482
+ Next unit's flowchartId. If empty, the current unit is the last.
1483
+ """
1484
+ enableRender: Optional[bool] = None
1485
+ """
1486
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1487
+ """
1488
+ context: Optional[Dict[str, Any]] = None
1489
+ slug: Optional[str] = None
1490
+ """
1491
+ entity slug
1492
+ """
1493
+ systemName: Optional[str] = None
1494
+ schemaVersion: Optional[str] = "2022.8.16"
1495
+ """
1496
+ entity's schema version. Used to distinct between different schemas.
1497
+ """
1498
+ isDefault: Optional[bool] = False
1499
+ """
1500
+ Identifies that entity is defaultable
1501
+ """
1502
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1503
+ """
1504
+ names of the pre-processors for this calculation
1505
+ """
1506
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1507
+ """
1508
+ names of the post-processors for this calculation
1509
+ """
1510
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1511
+ """
1512
+ names of the monitors for this calculation
1513
+ """
1514
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1515
+ """
1516
+ names of the results for this calculation
1517
+ """
1518
+ tags: Optional[List[str]] = None
1519
+ """
1520
+ entity tags
1521
+ """
1522
+ statusTrack: Optional[List[StatusTrackItem]] = None
1523
+
1524
+
1525
+ class Type25(Enum):
1526
+ assertion = "assertion"
1527
+
1528
+
1529
+ class AssertionUnitSchema(BaseModel):
1530
+ model_config = ConfigDict(
1531
+ extra="allow",
1532
+ )
1533
+ type: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
1534
+ """
1535
+ type of the unit
1536
+ """
1537
+ statement: str
1538
+ """
1539
+ The statement to be evaluated
1540
+ """
1541
+ errorMessage: Optional[str] = None
1542
+ """
1543
+ The error message to be displayed if the assertion fails
1544
+ """
1545
+ field_id: Optional[str] = Field(None, alias="_id")
1546
+ """
1547
+ entity identity
1548
+ """
1549
+ isDraft: Optional[bool] = None
1550
+ name: str
1551
+ """
1552
+ name of the unit. e.g. pw_scf
1553
+ """
1554
+ status: Optional[Status] = None
1555
+ """
1556
+ Status of the unit.
1557
+ """
1558
+ head: Optional[bool] = None
1559
+ """
1560
+ Whether this unit is the first one to be executed.
1561
+ """
1562
+ flowchartId: str
1563
+ """
1564
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1565
+ """
1566
+ next: Optional[str] = None
1567
+ """
1568
+ Next unit's flowchartId. If empty, the current unit is the last.
1569
+ """
1570
+ enableRender: Optional[bool] = None
1571
+ """
1572
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1573
+ """
1574
+ context: Optional[Dict[str, Any]] = None
1575
+ slug: Optional[str] = None
1576
+ """
1577
+ entity slug
1578
+ """
1579
+ systemName: Optional[str] = None
1580
+ schemaVersion: Optional[str] = "2022.8.16"
1581
+ """
1582
+ entity's schema version. Used to distinct between different schemas.
1583
+ """
1584
+ isDefault: Optional[bool] = False
1585
+ """
1586
+ Identifies that entity is defaultable
1587
+ """
1588
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1589
+ """
1590
+ names of the pre-processors for this calculation
1591
+ """
1592
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1593
+ """
1594
+ names of the post-processors for this calculation
1595
+ """
1596
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1597
+ """
1598
+ names of the monitors for this calculation
1599
+ """
1600
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1601
+ """
1602
+ names of the results for this calculation
1603
+ """
1604
+ tags: Optional[List[str]] = None
1605
+ """
1606
+ entity tags
1607
+ """
1608
+ statusTrack: Optional[List[StatusTrackItem]] = None
1609
+
1610
+
1611
+ class Type26(Enum):
1612
+ execution = "execution"
1613
+
1614
+
1615
+ class ApplicationSchemaBase(BaseModel):
1616
+ model_config = ConfigDict(
1617
+ extra="allow",
1618
+ )
1619
+ shortName: Optional[str] = None
1620
+ """
1621
+ The short name of the application. e.g. qe
1622
+ """
1623
+ summary: Optional[str] = None
1624
+ """
1625
+ Application's short description.
1626
+ """
1627
+ version: Optional[str] = None
1628
+ """
1629
+ Application version. e.g. 5.3.5
1630
+ """
1631
+ build: Optional[str] = None
1632
+ """
1633
+ Application build. e.g. VTST
1634
+ """
1635
+ hasAdvancedComputeOptions: Optional[bool] = None
1636
+ """
1637
+ Whether advanced compute options are present
1638
+ """
1639
+ isLicensed: Optional[bool] = None
1640
+ """
1641
+ Whether licensing is present
1642
+ """
1643
+ field_id: Optional[str] = Field(None, alias="_id")
1644
+ """
1645
+ entity identity
1646
+ """
1647
+ slug: Optional[str] = None
1648
+ """
1649
+ entity slug
1650
+ """
1651
+ systemName: Optional[str] = None
1652
+ schemaVersion: Optional[str] = "2022.8.16"
1653
+ """
1654
+ entity's schema version. Used to distinct between different schemas.
1655
+ """
1656
+ name: Optional[str] = None
1657
+ """
1658
+ entity name
1659
+ """
1660
+ isDefault: Optional[bool] = False
1661
+ """
1662
+ Identifies that entity is defaultable
1663
+ """
1664
+
1665
+
1666
+ class ExecutableSchema(BaseModel):
1667
+ name: str
1668
+ """
1669
+ The name of the executable. e.g. pw.x
1670
+ """
1671
+ applicationId: Optional[List[str]] = None
1672
+ """
1673
+ _ids of the application this executable belongs to
1674
+ """
1675
+ hasAdvancedComputeOptions: Optional[bool] = None
1676
+ """
1677
+ Whether advanced compute options are present
1678
+ """
1679
+ field_id: Optional[str] = Field(None, alias="_id")
1680
+ """
1681
+ entity identity
1682
+ """
1683
+ slug: Optional[str] = None
1684
+ """
1685
+ entity slug
1686
+ """
1687
+ systemName: Optional[str] = None
1688
+ schemaVersion: Optional[str] = "2022.8.16"
1689
+ """
1690
+ entity's schema version. Used to distinct between different schemas.
1691
+ """
1692
+ isDefault: Optional[bool] = False
1693
+ """
1694
+ Identifies that entity is defaultable
1695
+ """
1696
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1697
+ """
1698
+ names of the pre-processors for this calculation
1699
+ """
1700
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1701
+ """
1702
+ names of the post-processors for this calculation
1703
+ """
1704
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1705
+ """
1706
+ names of the monitors for this calculation
1707
+ """
1708
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1709
+ """
1710
+ names of the results for this calculation
1711
+ """
1712
+
1713
+
1714
+ class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel):
1715
+ model_config = ConfigDict(
1716
+ extra="forbid",
1717
+ )
1718
+ templateId: Optional[str] = None
1719
+ templateName: Optional[str] = None
1720
+ name: Optional[str] = None
1721
+ """
1722
+ name of the resulting input file, if different than template name
1723
+ """
1724
+
1725
+
1726
+ class FlavorSchema(BaseModel):
1727
+ executableId: Optional[str] = None
1728
+ """
1729
+ _id of the executable this flavor belongs to
1730
+ """
1731
+ executableName: Optional[str] = None
1732
+ """
1733
+ name of the executable this flavor belongs to
1734
+ """
1735
+ applicationName: Optional[str] = None
1736
+ """
1737
+ name of the application this flavor belongs to
1738
+ """
1739
+ input: Optional[List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines]] = Field(
1740
+ None, title="execution unit input schema"
1741
+ )
1742
+ supportedApplicationVersions: Optional[List[str]] = None
1743
+ """
1744
+ list of application versions this flavor supports
1745
+ """
1746
+ field_id: Optional[str] = Field(None, alias="_id")
1747
+ """
1748
+ entity identity
1749
+ """
1750
+ slug: Optional[str] = None
1751
+ """
1752
+ entity slug
1753
+ """
1754
+ systemName: Optional[str] = None
1755
+ schemaVersion: Optional[str] = "2022.8.16"
1756
+ """
1757
+ entity's schema version. Used to distinct between different schemas.
1758
+ """
1759
+ name: Optional[str] = None
1760
+ """
1761
+ entity name
1762
+ """
1763
+ isDefault: Optional[bool] = False
1764
+ """
1765
+ Identifies that entity is defaultable
1766
+ """
1767
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1768
+ """
1769
+ names of the pre-processors for this calculation
1770
+ """
1771
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1772
+ """
1773
+ names of the post-processors for this calculation
1774
+ """
1775
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1776
+ """
1777
+ names of the monitors for this calculation
1778
+ """
1779
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1780
+ """
1781
+ names of the results for this calculation
1782
+ """
1783
+
1784
+
1785
+ class ExecutionUnitSchemaBase(BaseModel):
1786
+ model_config = ConfigDict(
1787
+ extra="allow",
1788
+ )
1789
+ type: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
1790
+ """
1791
+ type of the unit
1792
+ """
1793
+ application: ApplicationSchemaBase = Field(..., title="application schema (base)")
1794
+ executable: Optional[ExecutableSchema] = Field(None, title="executable schema")
1795
+ flavor: Optional[FlavorSchema] = Field(None, title="flavor schema")
1796
+ input: Any
1797
+ """
1798
+ unit input (type to be specified by the application's execution unit)
1799
+ """
1800
+ field_id: Optional[str] = Field(None, alias="_id")
1801
+ """
1802
+ entity identity
1803
+ """
1804
+ isDraft: Optional[bool] = None
1805
+ name: str
1806
+ """
1807
+ name of the unit. e.g. pw_scf
1808
+ """
1809
+ status: Optional[Status] = None
1810
+ """
1811
+ Status of the unit.
1812
+ """
1813
+ head: Optional[bool] = None
1814
+ """
1815
+ Whether this unit is the first one to be executed.
1816
+ """
1817
+ flowchartId: str
1818
+ """
1819
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1820
+ """
1821
+ next: Optional[str] = None
1822
+ """
1823
+ Next unit's flowchartId. If empty, the current unit is the last.
1824
+ """
1825
+ enableRender: Optional[bool] = None
1826
+ """
1827
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1828
+ """
1829
+ context: Optional[Dict[str, Any]] = None
1830
+ slug: Optional[str] = None
1831
+ """
1832
+ entity slug
1833
+ """
1834
+ systemName: Optional[str] = None
1835
+ schemaVersion: Optional[str] = "2022.8.16"
1836
+ """
1837
+ entity's schema version. Used to distinct between different schemas.
1838
+ """
1839
+ isDefault: Optional[bool] = False
1840
+ """
1841
+ Identifies that entity is defaultable
1842
+ """
1843
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1844
+ """
1845
+ names of the pre-processors for this calculation
1846
+ """
1847
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1848
+ """
1849
+ names of the post-processors for this calculation
1850
+ """
1851
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1852
+ """
1853
+ names of the monitors for this calculation
1854
+ """
1855
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1856
+ """
1857
+ names of the results for this calculation
1858
+ """
1859
+ tags: Optional[List[str]] = None
1860
+ """
1861
+ entity tags
1862
+ """
1863
+ statusTrack: Optional[List[StatusTrackItem]] = None
1864
+
1865
+
1866
+ class Type27(Enum):
1867
+ assignment = "assignment"
1868
+
1869
+
1870
+ class AssignmentUnitSchema(BaseModel):
1871
+ model_config = ConfigDict(
1872
+ extra="allow",
1873
+ )
1874
+ type: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1875
+ """
1876
+ type of the unit
1877
+ """
1878
+ input: List[WorkflowUnitInputSchema]
1879
+ """
1880
+ Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.
1881
+ """
1882
+ operand: str
1883
+ """
1884
+ Name of the global variable. e.g. 'x'
1885
+ """
1886
+ value: Union[str, bool, float]
1887
+ """
1888
+ Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)
1889
+ """
1890
+ field_id: Optional[str] = Field(None, alias="_id")
1891
+ """
1892
+ entity identity
1893
+ """
1894
+ isDraft: Optional[bool] = None
1895
+ name: str
1896
+ """
1897
+ name of the unit. e.g. pw_scf
1898
+ """
1899
+ status: Optional[Status] = None
1900
+ """
1901
+ Status of the unit.
1902
+ """
1903
+ head: Optional[bool] = None
1904
+ """
1905
+ Whether this unit is the first one to be executed.
1906
+ """
1907
+ flowchartId: str
1908
+ """
1909
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1910
+ """
1911
+ next: Optional[str] = None
1912
+ """
1913
+ Next unit's flowchartId. If empty, the current unit is the last.
1914
+ """
1915
+ enableRender: Optional[bool] = None
1916
+ """
1917
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1918
+ """
1919
+ context: Optional[Dict[str, Any]] = None
1920
+ slug: Optional[str] = None
1921
+ """
1922
+ entity slug
1923
+ """
1924
+ systemName: Optional[str] = None
1925
+ schemaVersion: Optional[str] = "2022.8.16"
1926
+ """
1927
+ entity's schema version. Used to distinct between different schemas.
1928
+ """
1929
+ isDefault: Optional[bool] = False
1930
+ """
1931
+ Identifies that entity is defaultable
1932
+ """
1933
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1934
+ """
1935
+ names of the pre-processors for this calculation
1936
+ """
1937
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1938
+ """
1939
+ names of the post-processors for this calculation
1940
+ """
1941
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1942
+ """
1943
+ names of the monitors for this calculation
1944
+ """
1945
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1946
+ """
1947
+ names of the results for this calculation
1948
+ """
1949
+ tags: Optional[List[str]] = None
1950
+ """
1951
+ entity tags
1952
+ """
1953
+ statusTrack: Optional[List[StatusTrackItem]] = None
1954
+ scope: Optional[str] = None
1955
+
1956
+
1957
+ class Type28(Enum):
1958
+ processing = "processing"
1959
+
1960
+
1961
+ class ProcessingUnitSchema(BaseModel):
1962
+ model_config = ConfigDict(
1963
+ extra="allow",
1964
+ )
1965
+ type: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1966
+ """
1967
+ type of the unit
1968
+ """
1969
+ operation: str
1970
+ """
1971
+ Contains information about the operation used.
1972
+ """
1973
+ operationType: str
1974
+ """
1975
+ Contains information about the specific type of the operation used.
1976
+ """
1977
+ inputData: Any
1978
+ """
1979
+ unit input (type to be specified by the child units)
1980
+ """
1981
+ field_id: Optional[str] = Field(None, alias="_id")
1982
+ """
1983
+ entity identity
1984
+ """
1985
+ isDraft: Optional[bool] = None
1986
+ name: str
1987
+ """
1988
+ name of the unit. e.g. pw_scf
1989
+ """
1990
+ status: Optional[Status] = None
1991
+ """
1992
+ Status of the unit.
1993
+ """
1994
+ head: Optional[bool] = None
1995
+ """
1996
+ Whether this unit is the first one to be executed.
1997
+ """
1998
+ flowchartId: str
1999
+ """
2000
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
2001
+ """
2002
+ next: Optional[str] = None
2003
+ """
2004
+ Next unit's flowchartId. If empty, the current unit is the last.
2005
+ """
2006
+ enableRender: Optional[bool] = None
2007
+ """
2008
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
2009
+ """
2010
+ context: Optional[Dict[str, Any]] = None
2011
+ slug: Optional[str] = None
2012
+ """
2013
+ entity slug
2014
+ """
2015
+ systemName: Optional[str] = None
2016
+ schemaVersion: Optional[str] = "2022.8.16"
2017
+ """
2018
+ entity's schema version. Used to distinct between different schemas.
2019
+ """
2020
+ isDefault: Optional[bool] = False
2021
+ """
2022
+ Identifies that entity is defaultable
2023
+ """
2024
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2025
+ """
2026
+ names of the pre-processors for this calculation
2027
+ """
2028
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2029
+ """
2030
+ names of the post-processors for this calculation
2031
+ """
2032
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2033
+ """
2034
+ names of the monitors for this calculation
2035
+ """
2036
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2037
+ """
2038
+ names of the results for this calculation
2039
+ """
2040
+ tags: Optional[List[str]] = None
2041
+ """
2042
+ entity tags
2043
+ """
2044
+ statusTrack: Optional[List[StatusTrackItem]] = None
2045
+
2046
+
2047
+ class WorkflowSubworkflowUnitSchema(
2048
+ RootModel[
2049
+ Union[
2050
+ DataIOUnitSchema,
2051
+ ReduceUnitSchema,
2052
+ ConditionUnitSchema,
2053
+ AssertionUnitSchema,
2054
+ ExecutionUnitSchemaBase,
2055
+ AssignmentUnitSchema,
2056
+ ProcessingUnitSchema,
2057
+ ]
2058
+ ]
2059
+ ):
2060
+ root: Union[
2061
+ DataIOUnitSchema,
2062
+ ReduceUnitSchema,
2063
+ ConditionUnitSchema,
2064
+ AssertionUnitSchema,
2065
+ ExecutionUnitSchemaBase,
2066
+ AssignmentUnitSchema,
2067
+ ProcessingUnitSchema,
2068
+ ] = Field(..., discriminator="type", title="workflow subworkflow unit schema")
2069
+
2070
+
2071
+ class BaseMethod(BaseModel):
2072
+ type: str
2073
+ """
2074
+ general type of this method, eg. `pseudopotential`
2075
+ """
2076
+ subtype: str
2077
+ """
2078
+ general subtype of this method, eg. `ultra-soft`
2079
+ """
2080
+ precision: Optional[Dict[str, Any]] = None
2081
+ """
2082
+ Object showing the actual possible precision based on theory and implementation
2083
+ """
2084
+ data: Optional[Dict[str, Any]] = None
2085
+ """
2086
+ additional data specific to method, eg. array of pseudopotentials
2087
+ """
2088
+
2089
+
2090
+ class BaseModelModel(BaseModel):
2091
+ model_config = ConfigDict(
2092
+ extra="allow",
2093
+ )
2094
+ type: str
2095
+ """
2096
+ general type of the model, eg. `dft`
2097
+ """
2098
+ subtype: str
2099
+ """
2100
+ general subtype of the model, eg. `lda`
2101
+ """
2102
+ method: BaseMethod = Field(..., title="base method")
2103
+
2104
+
2105
+ class Queue(Enum):
2106
+ D = "D"
2107
+ OR = "OR"
2108
+ OF = "OF"
2109
+ OFplus = "OFplus"
2110
+ SR = "SR"
2111
+ SF = "SF"
2112
+ SFplus = "SFplus"
2113
+ GPOF = "GPOF"
2114
+ GP2OF = "GP2OF"
2115
+ GP4OF = "GP4OF"
2116
+ GPSF = "GPSF"
2117
+ GP2SF = "GP2SF"
2118
+ GP4SF = "GP4SF"
2119
+ OR4 = "OR4"
2120
+ OR8 = "OR8"
2121
+ OR16 = "OR16"
2122
+ SR4 = "SR4"
2123
+ SR8 = "SR8"
2124
+ SR16 = "SR16"
2125
+ GOF = "GOF"
2126
+ G4OF = "G4OF"
2127
+ G8OF = "G8OF"
2128
+ GSF = "GSF"
2129
+ G4SF = "G4SF"
2130
+ G8SF = "G8SF"
2131
+
2132
+
2133
+ class TimeLimitType(Enum):
2134
+ per_single_attempt = "per single attempt"
2135
+ compound = "compound"
2136
+
2137
+
2138
+ class QuantumEspressoArgumentsSchema(BaseModel):
2139
+ model_config = ConfigDict(
2140
+ extra="forbid",
2141
+ )
2142
+ nimage: Optional[conint(ge=1, le=100)] = 1
2143
+ """
2144
+ Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.
2145
+ """
2146
+ npools: Optional[conint(ge=1, le=100)] = 1
2147
+ """
2148
+ Each image can be subpartitioned into `pools`, each taking care of a group of k-points.
2149
+ """
2150
+ nband: Optional[conint(ge=1, le=100)] = 1
2151
+ """
2152
+ Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).
2153
+ """
2154
+ ntg: Optional[conint(ge=1, le=100)] = 1
2155
+ """
2156
+ In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.
2157
+ """
2158
+ ndiag: Optional[conint(ge=1, le=100)] = 1
2159
+ """
2160
+ A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.
2161
+ """
2162
+
2163
+
2164
+ class Cluster(BaseModel):
2165
+ fqdn: Optional[str] = None
2166
+ """
2167
+ FQDN of the cluster. e.g. master-1-staging.exabyte.io
2168
+ """
2169
+ jid: Optional[str] = None
2170
+ """
2171
+ Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io
2172
+ """
2173
+
2174
+
2175
+ class Domain(Enum):
2176
+ rupy = "rupy"
2177
+ alfred = "alfred"
2178
+ celim = "celim"
2179
+ webapp = "webapp"
2180
+
2181
+
2182
+ class Error(BaseModel):
2183
+ domain: Optional[Domain] = None
2184
+ """
2185
+ Domain of the error appearance (internal).
2186
+ """
2187
+ reason: Optional[str] = None
2188
+ """
2189
+ Should be a short, unique, machine-readable error code string. e.g. FileNotFound
2190
+ """
2191
+ message: Optional[str] = None
2192
+ """
2193
+ Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'
2194
+ """
2195
+ traceback: Optional[str] = None
2196
+ """
2197
+ Full machine-readable error traceback. e.g. FileNotFound
2198
+ """
2199
+
2200
+
2201
+ class ComputeArgumentsSchema(BaseModel):
2202
+ queue: Queue
2203
+ """
2204
+ Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.
2205
+ """
2206
+ nodes: int
2207
+ """
2208
+ number of nodes used for the job inside the RMS.
2209
+ """
2210
+ ppn: int
2211
+ """
2212
+ number of CPUs used for the job inside the RMS.
2213
+ """
2214
+ timeLimit: str
2215
+ """
2216
+ Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'
2217
+ """
2218
+ timeLimitType: Optional[TimeLimitType] = "per single attempt"
2219
+ """
2220
+ Convention to use when reasoning about time limits
2221
+ """
2222
+ isRestartable: Optional[bool] = True
2223
+ """
2224
+ Job is allowed to restart on termination.
2225
+ """
2226
+ notify: Optional[str] = None
2227
+ """
2228
+ Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.
2229
+ """
2230
+ email: Optional[str] = None
2231
+ """
2232
+ Email address to notify about job execution.
2233
+ """
2234
+ maxCPU: Optional[int] = None
2235
+ """
2236
+ Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.
2237
+ """
2238
+ arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema")
2239
+ """
2240
+ Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere
2241
+ """
2242
+ cluster: Optional[Cluster] = None
2243
+ """
2244
+ Cluster where the job is executed. Optional on create. Required on job submission.
2245
+ """
2246
+ errors: Optional[List[Error]] = None
2247
+ """
2248
+ Computation error. Optional. Appears only if something happens on jobs execution.
2249
+ """
2250
+ excludeFilesPattern: Optional[str] = None
2251
+ """
2252
+ A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix
2253
+ """
2254
+
2255
+
2256
+ class Subworkflow(BaseModel):
2257
+ units: List[WorkflowSubworkflowUnitSchema]
2258
+ """
2259
+ Contains the Units of the subworkflow
2260
+ """
2261
+ model: BaseModelModel = Field(..., title="base model")
2262
+ application: ApplicationSchemaBase = Field(..., title="application schema (base)")
2263
+ isDraft: Optional[bool] = False
2264
+ """
2265
+ Defines whether to store the results/properties extracted in this unit to properties collection
2266
+ """
2267
+ field_id: Optional[str] = Field(None, alias="_id")
2268
+ """
2269
+ subworkflow identity
2270
+ """
2271
+ name: str
2272
+ """
2273
+ Human-readable name of the subworkflow. e.g. Total-energy
2274
+ """
2275
+ properties: Optional[List[str]] = None
2276
+ """
2277
+ Array of characteristic properties calculated by this subworkflow
2278
+ """
2279
+ compute: Optional[ComputeArgumentsSchema] = Field(None, title="compute arguments schema")
2280
+ """
2281
+ Custom keywords prefixed with validate correspond to custom validation methods implemented downstream
2282
+ """
2283
+
2284
+
2285
+ class Type29(Enum):
2286
+ io = "io"
2287
+
2288
+
2289
+ class DataIODatabaseInputOutputSchema4(BaseModel):
2290
+ model_config = ConfigDict(
2291
+ extra="allow",
2292
+ )
2293
+ ids: List[str]
2294
+ """
2295
+ IDs of item to retrieve from db
2296
+ """
2297
+
2298
+
2299
+ class DataIODatabaseInputOutputSchema5(BaseModel):
2300
+ model_config = ConfigDict(
2301
+ extra="allow",
2302
+ )
2303
+ collection: str
2304
+ """
2305
+ db collection name
2306
+ """
2307
+ draft: bool
2308
+ """
2309
+ whether the result should be saved as draft
2310
+ """
2311
+
2312
+
2313
+ class ObjectStorageIoSchema1(BaseModel):
2314
+ model_config = ConfigDict(
2315
+ extra="allow",
2316
+ )
2317
+ objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data")
2318
+ overwrite: Optional[bool] = None
2319
+ """
2320
+ if a file with the same filename already exists, whether to overwrite the old file
2321
+ """
2322
+ pathname: Optional[str] = None
2323
+ """
2324
+ Relative path to the directory that contains the file.
2325
+ """
2326
+ basename: Optional[str] = None
2327
+ """
2328
+ Basename of the file
2329
+ """
2330
+ filetype: Optional[str] = None
2331
+ """
2332
+ What kind of file this is, e.g. image / text
2333
+ """
2334
+
2335
+
2336
+ class DataIOUnitSchema1(BaseModel):
2337
+ model_config = ConfigDict(
2338
+ extra="allow",
2339
+ )
2340
+ type: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
2341
+ """
2342
+ type of the unit
2343
+ """
2344
+ subtype: Subtype
2345
+ source: Source
2346
+ input: List[
2347
+ Union[
2348
+ DataIORestAPIInputSchema,
2349
+ Union[DataIODatabaseInputOutputSchema4, DataIODatabaseInputOutputSchema5],
2350
+ ObjectStorageIoSchema1,
2351
+ ]
2352
+ ]
2353
+ field_id: Optional[str] = Field(None, alias="_id")
2354
+ """
2355
+ entity identity
2356
+ """
2357
+ isDraft: Optional[bool] = None
2358
+ name: Optional[str] = None
2359
+ """
2360
+ name of the unit. e.g. pw_scf
2361
+ """
2362
+ status: Optional[Status] = None
2363
+ """
2364
+ Status of the unit.
2365
+ """
2366
+ head: Optional[bool] = None
2367
+ """
2368
+ Whether this unit is the first one to be executed.
2369
+ """
2370
+ flowchartId: str
2371
+ """
2372
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
2373
+ """
2374
+ next: Optional[str] = None
2375
+ """
2376
+ Next unit's flowchartId. If empty, the current unit is the last.
2377
+ """
2378
+ enableRender: Optional[bool] = None
2379
+ """
2380
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
2381
+ """
2382
+ context: Optional[Dict[str, Any]] = None
2383
+ slug: Optional[str] = None
2384
+ """
2385
+ entity slug
2386
+ """
2387
+ systemName: Optional[str] = None
2388
+ schemaVersion: Optional[str] = "2022.8.16"
2389
+ """
2390
+ entity's schema version. Used to distinct between different schemas.
2391
+ """
2392
+ isDefault: Optional[bool] = False
2393
+ """
2394
+ Identifies that entity is defaultable
2395
+ """
2396
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2397
+ """
2398
+ names of the pre-processors for this calculation
2399
+ """
2400
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2401
+ """
2402
+ names of the post-processors for this calculation
2403
+ """
2404
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2405
+ """
2406
+ names of the monitors for this calculation
2407
+ """
2408
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2409
+ """
2410
+ names of the results for this calculation
2411
+ """
2412
+ tags: Optional[List[str]] = None
2413
+ """
2414
+ entity tags
2415
+ """
2416
+ statusTrack: Optional[List[StatusTrackItem]] = None
2417
+
2418
+
2419
+ class Type30(Enum):
2420
+ reduce = "reduce"
2421
+
2422
+
2423
+ class ReduceUnitSchema1(BaseModel):
2424
+ model_config = ConfigDict(
2425
+ extra="allow",
2426
+ )
2427
+ type: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
2428
+ """
2429
+ type of the unit
2430
+ """
2431
+ mapFlowchartId: str
2432
+ """
2433
+ corresponding map unit flowchart ID
2434
+ """
2435
+ input: List[InputItem]
2436
+ """
2437
+ input information for reduce unit
2438
+ """
2439
+ field_id: Optional[str] = Field(None, alias="_id")
2440
+ """
2441
+ entity identity
2442
+ """
2443
+ isDraft: Optional[bool] = None
2444
+ name: Optional[str] = None
2445
+ """
2446
+ name of the unit. e.g. pw_scf
2447
+ """
2448
+ status: Optional[Status] = None
2449
+ """
2450
+ Status of the unit.
2451
+ """
2452
+ head: Optional[bool] = None
2453
+ """
2454
+ Whether this unit is the first one to be executed.
2455
+ """
2456
+ flowchartId: str
2457
+ """
2458
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
2459
+ """
2460
+ next: Optional[str] = None
2461
+ """
2462
+ Next unit's flowchartId. If empty, the current unit is the last.
2463
+ """
2464
+ enableRender: Optional[bool] = None
2465
+ """
2466
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
2467
+ """
2468
+ context: Optional[Dict[str, Any]] = None
2469
+ slug: Optional[str] = None
2470
+ """
2471
+ entity slug
2472
+ """
2473
+ systemName: Optional[str] = None
2474
+ schemaVersion: Optional[str] = "2022.8.16"
2475
+ """
2476
+ entity's schema version. Used to distinct between different schemas.
2477
+ """
2478
+ isDefault: Optional[bool] = False
2479
+ """
2480
+ Identifies that entity is defaultable
2481
+ """
2482
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2483
+ """
2484
+ names of the pre-processors for this calculation
2485
+ """
2486
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2487
+ """
2488
+ names of the post-processors for this calculation
2489
+ """
2490
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2491
+ """
2492
+ names of the monitors for this calculation
2493
+ """
2494
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2495
+ """
2496
+ names of the results for this calculation
2497
+ """
2498
+ tags: Optional[List[str]] = None
2499
+ """
2500
+ entity tags
2501
+ """
2502
+ statusTrack: Optional[List[StatusTrackItem]] = None
2503
+
2504
+
2505
+ class Type31(Enum):
2506
+ condition = "condition"
2507
+
2508
+
2509
+ class ConditionUnitSchema2(BaseModel):
2510
+ model_config = ConfigDict(
2511
+ extra="allow",
2512
+ )
2513
+ type: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
2514
+ """
2515
+ type of the unit
2516
+ """
2517
+ input: List[WorkflowUnitInputSchema]
2518
+ """
2519
+ Input information for condition.
2520
+ """
2521
+ statement: str
2522
+ """
2523
+ Condition statement. e.g. 'abs(x-total_energy) < 1e-5'
2524
+ """
2525
+ then: str
2526
+ """
2527
+ Flowchart ID reference for `then` part of the condition.
2528
+ """
2529
+ else_: str = Field(..., alias="else")
2530
+ """
2531
+ Flowchart ID reference for `else` part of the condition.
2532
+ """
2533
+ maxOccurrences: int
2534
+ """
2535
+ Maximum occurrence of the condition, usable for loops.
2536
+ """
2537
+ throwException: Optional[bool] = None
2538
+ """
2539
+ Throw exception on reaching to maximum occurence.
2540
+ """
2541
+ field_id: Optional[str] = Field(None, alias="_id")
2542
+ """
2543
+ entity identity
2544
+ """
2545
+ isDraft: Optional[bool] = None
2546
+ name: Optional[str] = None
2547
+ """
2548
+ name of the unit. e.g. pw_scf
2549
+ """
2550
+ status: Optional[Status] = None
2551
+ """
2552
+ Status of the unit.
2553
+ """
2554
+ head: Optional[bool] = None
2555
+ """
2556
+ Whether this unit is the first one to be executed.
2557
+ """
2558
+ flowchartId: str
2559
+ """
2560
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
2561
+ """
2562
+ next: Optional[str] = None
2563
+ """
2564
+ Next unit's flowchartId. If empty, the current unit is the last.
2565
+ """
2566
+ enableRender: Optional[bool] = None
2567
+ """
2568
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
2569
+ """
2570
+ context: Optional[Dict[str, Any]] = None
2571
+ slug: Optional[str] = None
2572
+ """
2573
+ entity slug
2574
+ """
2575
+ systemName: Optional[str] = None
2576
+ schemaVersion: Optional[str] = "2022.8.16"
2577
+ """
2578
+ entity's schema version. Used to distinct between different schemas.
2579
+ """
2580
+ isDefault: Optional[bool] = False
2581
+ """
2582
+ Identifies that entity is defaultable
2583
+ """
2584
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2585
+ """
2586
+ names of the pre-processors for this calculation
2587
+ """
2588
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2589
+ """
2590
+ names of the post-processors for this calculation
2591
+ """
2592
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2593
+ """
2594
+ names of the monitors for this calculation
2595
+ """
2596
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2597
+ """
2598
+ names of the results for this calculation
2599
+ """
2600
+ tags: Optional[List[str]] = None
2601
+ """
2602
+ entity tags
2603
+ """
2604
+ statusTrack: Optional[List[StatusTrackItem]] = None
2605
+
2606
+
2607
+ class Type32(Enum):
2608
+ assertion = "assertion"
2609
+
2610
+
2611
+ class AssertionUnitSchema2(BaseModel):
2612
+ model_config = ConfigDict(
2613
+ extra="allow",
2614
+ )
2615
+ type: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
2616
+ """
2617
+ type of the unit
2618
+ """
2619
+ statement: str
2620
+ """
2621
+ The statement to be evaluated
2622
+ """
2623
+ errorMessage: Optional[str] = None
2624
+ """
2625
+ The error message to be displayed if the assertion fails
2626
+ """
2627
+ field_id: Optional[str] = Field(None, alias="_id")
2628
+ """
2629
+ entity identity
2630
+ """
2631
+ isDraft: Optional[bool] = None
2632
+ name: str
2633
+ """
2634
+ name of the unit. e.g. pw_scf
2635
+ """
2636
+ status: Optional[Status] = None
2637
+ """
2638
+ Status of the unit.
2639
+ """
2640
+ head: Optional[bool] = None
2641
+ """
2642
+ Whether this unit is the first one to be executed.
2643
+ """
2644
+ flowchartId: str
2645
+ """
2646
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
2647
+ """
2648
+ next: Optional[str] = None
2649
+ """
2650
+ Next unit's flowchartId. If empty, the current unit is the last.
2651
+ """
2652
+ enableRender: Optional[bool] = None
2653
+ """
2654
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
2655
+ """
2656
+ context: Optional[Dict[str, Any]] = None
2657
+ slug: Optional[str] = None
2658
+ """
2659
+ entity slug
2660
+ """
2661
+ systemName: Optional[str] = None
2662
+ schemaVersion: Optional[str] = "2022.8.16"
2663
+ """
2664
+ entity's schema version. Used to distinct between different schemas.
2665
+ """
2666
+ isDefault: Optional[bool] = False
2667
+ """
2668
+ Identifies that entity is defaultable
2669
+ """
2670
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2671
+ """
2672
+ names of the pre-processors for this calculation
2673
+ """
2674
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2675
+ """
2676
+ names of the post-processors for this calculation
2677
+ """
2678
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2679
+ """
2680
+ names of the monitors for this calculation
2681
+ """
2682
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2683
+ """
2684
+ names of the results for this calculation
2685
+ """
2686
+ tags: Optional[List[str]] = None
2687
+ """
2688
+ entity tags
2689
+ """
2690
+ statusTrack: Optional[List[StatusTrackItem]] = None
2691
+
2692
+
2693
+ class Type33(Enum):
2694
+ execution = "execution"
2695
+
2696
+
2697
+ class ExecutableSchema5(BaseModel):
2698
+ name: str
2699
+ """
2700
+ The name of the executable. e.g. pw.x
2701
+ """
2702
+ applicationId: Optional[List[str]] = None
2703
+ """
2704
+ _ids of the application this executable belongs to
2705
+ """
2706
+ hasAdvancedComputeOptions: Optional[bool] = None
2707
+ """
2708
+ Whether advanced compute options are present
2709
+ """
2710
+ field_id: Optional[str] = Field(None, alias="_id")
2711
+ """
2712
+ entity identity
2713
+ """
2714
+ slug: Optional[str] = None
2715
+ """
2716
+ entity slug
2717
+ """
2718
+ systemName: Optional[str] = None
2719
+ schemaVersion: Optional[str] = "2022.8.16"
2720
+ """
2721
+ entity's schema version. Used to distinct between different schemas.
2722
+ """
2723
+ isDefault: Optional[bool] = False
2724
+ """
2725
+ Identifies that entity is defaultable
2726
+ """
2727
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2728
+ """
2729
+ names of the pre-processors for this calculation
2730
+ """
2731
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2732
+ """
2733
+ names of the post-processors for this calculation
2734
+ """
2735
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2736
+ """
2737
+ names of the monitors for this calculation
2738
+ """
2739
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2740
+ """
2741
+ names of the results for this calculation
2742
+ """
2743
+
2744
+
2745
+ class FlavorSchema5(BaseModel):
2746
+ executableId: Optional[str] = None
2747
+ """
2748
+ _id of the executable this flavor belongs to
2749
+ """
2750
+ executableName: Optional[str] = None
2751
+ """
2752
+ name of the executable this flavor belongs to
2753
+ """
2754
+ applicationName: Optional[str] = None
2755
+ """
2756
+ name of the application this flavor belongs to
2757
+ """
2758
+ input: Optional[List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines]] = Field(
2759
+ None, title="execution unit input schema"
2760
+ )
2761
+ supportedApplicationVersions: Optional[List[str]] = None
2762
+ """
2763
+ list of application versions this flavor supports
2764
+ """
2765
+ field_id: Optional[str] = Field(None, alias="_id")
2766
+ """
2767
+ entity identity
2768
+ """
2769
+ slug: Optional[str] = None
2770
+ """
2771
+ entity slug
2772
+ """
2773
+ systemName: Optional[str] = None
2774
+ schemaVersion: Optional[str] = "2022.8.16"
2775
+ """
2776
+ entity's schema version. Used to distinct between different schemas.
2777
+ """
2778
+ name: Optional[str] = None
2779
+ """
2780
+ entity name
2781
+ """
2782
+ isDefault: Optional[bool] = False
2783
+ """
2784
+ Identifies that entity is defaultable
2785
+ """
2786
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2787
+ """
2788
+ names of the pre-processors for this calculation
2789
+ """
2790
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2791
+ """
2792
+ names of the post-processors for this calculation
2793
+ """
2794
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2795
+ """
2796
+ names of the monitors for this calculation
2797
+ """
2798
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2799
+ """
2800
+ names of the results for this calculation
2801
+ """
2802
+
2803
+
2804
+ class ExecutionUnitSchemaBase2(BaseModel):
2805
+ model_config = ConfigDict(
2806
+ extra="allow",
2807
+ )
2808
+ type: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
2809
+ """
2810
+ type of the unit
2811
+ """
2812
+ application: ApplicationSchemaBase = Field(..., title="application schema (base)")
2813
+ executable: Optional[ExecutableSchema5] = Field(None, title="executable schema")
2814
+ flavor: Optional[FlavorSchema5] = Field(None, title="flavor schema")
2815
+ input: Any
2816
+ """
2817
+ unit input (type to be specified by the application's execution unit)
2818
+ """
2819
+ field_id: Optional[str] = Field(None, alias="_id")
2820
+ """
2821
+ entity identity
2822
+ """
2823
+ isDraft: Optional[bool] = None
2824
+ name: str
2825
+ """
2826
+ name of the unit. e.g. pw_scf
2827
+ """
2828
+ status: Optional[Status] = None
2829
+ """
2830
+ Status of the unit.
2831
+ """
2832
+ head: Optional[bool] = None
2833
+ """
2834
+ Whether this unit is the first one to be executed.
2835
+ """
2836
+ flowchartId: str
2837
+ """
2838
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
2839
+ """
2840
+ next: Optional[str] = None
2841
+ """
2842
+ Next unit's flowchartId. If empty, the current unit is the last.
2843
+ """
2844
+ enableRender: Optional[bool] = None
2845
+ """
2846
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
2847
+ """
2848
+ context: Optional[Dict[str, Any]] = None
2849
+ slug: Optional[str] = None
2850
+ """
2851
+ entity slug
2852
+ """
2853
+ systemName: Optional[str] = None
2854
+ schemaVersion: Optional[str] = "2022.8.16"
2855
+ """
2856
+ entity's schema version. Used to distinct between different schemas.
2857
+ """
2858
+ isDefault: Optional[bool] = False
2859
+ """
2860
+ Identifies that entity is defaultable
2861
+ """
2862
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2863
+ """
2864
+ names of the pre-processors for this calculation
2865
+ """
2866
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2867
+ """
2868
+ names of the post-processors for this calculation
2869
+ """
2870
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2871
+ """
2872
+ names of the monitors for this calculation
2873
+ """
2874
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2875
+ """
2876
+ names of the results for this calculation
2877
+ """
2878
+ tags: Optional[List[str]] = None
2879
+ """
2880
+ entity tags
2881
+ """
2882
+ statusTrack: Optional[List[StatusTrackItem]] = None
2883
+
2884
+
2885
+ class Type34(Enum):
2886
+ assignment = "assignment"
2887
+
2888
+
2889
+ class AssignmentUnitSchema2(BaseModel):
2890
+ model_config = ConfigDict(
2891
+ extra="allow",
2892
+ )
2893
+ type: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
2894
+ """
2895
+ type of the unit
2896
+ """
2897
+ input: List[WorkflowUnitInputSchema]
2898
+ """
2899
+ Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.
2900
+ """
2901
+ operand: str
2902
+ """
2903
+ Name of the global variable. e.g. 'x'
2904
+ """
2905
+ value: Union[str, bool, float]
2906
+ """
2907
+ Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)
2908
+ """
2909
+ field_id: Optional[str] = Field(None, alias="_id")
2910
+ """
2911
+ entity identity
2912
+ """
2913
+ isDraft: Optional[bool] = None
2914
+ name: str
2915
+ """
2916
+ name of the unit. e.g. pw_scf
2917
+ """
2918
+ status: Optional[Status] = None
2919
+ """
2920
+ Status of the unit.
2921
+ """
2922
+ head: Optional[bool] = None
2923
+ """
2924
+ Whether this unit is the first one to be executed.
2925
+ """
2926
+ flowchartId: str
2927
+ """
2928
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
2929
+ """
2930
+ next: Optional[str] = None
2931
+ """
2932
+ Next unit's flowchartId. If empty, the current unit is the last.
2933
+ """
2934
+ enableRender: Optional[bool] = None
2935
+ """
2936
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
2937
+ """
2938
+ context: Optional[Dict[str, Any]] = None
2939
+ slug: Optional[str] = None
2940
+ """
2941
+ entity slug
2942
+ """
2943
+ systemName: Optional[str] = None
2944
+ schemaVersion: Optional[str] = "2022.8.16"
2945
+ """
2946
+ entity's schema version. Used to distinct between different schemas.
2947
+ """
2948
+ isDefault: Optional[bool] = False
2949
+ """
2950
+ Identifies that entity is defaultable
2951
+ """
2952
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2953
+ """
2954
+ names of the pre-processors for this calculation
2955
+ """
2956
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2957
+ """
2958
+ names of the post-processors for this calculation
2959
+ """
2960
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2961
+ """
2962
+ names of the monitors for this calculation
2963
+ """
2964
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2965
+ """
2966
+ names of the results for this calculation
2967
+ """
2968
+ tags: Optional[List[str]] = None
2969
+ """
2970
+ entity tags
2971
+ """
2972
+ statusTrack: Optional[List[StatusTrackItem]] = None
2973
+ scope: Optional[str] = None
2974
+
2975
+
2976
+ class Type35(Enum):
2977
+ processing = "processing"
2978
+
2979
+
2980
+ class ProcessingUnitSchema1(BaseModel):
2981
+ model_config = ConfigDict(
2982
+ extra="allow",
2983
+ )
2984
+ type: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
2985
+ """
2986
+ type of the unit
2987
+ """
2988
+ operation: str
2989
+ """
2990
+ Contains information about the operation used.
2991
+ """
2992
+ operationType: str
2993
+ """
2994
+ Contains information about the specific type of the operation used.
2995
+ """
2996
+ inputData: Any
2997
+ """
2998
+ unit input (type to be specified by the child units)
2999
+ """
3000
+ field_id: Optional[str] = Field(None, alias="_id")
3001
+ """
3002
+ entity identity
3003
+ """
3004
+ isDraft: Optional[bool] = None
3005
+ name: str
3006
+ """
3007
+ name of the unit. e.g. pw_scf
3008
+ """
3009
+ status: Optional[Status] = None
3010
+ """
3011
+ Status of the unit.
3012
+ """
3013
+ head: Optional[bool] = None
3014
+ """
3015
+ Whether this unit is the first one to be executed.
3016
+ """
3017
+ flowchartId: str
3018
+ """
3019
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
3020
+ """
3021
+ next: Optional[str] = None
3022
+ """
3023
+ Next unit's flowchartId. If empty, the current unit is the last.
3024
+ """
3025
+ enableRender: Optional[bool] = None
3026
+ """
3027
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
3028
+ """
3029
+ context: Optional[Dict[str, Any]] = None
3030
+ slug: Optional[str] = None
3031
+ """
3032
+ entity slug
3033
+ """
3034
+ systemName: Optional[str] = None
3035
+ schemaVersion: Optional[str] = "2022.8.16"
3036
+ """
3037
+ entity's schema version. Used to distinct between different schemas.
3038
+ """
3039
+ isDefault: Optional[bool] = False
3040
+ """
3041
+ Identifies that entity is defaultable
3042
+ """
3043
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
3044
+ """
3045
+ names of the pre-processors for this calculation
3046
+ """
3047
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
3048
+ """
3049
+ names of the post-processors for this calculation
3050
+ """
3051
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
3052
+ """
3053
+ names of the monitors for this calculation
3054
+ """
3055
+ results: Optional[List[Union[NameResultSchema, str]]] = None
3056
+ """
3057
+ names of the results for this calculation
3058
+ """
3059
+ tags: Optional[List[str]] = None
3060
+ """
3061
+ entity tags
3062
+ """
3063
+ statusTrack: Optional[List[StatusTrackItem]] = None
3064
+
3065
+
3066
+ class Type36(Enum):
3067
+ map = "map"
3068
+
3069
+
3070
+ class Input(BaseModel):
3071
+ target: str
3072
+ """
3073
+ Name of the target variable to substitute using the values below. e.g. K_POINTS
3074
+ """
3075
+ scope: Optional[str] = None
3076
+ """
3077
+ Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.
3078
+ """
3079
+ name: Optional[str] = None
3080
+ """
3081
+ Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.
3082
+ """
3083
+ values: Optional[List[Union[str, float, Dict[str, Any]]]] = None
3084
+ """
3085
+ Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution
3086
+ """
3087
+ useValues: Optional[bool] = None
3088
+
3089
+
3090
+ class MapUnitSchema(BaseModel):
3091
+ model_config = ConfigDict(
3092
+ extra="allow",
3093
+ )
3094
+ type: Literal["7#-datamodel-code-generator-#-object-#-special-#"]
3095
+ """
3096
+ type of the unit
3097
+ """
3098
+ workflowId: str
3099
+ """
3100
+ Id of workflow to run inside map
3101
+ """
3102
+ input: Input
3103
+ """
3104
+ Input information for map.
3105
+ """
3106
+ field_id: Optional[str] = Field(None, alias="_id")
3107
+ """
3108
+ entity identity
3109
+ """
3110
+ isDraft: Optional[bool] = None
3111
+ name: str
3112
+ """
3113
+ name of the unit. e.g. pw_scf
3114
+ """
3115
+ status: Optional[Status] = None
3116
+ """
3117
+ Status of the unit.
3118
+ """
3119
+ head: Optional[bool] = None
3120
+ """
3121
+ Whether this unit is the first one to be executed.
3122
+ """
3123
+ flowchartId: str
3124
+ """
3125
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
3126
+ """
3127
+ next: Optional[str] = None
3128
+ """
3129
+ Next unit's flowchartId. If empty, the current unit is the last.
3130
+ """
3131
+ enableRender: Optional[bool] = None
3132
+ """
3133
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
3134
+ """
3135
+ context: Optional[Dict[str, Any]] = None
3136
+ slug: Optional[str] = None
3137
+ """
3138
+ entity slug
3139
+ """
3140
+ systemName: Optional[str] = None
3141
+ schemaVersion: Optional[str] = "2022.8.16"
3142
+ """
3143
+ entity's schema version. Used to distinct between different schemas.
3144
+ """
3145
+ isDefault: Optional[bool] = False
3146
+ """
3147
+ Identifies that entity is defaultable
3148
+ """
3149
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
3150
+ """
3151
+ names of the pre-processors for this calculation
3152
+ """
3153
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
3154
+ """
3155
+ names of the post-processors for this calculation
3156
+ """
3157
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
3158
+ """
3159
+ names of the monitors for this calculation
3160
+ """
3161
+ results: Optional[List[Union[NameResultSchema, str]]] = None
3162
+ """
3163
+ names of the results for this calculation
3164
+ """
3165
+ tags: Optional[List[str]] = None
3166
+ """
3167
+ entity tags
3168
+ """
3169
+ statusTrack: Optional[List[StatusTrackItem]] = None
3170
+
3171
+
3172
+ class Type37(Enum):
3173
+ subworkflow = "subworkflow"
3174
+
3175
+
3176
+ class SubworkflowUnitSchema(BaseModel):
3177
+ model_config = ConfigDict(
3178
+ extra="allow",
3179
+ )
3180
+ type: Literal["8#-datamodel-code-generator-#-object-#-special-#"]
3181
+ """
3182
+ type of the unit
3183
+ """
3184
+ field_id: Optional[str] = Field(None, alias="_id")
3185
+ """
3186
+ entity identity
3187
+ """
3188
+ isDraft: Optional[bool] = None
3189
+ name: str
3190
+ """
3191
+ name of the unit. e.g. pw_scf
3192
+ """
3193
+ status: Optional[Status] = None
3194
+ """
3195
+ Status of the unit.
3196
+ """
3197
+ head: Optional[bool] = None
3198
+ """
3199
+ Whether this unit is the first one to be executed.
3200
+ """
3201
+ flowchartId: str
3202
+ """
3203
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
3204
+ """
3205
+ next: Optional[str] = None
3206
+ """
3207
+ Next unit's flowchartId. If empty, the current unit is the last.
3208
+ """
3209
+ enableRender: Optional[bool] = None
3210
+ """
3211
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
3212
+ """
3213
+ context: Optional[Dict[str, Any]] = None
3214
+ slug: Optional[str] = None
3215
+ """
3216
+ entity slug
3217
+ """
3218
+ systemName: Optional[str] = None
3219
+ schemaVersion: Optional[str] = "2022.8.16"
3220
+ """
3221
+ entity's schema version. Used to distinct between different schemas.
3222
+ """
3223
+ isDefault: Optional[bool] = False
3224
+ """
3225
+ Identifies that entity is defaultable
3226
+ """
3227
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
3228
+ """
3229
+ names of the pre-processors for this calculation
3230
+ """
3231
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
3232
+ """
3233
+ names of the post-processors for this calculation
3234
+ """
3235
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
3236
+ """
3237
+ names of the monitors for this calculation
3238
+ """
3239
+ results: Optional[List[Union[NameResultSchema, str]]] = None
3240
+ """
3241
+ names of the results for this calculation
3242
+ """
3243
+ tags: Optional[List[str]] = None
3244
+ """
3245
+ entity tags
3246
+ """
3247
+ statusTrack: Optional[List[StatusTrackItem]] = None
3248
+
3249
+
3250
+ class WorkflowUnitSchema(
3251
+ RootModel[
3252
+ Union[
3253
+ DataIOUnitSchema1,
3254
+ ReduceUnitSchema1,
3255
+ ConditionUnitSchema2,
3256
+ AssertionUnitSchema2,
3257
+ ExecutionUnitSchemaBase2,
3258
+ AssignmentUnitSchema2,
3259
+ ProcessingUnitSchema1,
3260
+ MapUnitSchema,
3261
+ SubworkflowUnitSchema,
3262
+ ]
3263
+ ]
3264
+ ):
3265
+ root: Union[
3266
+ DataIOUnitSchema1,
3267
+ ReduceUnitSchema1,
3268
+ ConditionUnitSchema2,
3269
+ AssertionUnitSchema2,
3270
+ ExecutionUnitSchemaBase2,
3271
+ AssignmentUnitSchema2,
3272
+ ProcessingUnitSchema1,
3273
+ MapUnitSchema,
3274
+ SubworkflowUnitSchema,
3275
+ ] = Field(..., discriminator="type", title="workflow unit schema")
3276
+
3277
+
3278
+ class WorkflowPropertySchema(BaseModel):
3279
+ name: Literal["25#-datamodel-code-generator-#-object-#-special-#"]
3280
+ """
3281
+ entity name
3282
+ """
3283
+ subworkflows: List[Subworkflow]
3284
+ """
3285
+ Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting
3286
+ """
3287
+ units: List[WorkflowUnitSchema]
3288
+ """
3289
+ Contains the Units of the Workflow
3290
+ """
3291
+ properties: Optional[List[Union[str, Dict[str, Any]]]] = None
3292
+ """
3293
+ Array of characteristic properties calculated by this workflow (TODO: add enums)
3294
+ """
3295
+ isUsingDataset: Optional[bool] = None
3296
+ """
3297
+ Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.
3298
+ """
3299
+ workflows: Optional[List[Dict[str, Any]]] = None
3300
+ """
3301
+ Array of workflows with the same schema as the current one.
3302
+ """
3303
+ field_id: Optional[str] = Field(None, alias="_id")
3304
+ """
3305
+ entity identity
3306
+ """
3307
+ slug: Optional[str] = None
3308
+ """
3309
+ entity slug
3310
+ """
3311
+ systemName: Optional[str] = None
3312
+ schemaVersion: Optional[str] = "2022.8.16"
3313
+ """
3314
+ entity's schema version. Used to distinct between different schemas.
3315
+ """
3316
+ isDefault: Optional[bool] = False
3317
+ """
3318
+ Identifies that entity is defaultable
3319
+ """
3320
+ metadata: Optional[Dict[str, Any]] = None
3321
+
3322
+
3323
+ class Name515(Enum):
3324
+ magnetic_moments = "magnetic_moments"
3325
+
3326
+
3327
+ class AtomicVectorSchema(BaseModel):
3328
+ value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
3329
+ """
3330
+ value of this entry
3331
+ """
3332
+ id: int
3333
+ """
3334
+ integer id of this entry
3335
+ """
3336
+
3337
+
3338
+ class Units226(Enum):
3339
+ uB = "uB"
3340
+
3341
+
3342
+ class MagneticMomentsPropertySchema(BaseModel):
3343
+ name: Literal["26#-datamodel-code-generator-#-object-#-special-#"]
3344
+ values: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema")
3345
+ units: Units226
3346
+
3347
+
3348
+ class Name516(Enum):
3349
+ atomic_forces = "atomic_forces"
3350
+
3351
+
3352
+ class Units227(Enum):
3353
+ eV_bohr = "eV/bohr"
3354
+ eV_angstrom = "eV/angstrom"
3355
+ Ry_a_u_ = "Ry/a.u."
3356
+ newton = "newton"
3357
+ kg_m_s_2 = "kg*m/s^2"
3358
+ eV_a_u_ = "eV/a.u."
3359
+
3360
+
3361
+ class AtomicForcesPropertySchema(BaseModel):
3362
+ name: Literal["27#-datamodel-code-generator-#-object-#-special-#"]
3363
+ values: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema")
3364
+ units: Units227
3365
+
3366
+
3367
+ class Name517(Enum):
3368
+ convergence_electronic = "convergence_electronic"
3369
+
3370
+
3371
+ class Units228(Enum):
3372
+ eV = "eV"
3373
+ Ry = "Ry"
3374
+ hartree = "hartree"
3375
+
3376
+
3377
+ class ConvergenceElectronicPropertySchema(BaseModel):
3378
+ name: Literal["28#-datamodel-code-generator-#-object-#-special-#"]
3379
+ units: Units228
3380
+ data: List[List[float]]
3381
+
3382
+
3383
+ class Name518(Enum):
3384
+ convergence_ionic = "convergence_ionic"
3385
+
3386
+
3387
+ class Units229(Enum):
3388
+ eV = "eV"
3389
+
3390
+
3391
+ class Units230(Enum):
3392
+ eV = "eV"
3393
+ Ry = "Ry"
3394
+ hartree = "hartree"
3395
+
3396
+
3397
+ class Electronic(BaseModel):
3398
+ units: Optional[Units230] = None
3399
+ """
3400
+ units for force tolerance
3401
+ """
3402
+ data: Optional[List[float]] = None
3403
+
3404
+
3405
+ class Datum(BaseModel):
3406
+ energy: float
3407
+ """
3408
+ converged electronic energy for this structure (last in `electronic`)
3409
+ """
3410
+ structure: Optional[Dict[str, Any]] = None
3411
+ """
3412
+ TODO: structural information at each step to be here
3413
+ """
3414
+ electronic: Optional[Electronic] = None
3415
+ """
3416
+ data about electronic at this ionic step
3417
+ """
3418
+
3419
+
3420
+ class ConvergenceIonicPropertySchema(BaseModel):
3421
+ name: Literal["29#-datamodel-code-generator-#-object-#-special-#"]
3422
+ tolerance: Optional[Any] = None
3423
+ """
3424
+ for ionic convergence tolerance shows force tolerance
3425
+ """
3426
+ units: Units229
3427
+ """
3428
+ units for force tolerance
3429
+ """
3430
+ data: List[Datum]
3431
+ """
3432
+ energetic and structural information
3433
+ """
3434
+
3435
+
3436
+ class Name519(Enum):
3437
+ is_relaxed = "is_relaxed"
3438
+
3439
+
3440
+ class IsRelaxedPropertySchema(BaseModel):
3441
+ name: Literal["30#-datamodel-code-generator-#-object-#-special-#"]
3442
+ value: bool
3443
+ materialId: str
3444
+ """
3445
+ Material's identity
3446
+ """
3447
+
3448
+
3449
+ class Name520(Enum):
3450
+ final_structure = "final_structure"
3451
+
3452
+
3453
+ class FinalStructurePropertySchema(BaseModel):
3454
+ name: Literal["31#-datamodel-code-generator-#-object-#-special-#"]
3455
+ isRelaxed: bool
3456
+ materialId: str
3457
+ """
3458
+ Material's identity
3459
+ """
3460
+
3461
+
3462
+ class Name521(Enum):
3463
+ jupyter_notebook_endpoint = "jupyter_notebook_endpoint"
3464
+
3465
+
3466
+ class JupyterNotebookEndpointPropertySchema(BaseModel):
3467
+ name: Literal["32#-datamodel-code-generator-#-object-#-special-#"]
3468
+ host: str
3469
+ port: float
3470
+ token: str
3471
+
3472
+
3473
+ class Info(BaseModel):
3474
+ jobId: str
3475
+ """
3476
+ Job's identity
3477
+ """
3478
+ unitId: str
3479
+ """
3480
+ Id of the unit that extracted the result
3481
+ """
3482
+
3483
+
3484
+ class Source3(BaseModel):
3485
+ type: str
3486
+ """
3487
+ Type of the material property's source.
3488
+ """
3489
+ info: Info
3490
+
3491
+
3492
+ class Precision(BaseModel):
3493
+ value: Optional[float] = None
3494
+ metric: Optional[str] = None
3495
+
3496
+
3497
+ class SystemTag(Enum):
3498
+ isRefined = "isRefined"
3499
+ isBest = "isBest"
3500
+
3501
+
3502
+ class PropertyHolderSchema(BaseModel):
3503
+ group: Optional[str] = None
3504
+ """
3505
+ property group, e.g. qe:dft:gga:pbe
3506
+ """
3507
+ data: Union[
3508
+ ValenceBandOffsetPropertySchema,
3509
+ ZeroPointEnergyPropertySchema,
3510
+ PressurePropertySchema,
3511
+ ReactionEnergyBarrierPropertySchema,
3512
+ SurfaceEnergyPropertySchema,
3513
+ TotalEnergyPropertySchema,
3514
+ TotalForcesPropertySchema,
3515
+ FermiEnergyPropertySchema,
3516
+ IonizationPotentialScalarPropertySchema,
3517
+ StressTensorPropertySchema,
3518
+ BandGapsPropertySchema,
3519
+ BandStructurePropertySchema,
3520
+ PhononBandStructurePropertySchema,
3521
+ TotalEnergyContributionsPropertySchema,
3522
+ PhononDensityOfStatesPropertySchema,
3523
+ PotentialProfilePropertySchema,
3524
+ ReactionEnergyProfilePropertySchema,
3525
+ DensityOfStatesPropertySchema,
3526
+ DielectricTensorPropertySchema,
3527
+ FileContentPropertySchema,
3528
+ HubbardUParametersPropertySchema,
3529
+ HubbardVParametersPropertySchema,
3530
+ HubbardVNNParametersPropertySchema,
3531
+ AveragePotentialProfilePropertySchema,
3532
+ ChargeDensityProfilePropertySchema,
3533
+ WorkflowPropertySchema,
3534
+ MagneticMomentsPropertySchema,
3535
+ AtomicForcesPropertySchema,
3536
+ ConvergenceElectronicPropertySchema,
3537
+ ConvergenceIonicPropertySchema,
3538
+ IsRelaxedPropertySchema,
3539
+ FinalStructurePropertySchema,
3540
+ JupyterNotebookEndpointPropertySchema,
3541
+ ] = Field(..., discriminator="name")
3542
+ """
3543
+ container of the information, specific to each property
3544
+ """
3545
+ source: Source3
3546
+ exabyteId: List[str]
3547
+ """
3548
+ Id of the corresponding item in the entity bank that this property is obtained for
3549
+ """
3550
+ precision: Optional[Precision] = None
3551
+ systemTags: Optional[List[SystemTag]] = None
3552
+ """
3553
+ property system tags, marks property system characteristics, values refined or best (could be both)
3554
+ """
3555
+ repetition: float
3556
+ field_id: Optional[str] = Field(None, alias="_id")
3557
+ """
3558
+ entity identity
3559
+ """
3560
+ slug: Optional[str] = None
3561
+ """
3562
+ entity slug
3563
+ """
3564
+ systemName: Optional[str] = None
3565
+ schemaVersion: Optional[str] = "2022.8.16"
3566
+ """
3567
+ entity's schema version. Used to distinct between different schemas.
3568
+ """