mat3ra-esse 2025.8.20.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 (123) 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/__init__.py +3 -0
  78. mat3ra/esse/models/properties_directory/reusable/hubbard_parameters.py +48 -0
  79. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +1 -1
  80. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +1 -1
  81. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +1 -1
  82. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +3 -3
  83. mat3ra/esse/models/properties_directory/scalar/pressure.py +3 -4
  84. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +3 -3
  85. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +3 -3
  86. mat3ra/esse/models/properties_directory/scalar/total_energy.py +3 -3
  87. mat3ra/esse/models/properties_directory/scalar/total_force.py +3 -4
  88. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +3 -3
  89. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +3 -3
  90. mat3ra/esse/models/properties_directory/structural/atomic_forces.py +5 -5
  91. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +3 -3
  92. mat3ra/esse/models/properties_directory/structural/basis/boundary_conditions.py +30 -0
  93. mat3ra/esse/models/properties_directory/structural/basis/predicted_properties.py +82 -0
  94. mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +23 -1
  95. mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +5 -5
  96. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +5 -5
  97. mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +1 -1
  98. mat3ra/esse/models/properties_directory/structural/patterns/ring.py +1 -1
  99. mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +1 -1
  100. mat3ra/esse/models/properties_directory/workflow/convergence/electronic.py +4 -4
  101. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +6 -6
  102. mat3ra/esse/models/property/base.py +1492 -14
  103. mat3ra/esse/models/property/holder.py +3568 -0
  104. mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py +3 -0
  105. mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py +31 -0
  106. mat3ra/esse/models/property/meta_holder.py +140 -0
  107. mat3ra/esse/models/property/proto_holder.py +86 -0
  108. mat3ra/esse/models/property/raw.py +27 -11
  109. mat3ra/esse/models/property/source.py +26 -3
  110. mat3ra/esse/models/workflow/__init__.py +54 -54
  111. mat3ra/esse/models/workflow/base_flow.py +4 -4
  112. mat3ra/esse/models/workflow/subworkflow/__init__.py +13 -13
  113. mat3ra/esse/models/workflow/subworkflow/unit.py +10 -10
  114. mat3ra/esse/models/workflow/unit/__init__.py +12 -12
  115. mat3ra/esse/models/workflow/unit/io/__init__.py +4 -4
  116. mat3ra/esse/models/workflow/unit/io/db.py +2 -2
  117. mat3ra/esse/models/workflow/unit/io/object_storage.py +1 -1
  118. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/METADATA +1 -1
  119. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/RECORD +122 -103
  120. mat3ra/esse/models/property/meta.py +0 -200
  121. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/WHEEL +0 -0
  122. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/licenses/LICENSE.md +0 -0
  123. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2234 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: properties_directory/non_scalar/workflow.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
11
+
12
+
13
+ class Name(Enum):
14
+ workflow_pyml_predict = "workflow:pyml_predict"
15
+
16
+
17
+ class Type(Enum):
18
+ io = "io"
19
+
20
+
21
+ class Subtype(Enum):
22
+ input = "input"
23
+ output = "output"
24
+ dataFrame = "dataFrame"
25
+
26
+
27
+ class Source(Enum):
28
+ api = "api"
29
+ db = "db"
30
+ object_storage = "object_storage"
31
+
32
+
33
+ class DataIORestAPIInputSchema(BaseModel):
34
+ model_config = ConfigDict(
35
+ extra="allow",
36
+ )
37
+ endpoint: str
38
+ """
39
+ rest API endpoint
40
+ """
41
+ endpoint_options: Dict[str, Any]
42
+ """
43
+ rest API endpoint options
44
+ """
45
+ name: Optional[str] = None
46
+ """
47
+ the name of the variable in local scope to save the data under
48
+ """
49
+
50
+
51
+ class DataIODatabaseInputOutputSchema(BaseModel):
52
+ model_config = ConfigDict(
53
+ extra="allow",
54
+ )
55
+ ids: List[str]
56
+ """
57
+ IDs of item to retrieve from db
58
+ """
59
+
60
+
61
+ class DataIODatabaseInputOutputSchema23(BaseModel):
62
+ model_config = ConfigDict(
63
+ extra="allow",
64
+ )
65
+ collection: str
66
+ """
67
+ db collection name
68
+ """
69
+ draft: bool
70
+ """
71
+ whether the result should be saved as draft
72
+ """
73
+
74
+
75
+ class ObjectStorageContainerData(BaseModel):
76
+ CONTAINER: Optional[str] = None
77
+ """
78
+ Object storage container for the file
79
+ """
80
+ NAME: Optional[str] = None
81
+ """
82
+ Name of the file inside the object storage bucket
83
+ """
84
+ PROVIDER: Optional[str] = None
85
+ """
86
+ Object storage provider
87
+ """
88
+ REGION: Optional[str] = None
89
+ """
90
+ Region for the object container specified in Container
91
+ """
92
+ SIZE: Optional[int] = None
93
+ """
94
+ Size of the file in bytes
95
+ """
96
+ TIMESTAMP: Optional[str] = None
97
+ """
98
+ Unix timestamp showing when the file was last modified
99
+ """
100
+
101
+
102
+ class ObjectStorageIoSchema(BaseModel):
103
+ model_config = ConfigDict(
104
+ extra="allow",
105
+ )
106
+ objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data")
107
+ overwrite: Optional[bool] = None
108
+ """
109
+ if a file with the same filename already exists, whether to overwrite the old file
110
+ """
111
+ pathname: Optional[str] = None
112
+ """
113
+ Relative path to the directory that contains the file.
114
+ """
115
+ basename: Optional[str] = None
116
+ """
117
+ Basename of the file
118
+ """
119
+ filetype: Optional[str] = None
120
+ """
121
+ What kind of file this is, e.g. image / text
122
+ """
123
+
124
+
125
+ class Status(Enum):
126
+ idle = "idle"
127
+ active = "active"
128
+ warning = "warning"
129
+ error = "error"
130
+ finished = "finished"
131
+
132
+
133
+ class NameResultSchema(BaseModel):
134
+ name: str
135
+ """
136
+ The name of this item. e.g. scf_accuracy
137
+ """
138
+
139
+
140
+ class StatusTrackItem(BaseModel):
141
+ trackedAt: float
142
+ status: str
143
+ repetition: Optional[float] = None
144
+
145
+
146
+ class DataIOUnitSchema(BaseModel):
147
+ model_config = ConfigDict(
148
+ extra="allow",
149
+ )
150
+ type: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
151
+ """
152
+ type of the unit
153
+ """
154
+ subtype: Subtype
155
+ source: Source
156
+ input: List[
157
+ Union[
158
+ DataIORestAPIInputSchema,
159
+ Union[DataIODatabaseInputOutputSchema, DataIODatabaseInputOutputSchema23],
160
+ ObjectStorageIoSchema,
161
+ ]
162
+ ]
163
+ field_id: Optional[str] = Field(None, alias="_id")
164
+ """
165
+ entity identity
166
+ """
167
+ isDraft: Optional[bool] = None
168
+ name: Optional[str] = None
169
+ """
170
+ name of the unit. e.g. pw_scf
171
+ """
172
+ status: Optional[Status] = None
173
+ """
174
+ Status of the unit.
175
+ """
176
+ head: Optional[bool] = None
177
+ """
178
+ Whether this unit is the first one to be executed.
179
+ """
180
+ flowchartId: str
181
+ """
182
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
183
+ """
184
+ next: Optional[str] = None
185
+ """
186
+ Next unit's flowchartId. If empty, the current unit is the last.
187
+ """
188
+ enableRender: Optional[bool] = None
189
+ """
190
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
191
+ """
192
+ context: Optional[Dict[str, Any]] = None
193
+ slug: Optional[str] = None
194
+ """
195
+ entity slug
196
+ """
197
+ systemName: Optional[str] = None
198
+ schemaVersion: Optional[str] = "2022.8.16"
199
+ """
200
+ entity's schema version. Used to distinct between different schemas.
201
+ """
202
+ isDefault: Optional[bool] = False
203
+ """
204
+ Identifies that entity is defaultable
205
+ """
206
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
207
+ """
208
+ names of the pre-processors for this calculation
209
+ """
210
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
211
+ """
212
+ names of the post-processors for this calculation
213
+ """
214
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
215
+ """
216
+ names of the monitors for this calculation
217
+ """
218
+ results: Optional[List[Union[NameResultSchema, str]]] = None
219
+ """
220
+ names of the results for this calculation
221
+ """
222
+ tags: Optional[List[str]] = None
223
+ """
224
+ entity tags
225
+ """
226
+ statusTrack: Optional[List[StatusTrackItem]] = None
227
+
228
+
229
+ class Type122(Enum):
230
+ reduce = "reduce"
231
+
232
+
233
+ class InputItem(BaseModel):
234
+ operation: str
235
+ """
236
+ reduce operation, e.g. aggregate
237
+ """
238
+ arguments: List[str]
239
+ """
240
+ arguments which are passed to reduce operation function
241
+ """
242
+
243
+
244
+ class ReduceUnitSchema(BaseModel):
245
+ model_config = ConfigDict(
246
+ extra="allow",
247
+ )
248
+ type: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
249
+ """
250
+ type of the unit
251
+ """
252
+ mapFlowchartId: str
253
+ """
254
+ corresponding map unit flowchart ID
255
+ """
256
+ input: List[InputItem]
257
+ """
258
+ input information for reduce unit
259
+ """
260
+ field_id: Optional[str] = Field(None, alias="_id")
261
+ """
262
+ entity identity
263
+ """
264
+ isDraft: Optional[bool] = None
265
+ name: Optional[str] = None
266
+ """
267
+ name of the unit. e.g. pw_scf
268
+ """
269
+ status: Optional[Status] = None
270
+ """
271
+ Status of the unit.
272
+ """
273
+ head: Optional[bool] = None
274
+ """
275
+ Whether this unit is the first one to be executed.
276
+ """
277
+ flowchartId: str
278
+ """
279
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
280
+ """
281
+ next: Optional[str] = None
282
+ """
283
+ Next unit's flowchartId. If empty, the current unit is the last.
284
+ """
285
+ enableRender: Optional[bool] = None
286
+ """
287
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
288
+ """
289
+ context: Optional[Dict[str, Any]] = None
290
+ slug: Optional[str] = None
291
+ """
292
+ entity slug
293
+ """
294
+ systemName: Optional[str] = None
295
+ schemaVersion: Optional[str] = "2022.8.16"
296
+ """
297
+ entity's schema version. Used to distinct between different schemas.
298
+ """
299
+ isDefault: Optional[bool] = False
300
+ """
301
+ Identifies that entity is defaultable
302
+ """
303
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
304
+ """
305
+ names of the pre-processors for this calculation
306
+ """
307
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
308
+ """
309
+ names of the post-processors for this calculation
310
+ """
311
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
312
+ """
313
+ names of the monitors for this calculation
314
+ """
315
+ results: Optional[List[Union[NameResultSchema, str]]] = None
316
+ """
317
+ names of the results for this calculation
318
+ """
319
+ tags: Optional[List[str]] = None
320
+ """
321
+ entity tags
322
+ """
323
+ statusTrack: Optional[List[StatusTrackItem]] = None
324
+
325
+
326
+ class Type123(Enum):
327
+ condition = "condition"
328
+
329
+
330
+ class WorkflowUnitInputSchema(BaseModel):
331
+ scope: str
332
+ """
333
+ Scope of the variable. e.g. 'global' or 'flowchart_id_2'
334
+ """
335
+ name: str
336
+ """
337
+ Name of the input data. e.g. total_energy
338
+ """
339
+
340
+
341
+ class ConditionUnitSchema(BaseModel):
342
+ model_config = ConfigDict(
343
+ extra="allow",
344
+ )
345
+ type: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
346
+ """
347
+ type of the unit
348
+ """
349
+ input: List[WorkflowUnitInputSchema]
350
+ """
351
+ Input information for condition.
352
+ """
353
+ statement: str
354
+ """
355
+ Condition statement. e.g. 'abs(x-total_energy) < 1e-5'
356
+ """
357
+ then: str
358
+ """
359
+ Flowchart ID reference for `then` part of the condition.
360
+ """
361
+ else_: str = Field(..., alias="else")
362
+ """
363
+ Flowchart ID reference for `else` part of the condition.
364
+ """
365
+ maxOccurrences: int
366
+ """
367
+ Maximum occurrence of the condition, usable for loops.
368
+ """
369
+ throwException: Optional[bool] = None
370
+ """
371
+ Throw exception on reaching to maximum occurence.
372
+ """
373
+ field_id: Optional[str] = Field(None, alias="_id")
374
+ """
375
+ entity identity
376
+ """
377
+ isDraft: Optional[bool] = None
378
+ name: Optional[str] = None
379
+ """
380
+ name of the unit. e.g. pw_scf
381
+ """
382
+ status: Optional[Status] = None
383
+ """
384
+ Status of the unit.
385
+ """
386
+ head: Optional[bool] = None
387
+ """
388
+ Whether this unit is the first one to be executed.
389
+ """
390
+ flowchartId: str
391
+ """
392
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
393
+ """
394
+ next: Optional[str] = None
395
+ """
396
+ Next unit's flowchartId. If empty, the current unit is the last.
397
+ """
398
+ enableRender: Optional[bool] = None
399
+ """
400
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
401
+ """
402
+ context: Optional[Dict[str, Any]] = None
403
+ slug: Optional[str] = None
404
+ """
405
+ entity slug
406
+ """
407
+ systemName: Optional[str] = None
408
+ schemaVersion: Optional[str] = "2022.8.16"
409
+ """
410
+ entity's schema version. Used to distinct between different schemas.
411
+ """
412
+ isDefault: Optional[bool] = False
413
+ """
414
+ Identifies that entity is defaultable
415
+ """
416
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
417
+ """
418
+ names of the pre-processors for this calculation
419
+ """
420
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
421
+ """
422
+ names of the post-processors for this calculation
423
+ """
424
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
425
+ """
426
+ names of the monitors for this calculation
427
+ """
428
+ results: Optional[List[Union[NameResultSchema, str]]] = None
429
+ """
430
+ names of the results for this calculation
431
+ """
432
+ tags: Optional[List[str]] = None
433
+ """
434
+ entity tags
435
+ """
436
+ statusTrack: Optional[List[StatusTrackItem]] = None
437
+
438
+
439
+ class Type124(Enum):
440
+ assertion = "assertion"
441
+
442
+
443
+ class AssertionUnitSchema(BaseModel):
444
+ model_config = ConfigDict(
445
+ extra="allow",
446
+ )
447
+ type: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
448
+ """
449
+ type of the unit
450
+ """
451
+ statement: str
452
+ """
453
+ The statement to be evaluated
454
+ """
455
+ errorMessage: Optional[str] = None
456
+ """
457
+ The error message to be displayed if the assertion fails
458
+ """
459
+ field_id: Optional[str] = Field(None, alias="_id")
460
+ """
461
+ entity identity
462
+ """
463
+ isDraft: Optional[bool] = None
464
+ name: str
465
+ """
466
+ name of the unit. e.g. pw_scf
467
+ """
468
+ status: Optional[Status] = None
469
+ """
470
+ Status of the unit.
471
+ """
472
+ head: Optional[bool] = None
473
+ """
474
+ Whether this unit is the first one to be executed.
475
+ """
476
+ flowchartId: str
477
+ """
478
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
479
+ """
480
+ next: Optional[str] = None
481
+ """
482
+ Next unit's flowchartId. If empty, the current unit is the last.
483
+ """
484
+ enableRender: Optional[bool] = None
485
+ """
486
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
487
+ """
488
+ context: Optional[Dict[str, Any]] = None
489
+ slug: Optional[str] = None
490
+ """
491
+ entity slug
492
+ """
493
+ systemName: Optional[str] = None
494
+ schemaVersion: Optional[str] = "2022.8.16"
495
+ """
496
+ entity's schema version. Used to distinct between different schemas.
497
+ """
498
+ isDefault: Optional[bool] = False
499
+ """
500
+ Identifies that entity is defaultable
501
+ """
502
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
503
+ """
504
+ names of the pre-processors for this calculation
505
+ """
506
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
507
+ """
508
+ names of the post-processors for this calculation
509
+ """
510
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
511
+ """
512
+ names of the monitors for this calculation
513
+ """
514
+ results: Optional[List[Union[NameResultSchema, str]]] = None
515
+ """
516
+ names of the results for this calculation
517
+ """
518
+ tags: Optional[List[str]] = None
519
+ """
520
+ entity tags
521
+ """
522
+ statusTrack: Optional[List[StatusTrackItem]] = None
523
+
524
+
525
+ class Type125(Enum):
526
+ execution = "execution"
527
+
528
+
529
+ class ApplicationSchemaBase(BaseModel):
530
+ model_config = ConfigDict(
531
+ extra="allow",
532
+ )
533
+ shortName: Optional[str] = None
534
+ """
535
+ The short name of the application. e.g. qe
536
+ """
537
+ summary: Optional[str] = None
538
+ """
539
+ Application's short description.
540
+ """
541
+ version: Optional[str] = None
542
+ """
543
+ Application version. e.g. 5.3.5
544
+ """
545
+ build: Optional[str] = None
546
+ """
547
+ Application build. e.g. VTST
548
+ """
549
+ hasAdvancedComputeOptions: Optional[bool] = None
550
+ """
551
+ Whether advanced compute options are present
552
+ """
553
+ isLicensed: Optional[bool] = None
554
+ """
555
+ Whether licensing is present
556
+ """
557
+ field_id: Optional[str] = Field(None, alias="_id")
558
+ """
559
+ entity identity
560
+ """
561
+ slug: Optional[str] = None
562
+ """
563
+ entity slug
564
+ """
565
+ systemName: Optional[str] = None
566
+ schemaVersion: Optional[str] = "2022.8.16"
567
+ """
568
+ entity's schema version. Used to distinct between different schemas.
569
+ """
570
+ name: Optional[str] = None
571
+ """
572
+ entity name
573
+ """
574
+ isDefault: Optional[bool] = False
575
+ """
576
+ Identifies that entity is defaultable
577
+ """
578
+
579
+
580
+ class ExecutableSchema(BaseModel):
581
+ name: str
582
+ """
583
+ The name of the executable. e.g. pw.x
584
+ """
585
+ applicationId: Optional[List[str]] = None
586
+ """
587
+ _ids of the application this executable belongs to
588
+ """
589
+ hasAdvancedComputeOptions: Optional[bool] = None
590
+ """
591
+ Whether advanced compute options are present
592
+ """
593
+ field_id: Optional[str] = Field(None, alias="_id")
594
+ """
595
+ entity identity
596
+ """
597
+ slug: Optional[str] = None
598
+ """
599
+ entity slug
600
+ """
601
+ systemName: Optional[str] = None
602
+ schemaVersion: Optional[str] = "2022.8.16"
603
+ """
604
+ entity's schema version. Used to distinct between different schemas.
605
+ """
606
+ isDefault: Optional[bool] = False
607
+ """
608
+ Identifies that entity is defaultable
609
+ """
610
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
611
+ """
612
+ names of the pre-processors for this calculation
613
+ """
614
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
615
+ """
616
+ names of the post-processors for this calculation
617
+ """
618
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
619
+ """
620
+ names of the monitors for this calculation
621
+ """
622
+ results: Optional[List[Union[NameResultSchema, str]]] = None
623
+ """
624
+ names of the results for this calculation
625
+ """
626
+
627
+
628
+ class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel):
629
+ model_config = ConfigDict(
630
+ extra="forbid",
631
+ )
632
+ templateId: Optional[str] = None
633
+ templateName: Optional[str] = None
634
+ name: Optional[str] = None
635
+ """
636
+ name of the resulting input file, if different than template name
637
+ """
638
+
639
+
640
+ class FlavorSchema(BaseModel):
641
+ executableId: Optional[str] = None
642
+ """
643
+ _id of the executable this flavor belongs to
644
+ """
645
+ executableName: Optional[str] = None
646
+ """
647
+ name of the executable this flavor belongs to
648
+ """
649
+ applicationName: Optional[str] = None
650
+ """
651
+ name of the application this flavor belongs to
652
+ """
653
+ input: Optional[List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines]] = Field(
654
+ None, title="execution unit input schema"
655
+ )
656
+ supportedApplicationVersions: Optional[List[str]] = None
657
+ """
658
+ list of application versions this flavor supports
659
+ """
660
+ field_id: Optional[str] = Field(None, alias="_id")
661
+ """
662
+ entity identity
663
+ """
664
+ slug: Optional[str] = None
665
+ """
666
+ entity slug
667
+ """
668
+ systemName: Optional[str] = None
669
+ schemaVersion: Optional[str] = "2022.8.16"
670
+ """
671
+ entity's schema version. Used to distinct between different schemas.
672
+ """
673
+ name: Optional[str] = None
674
+ """
675
+ entity name
676
+ """
677
+ isDefault: Optional[bool] = False
678
+ """
679
+ Identifies that entity is defaultable
680
+ """
681
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
682
+ """
683
+ names of the pre-processors for this calculation
684
+ """
685
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
686
+ """
687
+ names of the post-processors for this calculation
688
+ """
689
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
690
+ """
691
+ names of the monitors for this calculation
692
+ """
693
+ results: Optional[List[Union[NameResultSchema, str]]] = None
694
+ """
695
+ names of the results for this calculation
696
+ """
697
+
698
+
699
+ class ExecutionUnitSchemaBase(BaseModel):
700
+ model_config = ConfigDict(
701
+ extra="allow",
702
+ )
703
+ type: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
704
+ """
705
+ type of the unit
706
+ """
707
+ application: ApplicationSchemaBase = Field(..., title="application schema (base)")
708
+ executable: Optional[ExecutableSchema] = Field(None, title="executable schema")
709
+ flavor: Optional[FlavorSchema] = Field(None, title="flavor schema")
710
+ input: Any
711
+ """
712
+ unit input (type to be specified by the application's execution unit)
713
+ """
714
+ field_id: Optional[str] = Field(None, alias="_id")
715
+ """
716
+ entity identity
717
+ """
718
+ isDraft: Optional[bool] = None
719
+ name: str
720
+ """
721
+ name of the unit. e.g. pw_scf
722
+ """
723
+ status: Optional[Status] = None
724
+ """
725
+ Status of the unit.
726
+ """
727
+ head: Optional[bool] = None
728
+ """
729
+ Whether this unit is the first one to be executed.
730
+ """
731
+ flowchartId: str
732
+ """
733
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
734
+ """
735
+ next: Optional[str] = None
736
+ """
737
+ Next unit's flowchartId. If empty, the current unit is the last.
738
+ """
739
+ enableRender: Optional[bool] = None
740
+ """
741
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
742
+ """
743
+ context: Optional[Dict[str, Any]] = None
744
+ slug: Optional[str] = None
745
+ """
746
+ entity slug
747
+ """
748
+ systemName: Optional[str] = None
749
+ schemaVersion: Optional[str] = "2022.8.16"
750
+ """
751
+ entity's schema version. Used to distinct between different schemas.
752
+ """
753
+ isDefault: Optional[bool] = False
754
+ """
755
+ Identifies that entity is defaultable
756
+ """
757
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
758
+ """
759
+ names of the pre-processors for this calculation
760
+ """
761
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
762
+ """
763
+ names of the post-processors for this calculation
764
+ """
765
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
766
+ """
767
+ names of the monitors for this calculation
768
+ """
769
+ results: Optional[List[Union[NameResultSchema, str]]] = None
770
+ """
771
+ names of the results for this calculation
772
+ """
773
+ tags: Optional[List[str]] = None
774
+ """
775
+ entity tags
776
+ """
777
+ statusTrack: Optional[List[StatusTrackItem]] = None
778
+
779
+
780
+ class Type126(Enum):
781
+ assignment = "assignment"
782
+
783
+
784
+ class AssignmentUnitSchema(BaseModel):
785
+ model_config = ConfigDict(
786
+ extra="allow",
787
+ )
788
+ type: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
789
+ """
790
+ type of the unit
791
+ """
792
+ input: List[WorkflowUnitInputSchema]
793
+ """
794
+ Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.
795
+ """
796
+ operand: str
797
+ """
798
+ Name of the global variable. e.g. 'x'
799
+ """
800
+ value: Union[str, bool, float]
801
+ """
802
+ 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)
803
+ """
804
+ field_id: Optional[str] = Field(None, alias="_id")
805
+ """
806
+ entity identity
807
+ """
808
+ isDraft: Optional[bool] = None
809
+ name: str
810
+ """
811
+ name of the unit. e.g. pw_scf
812
+ """
813
+ status: Optional[Status] = None
814
+ """
815
+ Status of the unit.
816
+ """
817
+ head: Optional[bool] = None
818
+ """
819
+ Whether this unit is the first one to be executed.
820
+ """
821
+ flowchartId: str
822
+ """
823
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
824
+ """
825
+ next: Optional[str] = None
826
+ """
827
+ Next unit's flowchartId. If empty, the current unit is the last.
828
+ """
829
+ enableRender: Optional[bool] = None
830
+ """
831
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
832
+ """
833
+ context: Optional[Dict[str, Any]] = None
834
+ slug: Optional[str] = None
835
+ """
836
+ entity slug
837
+ """
838
+ systemName: Optional[str] = None
839
+ schemaVersion: Optional[str] = "2022.8.16"
840
+ """
841
+ entity's schema version. Used to distinct between different schemas.
842
+ """
843
+ isDefault: Optional[bool] = False
844
+ """
845
+ Identifies that entity is defaultable
846
+ """
847
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
848
+ """
849
+ names of the pre-processors for this calculation
850
+ """
851
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
852
+ """
853
+ names of the post-processors for this calculation
854
+ """
855
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
856
+ """
857
+ names of the monitors for this calculation
858
+ """
859
+ results: Optional[List[Union[NameResultSchema, str]]] = None
860
+ """
861
+ names of the results for this calculation
862
+ """
863
+ tags: Optional[List[str]] = None
864
+ """
865
+ entity tags
866
+ """
867
+ statusTrack: Optional[List[StatusTrackItem]] = None
868
+ scope: Optional[str] = None
869
+
870
+
871
+ class Type127(Enum):
872
+ processing = "processing"
873
+
874
+
875
+ class ProcessingUnitSchema(BaseModel):
876
+ model_config = ConfigDict(
877
+ extra="allow",
878
+ )
879
+ type: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
880
+ """
881
+ type of the unit
882
+ """
883
+ operation: str
884
+ """
885
+ Contains information about the operation used.
886
+ """
887
+ operationType: str
888
+ """
889
+ Contains information about the specific type of the operation used.
890
+ """
891
+ inputData: Any
892
+ """
893
+ unit input (type to be specified by the child units)
894
+ """
895
+ field_id: Optional[str] = Field(None, alias="_id")
896
+ """
897
+ entity identity
898
+ """
899
+ isDraft: Optional[bool] = None
900
+ name: str
901
+ """
902
+ name of the unit. e.g. pw_scf
903
+ """
904
+ status: Optional[Status] = None
905
+ """
906
+ Status of the unit.
907
+ """
908
+ head: Optional[bool] = None
909
+ """
910
+ Whether this unit is the first one to be executed.
911
+ """
912
+ flowchartId: str
913
+ """
914
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
915
+ """
916
+ next: Optional[str] = None
917
+ """
918
+ Next unit's flowchartId. If empty, the current unit is the last.
919
+ """
920
+ enableRender: Optional[bool] = None
921
+ """
922
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
923
+ """
924
+ context: Optional[Dict[str, Any]] = None
925
+ slug: Optional[str] = None
926
+ """
927
+ entity slug
928
+ """
929
+ systemName: Optional[str] = None
930
+ schemaVersion: Optional[str] = "2022.8.16"
931
+ """
932
+ entity's schema version. Used to distinct between different schemas.
933
+ """
934
+ isDefault: Optional[bool] = False
935
+ """
936
+ Identifies that entity is defaultable
937
+ """
938
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
939
+ """
940
+ names of the pre-processors for this calculation
941
+ """
942
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
943
+ """
944
+ names of the post-processors for this calculation
945
+ """
946
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
947
+ """
948
+ names of the monitors for this calculation
949
+ """
950
+ results: Optional[List[Union[NameResultSchema, str]]] = None
951
+ """
952
+ names of the results for this calculation
953
+ """
954
+ tags: Optional[List[str]] = None
955
+ """
956
+ entity tags
957
+ """
958
+ statusTrack: Optional[List[StatusTrackItem]] = None
959
+
960
+
961
+ class WorkflowSubworkflowUnitSchema(
962
+ RootModel[
963
+ Union[
964
+ DataIOUnitSchema,
965
+ ReduceUnitSchema,
966
+ ConditionUnitSchema,
967
+ AssertionUnitSchema,
968
+ ExecutionUnitSchemaBase,
969
+ AssignmentUnitSchema,
970
+ ProcessingUnitSchema,
971
+ ]
972
+ ]
973
+ ):
974
+ root: Union[
975
+ DataIOUnitSchema,
976
+ ReduceUnitSchema,
977
+ ConditionUnitSchema,
978
+ AssertionUnitSchema,
979
+ ExecutionUnitSchemaBase,
980
+ AssignmentUnitSchema,
981
+ ProcessingUnitSchema,
982
+ ] = Field(..., discriminator="type", title="workflow subworkflow unit schema")
983
+
984
+
985
+ class BaseMethod(BaseModel):
986
+ type: str
987
+ """
988
+ general type of this method, eg. `pseudopotential`
989
+ """
990
+ subtype: str
991
+ """
992
+ general subtype of this method, eg. `ultra-soft`
993
+ """
994
+ precision: Optional[Dict[str, Any]] = None
995
+ """
996
+ Object showing the actual possible precision based on theory and implementation
997
+ """
998
+ data: Optional[Dict[str, Any]] = None
999
+ """
1000
+ additional data specific to method, eg. array of pseudopotentials
1001
+ """
1002
+
1003
+
1004
+ class BaseModel1(BaseModel):
1005
+ model_config = ConfigDict(
1006
+ extra="allow",
1007
+ )
1008
+ type: str
1009
+ """
1010
+ general type of the model, eg. `dft`
1011
+ """
1012
+ subtype: str
1013
+ """
1014
+ general subtype of the model, eg. `lda`
1015
+ """
1016
+ method: BaseMethod = Field(..., title="base method")
1017
+
1018
+
1019
+ class Queue(Enum):
1020
+ D = "D"
1021
+ OR = "OR"
1022
+ OF = "OF"
1023
+ OFplus = "OFplus"
1024
+ SR = "SR"
1025
+ SF = "SF"
1026
+ SFplus = "SFplus"
1027
+ GPOF = "GPOF"
1028
+ GP2OF = "GP2OF"
1029
+ GP4OF = "GP4OF"
1030
+ GPSF = "GPSF"
1031
+ GP2SF = "GP2SF"
1032
+ GP4SF = "GP4SF"
1033
+ OR4 = "OR4"
1034
+ OR8 = "OR8"
1035
+ OR16 = "OR16"
1036
+ SR4 = "SR4"
1037
+ SR8 = "SR8"
1038
+ SR16 = "SR16"
1039
+ GOF = "GOF"
1040
+ G4OF = "G4OF"
1041
+ G8OF = "G8OF"
1042
+ GSF = "GSF"
1043
+ G4SF = "G4SF"
1044
+ G8SF = "G8SF"
1045
+
1046
+
1047
+ class TimeLimitType(Enum):
1048
+ per_single_attempt = "per single attempt"
1049
+ compound = "compound"
1050
+
1051
+
1052
+ class QuantumEspressoArgumentsSchema(BaseModel):
1053
+ model_config = ConfigDict(
1054
+ extra="forbid",
1055
+ )
1056
+ nimage: Optional[conint(ge=1, le=100)] = 1
1057
+ """
1058
+ Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.
1059
+ """
1060
+ npools: Optional[conint(ge=1, le=100)] = 1
1061
+ """
1062
+ Each image can be subpartitioned into `pools`, each taking care of a group of k-points.
1063
+ """
1064
+ nband: Optional[conint(ge=1, le=100)] = 1
1065
+ """
1066
+ Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).
1067
+ """
1068
+ ntg: Optional[conint(ge=1, le=100)] = 1
1069
+ """
1070
+ 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.
1071
+ """
1072
+ ndiag: Optional[conint(ge=1, le=100)] = 1
1073
+ """
1074
+ 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.
1075
+ """
1076
+
1077
+
1078
+ class Cluster(BaseModel):
1079
+ fqdn: Optional[str] = None
1080
+ """
1081
+ FQDN of the cluster. e.g. master-1-staging.exabyte.io
1082
+ """
1083
+ jid: Optional[str] = None
1084
+ """
1085
+ Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io
1086
+ """
1087
+
1088
+
1089
+ class Domain(Enum):
1090
+ rupy = "rupy"
1091
+ alfred = "alfred"
1092
+ celim = "celim"
1093
+ webapp = "webapp"
1094
+
1095
+
1096
+ class Error(BaseModel):
1097
+ domain: Optional[Domain] = None
1098
+ """
1099
+ Domain of the error appearance (internal).
1100
+ """
1101
+ reason: Optional[str] = None
1102
+ """
1103
+ Should be a short, unique, machine-readable error code string. e.g. FileNotFound
1104
+ """
1105
+ message: Optional[str] = None
1106
+ """
1107
+ Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'
1108
+ """
1109
+ traceback: Optional[str] = None
1110
+ """
1111
+ Full machine-readable error traceback. e.g. FileNotFound
1112
+ """
1113
+
1114
+
1115
+ class ComputeArgumentsSchema(BaseModel):
1116
+ queue: Queue
1117
+ """
1118
+ 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.
1119
+ """
1120
+ nodes: int
1121
+ """
1122
+ number of nodes used for the job inside the RMS.
1123
+ """
1124
+ ppn: int
1125
+ """
1126
+ number of CPUs used for the job inside the RMS.
1127
+ """
1128
+ timeLimit: str
1129
+ """
1130
+ Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'
1131
+ """
1132
+ timeLimitType: Optional[TimeLimitType] = "per single attempt"
1133
+ """
1134
+ Convention to use when reasoning about time limits
1135
+ """
1136
+ isRestartable: Optional[bool] = True
1137
+ """
1138
+ Job is allowed to restart on termination.
1139
+ """
1140
+ notify: Optional[str] = None
1141
+ """
1142
+ Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.
1143
+ """
1144
+ email: Optional[str] = None
1145
+ """
1146
+ Email address to notify about job execution.
1147
+ """
1148
+ maxCPU: Optional[int] = None
1149
+ """
1150
+ 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.
1151
+ """
1152
+ arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema")
1153
+ """
1154
+ Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere
1155
+ """
1156
+ cluster: Optional[Cluster] = None
1157
+ """
1158
+ Cluster where the job is executed. Optional on create. Required on job submission.
1159
+ """
1160
+ errors: Optional[List[Error]] = None
1161
+ """
1162
+ Computation error. Optional. Appears only if something happens on jobs execution.
1163
+ """
1164
+ excludeFilesPattern: Optional[str] = None
1165
+ """
1166
+ A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix
1167
+ """
1168
+
1169
+
1170
+ class Subworkflow(BaseModel):
1171
+ units: List[WorkflowSubworkflowUnitSchema]
1172
+ """
1173
+ Contains the Units of the subworkflow
1174
+ """
1175
+ model: BaseModel1 = Field(..., title="base model")
1176
+ application: ApplicationSchemaBase = Field(..., title="application schema (base)")
1177
+ isDraft: Optional[bool] = False
1178
+ """
1179
+ Defines whether to store the results/properties extracted in this unit to properties collection
1180
+ """
1181
+ field_id: Optional[str] = Field(None, alias="_id")
1182
+ """
1183
+ subworkflow identity
1184
+ """
1185
+ name: str
1186
+ """
1187
+ Human-readable name of the subworkflow. e.g. Total-energy
1188
+ """
1189
+ properties: Optional[List[str]] = None
1190
+ """
1191
+ Array of characteristic properties calculated by this subworkflow
1192
+ """
1193
+ compute: Optional[ComputeArgumentsSchema] = Field(None, title="compute arguments schema")
1194
+ """
1195
+ Custom keywords prefixed with validate correspond to custom validation methods implemented downstream
1196
+ """
1197
+
1198
+
1199
+ class Type128(Enum):
1200
+ io = "io"
1201
+
1202
+
1203
+ class DataIODatabaseInputOutputSchema24(BaseModel):
1204
+ model_config = ConfigDict(
1205
+ extra="allow",
1206
+ )
1207
+ ids: List[str]
1208
+ """
1209
+ IDs of item to retrieve from db
1210
+ """
1211
+
1212
+
1213
+ class DataIODatabaseInputOutputSchema25(BaseModel):
1214
+ model_config = ConfigDict(
1215
+ extra="allow",
1216
+ )
1217
+ collection: str
1218
+ """
1219
+ db collection name
1220
+ """
1221
+ draft: bool
1222
+ """
1223
+ whether the result should be saved as draft
1224
+ """
1225
+
1226
+
1227
+ class ObjectStorageIoSchema12(BaseModel):
1228
+ model_config = ConfigDict(
1229
+ extra="allow",
1230
+ )
1231
+ objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data")
1232
+ overwrite: Optional[bool] = None
1233
+ """
1234
+ if a file with the same filename already exists, whether to overwrite the old file
1235
+ """
1236
+ pathname: Optional[str] = None
1237
+ """
1238
+ Relative path to the directory that contains the file.
1239
+ """
1240
+ basename: Optional[str] = None
1241
+ """
1242
+ Basename of the file
1243
+ """
1244
+ filetype: Optional[str] = None
1245
+ """
1246
+ What kind of file this is, e.g. image / text
1247
+ """
1248
+
1249
+
1250
+ class DataIOUnitSchema11(BaseModel):
1251
+ model_config = ConfigDict(
1252
+ extra="allow",
1253
+ )
1254
+ type: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
1255
+ """
1256
+ type of the unit
1257
+ """
1258
+ subtype: Subtype
1259
+ source: Source
1260
+ input: List[
1261
+ Union[
1262
+ DataIORestAPIInputSchema,
1263
+ Union[DataIODatabaseInputOutputSchema24, DataIODatabaseInputOutputSchema25],
1264
+ ObjectStorageIoSchema12,
1265
+ ]
1266
+ ]
1267
+ field_id: Optional[str] = Field(None, alias="_id")
1268
+ """
1269
+ entity identity
1270
+ """
1271
+ isDraft: Optional[bool] = None
1272
+ name: Optional[str] = None
1273
+ """
1274
+ name of the unit. e.g. pw_scf
1275
+ """
1276
+ status: Optional[Status] = None
1277
+ """
1278
+ Status of the unit.
1279
+ """
1280
+ head: Optional[bool] = None
1281
+ """
1282
+ Whether this unit is the first one to be executed.
1283
+ """
1284
+ flowchartId: str
1285
+ """
1286
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1287
+ """
1288
+ next: Optional[str] = None
1289
+ """
1290
+ Next unit's flowchartId. If empty, the current unit is the last.
1291
+ """
1292
+ enableRender: Optional[bool] = None
1293
+ """
1294
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1295
+ """
1296
+ context: Optional[Dict[str, Any]] = None
1297
+ slug: Optional[str] = None
1298
+ """
1299
+ entity slug
1300
+ """
1301
+ systemName: Optional[str] = None
1302
+ schemaVersion: Optional[str] = "2022.8.16"
1303
+ """
1304
+ entity's schema version. Used to distinct between different schemas.
1305
+ """
1306
+ isDefault: Optional[bool] = False
1307
+ """
1308
+ Identifies that entity is defaultable
1309
+ """
1310
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1311
+ """
1312
+ names of the pre-processors for this calculation
1313
+ """
1314
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1315
+ """
1316
+ names of the post-processors for this calculation
1317
+ """
1318
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1319
+ """
1320
+ names of the monitors for this calculation
1321
+ """
1322
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1323
+ """
1324
+ names of the results for this calculation
1325
+ """
1326
+ tags: Optional[List[str]] = None
1327
+ """
1328
+ entity tags
1329
+ """
1330
+ statusTrack: Optional[List[StatusTrackItem]] = None
1331
+
1332
+
1333
+ class Type129(Enum):
1334
+ reduce = "reduce"
1335
+
1336
+
1337
+ class ReduceUnitSchema11(BaseModel):
1338
+ model_config = ConfigDict(
1339
+ extra="allow",
1340
+ )
1341
+ type: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
1342
+ """
1343
+ type of the unit
1344
+ """
1345
+ mapFlowchartId: str
1346
+ """
1347
+ corresponding map unit flowchart ID
1348
+ """
1349
+ input: List[InputItem]
1350
+ """
1351
+ input information for reduce unit
1352
+ """
1353
+ field_id: Optional[str] = Field(None, alias="_id")
1354
+ """
1355
+ entity identity
1356
+ """
1357
+ isDraft: Optional[bool] = None
1358
+ name: Optional[str] = None
1359
+ """
1360
+ name of the unit. e.g. pw_scf
1361
+ """
1362
+ status: Optional[Status] = None
1363
+ """
1364
+ Status of the unit.
1365
+ """
1366
+ head: Optional[bool] = None
1367
+ """
1368
+ Whether this unit is the first one to be executed.
1369
+ """
1370
+ flowchartId: str
1371
+ """
1372
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1373
+ """
1374
+ next: Optional[str] = None
1375
+ """
1376
+ Next unit's flowchartId. If empty, the current unit is the last.
1377
+ """
1378
+ enableRender: Optional[bool] = None
1379
+ """
1380
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1381
+ """
1382
+ context: Optional[Dict[str, Any]] = None
1383
+ slug: Optional[str] = None
1384
+ """
1385
+ entity slug
1386
+ """
1387
+ systemName: Optional[str] = None
1388
+ schemaVersion: Optional[str] = "2022.8.16"
1389
+ """
1390
+ entity's schema version. Used to distinct between different schemas.
1391
+ """
1392
+ isDefault: Optional[bool] = False
1393
+ """
1394
+ Identifies that entity is defaultable
1395
+ """
1396
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1397
+ """
1398
+ names of the pre-processors for this calculation
1399
+ """
1400
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1401
+ """
1402
+ names of the post-processors for this calculation
1403
+ """
1404
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1405
+ """
1406
+ names of the monitors for this calculation
1407
+ """
1408
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1409
+ """
1410
+ names of the results for this calculation
1411
+ """
1412
+ tags: Optional[List[str]] = None
1413
+ """
1414
+ entity tags
1415
+ """
1416
+ statusTrack: Optional[List[StatusTrackItem]] = None
1417
+
1418
+
1419
+ class Type130(Enum):
1420
+ condition = "condition"
1421
+
1422
+
1423
+ class ConditionUnitSchema11(BaseModel):
1424
+ model_config = ConfigDict(
1425
+ extra="allow",
1426
+ )
1427
+ type: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
1428
+ """
1429
+ type of the unit
1430
+ """
1431
+ input: List[WorkflowUnitInputSchema]
1432
+ """
1433
+ Input information for condition.
1434
+ """
1435
+ statement: str
1436
+ """
1437
+ Condition statement. e.g. 'abs(x-total_energy) < 1e-5'
1438
+ """
1439
+ then: str
1440
+ """
1441
+ Flowchart ID reference for `then` part of the condition.
1442
+ """
1443
+ else_: str = Field(..., alias="else")
1444
+ """
1445
+ Flowchart ID reference for `else` part of the condition.
1446
+ """
1447
+ maxOccurrences: int
1448
+ """
1449
+ Maximum occurrence of the condition, usable for loops.
1450
+ """
1451
+ throwException: Optional[bool] = None
1452
+ """
1453
+ Throw exception on reaching to maximum occurence.
1454
+ """
1455
+ field_id: Optional[str] = Field(None, alias="_id")
1456
+ """
1457
+ entity identity
1458
+ """
1459
+ isDraft: Optional[bool] = None
1460
+ name: Optional[str] = None
1461
+ """
1462
+ name of the unit. e.g. pw_scf
1463
+ """
1464
+ status: Optional[Status] = None
1465
+ """
1466
+ Status of the unit.
1467
+ """
1468
+ head: Optional[bool] = None
1469
+ """
1470
+ Whether this unit is the first one to be executed.
1471
+ """
1472
+ flowchartId: str
1473
+ """
1474
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1475
+ """
1476
+ next: Optional[str] = None
1477
+ """
1478
+ Next unit's flowchartId. If empty, the current unit is the last.
1479
+ """
1480
+ enableRender: Optional[bool] = None
1481
+ """
1482
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1483
+ """
1484
+ context: Optional[Dict[str, Any]] = None
1485
+ slug: Optional[str] = None
1486
+ """
1487
+ entity slug
1488
+ """
1489
+ systemName: Optional[str] = None
1490
+ schemaVersion: Optional[str] = "2022.8.16"
1491
+ """
1492
+ entity's schema version. Used to distinct between different schemas.
1493
+ """
1494
+ isDefault: Optional[bool] = False
1495
+ """
1496
+ Identifies that entity is defaultable
1497
+ """
1498
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1499
+ """
1500
+ names of the pre-processors for this calculation
1501
+ """
1502
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1503
+ """
1504
+ names of the post-processors for this calculation
1505
+ """
1506
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1507
+ """
1508
+ names of the monitors for this calculation
1509
+ """
1510
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1511
+ """
1512
+ names of the results for this calculation
1513
+ """
1514
+ tags: Optional[List[str]] = None
1515
+ """
1516
+ entity tags
1517
+ """
1518
+ statusTrack: Optional[List[StatusTrackItem]] = None
1519
+
1520
+
1521
+ class Type131(Enum):
1522
+ assertion = "assertion"
1523
+
1524
+
1525
+ class AssertionUnitSchema11(BaseModel):
1526
+ model_config = ConfigDict(
1527
+ extra="allow",
1528
+ )
1529
+ type: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
1530
+ """
1531
+ type of the unit
1532
+ """
1533
+ statement: str
1534
+ """
1535
+ The statement to be evaluated
1536
+ """
1537
+ errorMessage: Optional[str] = None
1538
+ """
1539
+ The error message to be displayed if the assertion fails
1540
+ """
1541
+ field_id: Optional[str] = Field(None, alias="_id")
1542
+ """
1543
+ entity identity
1544
+ """
1545
+ isDraft: Optional[bool] = None
1546
+ name: str
1547
+ """
1548
+ name of the unit. e.g. pw_scf
1549
+ """
1550
+ status: Optional[Status] = None
1551
+ """
1552
+ Status of the unit.
1553
+ """
1554
+ head: Optional[bool] = None
1555
+ """
1556
+ Whether this unit is the first one to be executed.
1557
+ """
1558
+ flowchartId: str
1559
+ """
1560
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1561
+ """
1562
+ next: Optional[str] = None
1563
+ """
1564
+ Next unit's flowchartId. If empty, the current unit is the last.
1565
+ """
1566
+ enableRender: Optional[bool] = None
1567
+ """
1568
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1569
+ """
1570
+ context: Optional[Dict[str, Any]] = None
1571
+ slug: Optional[str] = None
1572
+ """
1573
+ entity slug
1574
+ """
1575
+ systemName: Optional[str] = None
1576
+ schemaVersion: Optional[str] = "2022.8.16"
1577
+ """
1578
+ entity's schema version. Used to distinct between different schemas.
1579
+ """
1580
+ isDefault: Optional[bool] = False
1581
+ """
1582
+ Identifies that entity is defaultable
1583
+ """
1584
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1585
+ """
1586
+ names of the pre-processors for this calculation
1587
+ """
1588
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1589
+ """
1590
+ names of the post-processors for this calculation
1591
+ """
1592
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1593
+ """
1594
+ names of the monitors for this calculation
1595
+ """
1596
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1597
+ """
1598
+ names of the results for this calculation
1599
+ """
1600
+ tags: Optional[List[str]] = None
1601
+ """
1602
+ entity tags
1603
+ """
1604
+ statusTrack: Optional[List[StatusTrackItem]] = None
1605
+
1606
+
1607
+ class Type132(Enum):
1608
+ execution = "execution"
1609
+
1610
+
1611
+ class ExecutableSchema14(BaseModel):
1612
+ name: str
1613
+ """
1614
+ The name of the executable. e.g. pw.x
1615
+ """
1616
+ applicationId: Optional[List[str]] = None
1617
+ """
1618
+ _ids of the application this executable belongs to
1619
+ """
1620
+ hasAdvancedComputeOptions: Optional[bool] = None
1621
+ """
1622
+ Whether advanced compute options are present
1623
+ """
1624
+ field_id: Optional[str] = Field(None, alias="_id")
1625
+ """
1626
+ entity identity
1627
+ """
1628
+ slug: Optional[str] = None
1629
+ """
1630
+ entity slug
1631
+ """
1632
+ systemName: Optional[str] = None
1633
+ schemaVersion: Optional[str] = "2022.8.16"
1634
+ """
1635
+ entity's schema version. Used to distinct between different schemas.
1636
+ """
1637
+ isDefault: Optional[bool] = False
1638
+ """
1639
+ Identifies that entity is defaultable
1640
+ """
1641
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1642
+ """
1643
+ names of the pre-processors for this calculation
1644
+ """
1645
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1646
+ """
1647
+ names of the post-processors for this calculation
1648
+ """
1649
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1650
+ """
1651
+ names of the monitors for this calculation
1652
+ """
1653
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1654
+ """
1655
+ names of the results for this calculation
1656
+ """
1657
+
1658
+
1659
+ class FlavorSchema14(BaseModel):
1660
+ executableId: Optional[str] = None
1661
+ """
1662
+ _id of the executable this flavor belongs to
1663
+ """
1664
+ executableName: Optional[str] = None
1665
+ """
1666
+ name of the executable this flavor belongs to
1667
+ """
1668
+ applicationName: Optional[str] = None
1669
+ """
1670
+ name of the application this flavor belongs to
1671
+ """
1672
+ input: Optional[List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines]] = Field(
1673
+ None, title="execution unit input schema"
1674
+ )
1675
+ supportedApplicationVersions: Optional[List[str]] = None
1676
+ """
1677
+ list of application versions this flavor supports
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
+ name: Optional[str] = None
1693
+ """
1694
+ entity name
1695
+ """
1696
+ isDefault: Optional[bool] = False
1697
+ """
1698
+ Identifies that entity is defaultable
1699
+ """
1700
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1701
+ """
1702
+ names of the pre-processors for this calculation
1703
+ """
1704
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1705
+ """
1706
+ names of the post-processors for this calculation
1707
+ """
1708
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1709
+ """
1710
+ names of the monitors for this calculation
1711
+ """
1712
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1713
+ """
1714
+ names of the results for this calculation
1715
+ """
1716
+
1717
+
1718
+ class ExecutionUnitSchemaBase11(BaseModel):
1719
+ model_config = ConfigDict(
1720
+ extra="allow",
1721
+ )
1722
+ type: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
1723
+ """
1724
+ type of the unit
1725
+ """
1726
+ application: ApplicationSchemaBase = Field(..., title="application schema (base)")
1727
+ executable: Optional[ExecutableSchema14] = Field(None, title="executable schema")
1728
+ flavor: Optional[FlavorSchema14] = Field(None, title="flavor schema")
1729
+ input: Any
1730
+ """
1731
+ unit input (type to be specified by the application's execution unit)
1732
+ """
1733
+ field_id: Optional[str] = Field(None, alias="_id")
1734
+ """
1735
+ entity identity
1736
+ """
1737
+ isDraft: Optional[bool] = None
1738
+ name: str
1739
+ """
1740
+ name of the unit. e.g. pw_scf
1741
+ """
1742
+ status: Optional[Status] = None
1743
+ """
1744
+ Status of the unit.
1745
+ """
1746
+ head: Optional[bool] = None
1747
+ """
1748
+ Whether this unit is the first one to be executed.
1749
+ """
1750
+ flowchartId: str
1751
+ """
1752
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1753
+ """
1754
+ next: Optional[str] = None
1755
+ """
1756
+ Next unit's flowchartId. If empty, the current unit is the last.
1757
+ """
1758
+ enableRender: Optional[bool] = None
1759
+ """
1760
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1761
+ """
1762
+ context: Optional[Dict[str, Any]] = None
1763
+ slug: Optional[str] = None
1764
+ """
1765
+ entity slug
1766
+ """
1767
+ systemName: Optional[str] = None
1768
+ schemaVersion: Optional[str] = "2022.8.16"
1769
+ """
1770
+ entity's schema version. Used to distinct between different schemas.
1771
+ """
1772
+ isDefault: Optional[bool] = False
1773
+ """
1774
+ Identifies that entity is defaultable
1775
+ """
1776
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1777
+ """
1778
+ names of the pre-processors for this calculation
1779
+ """
1780
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1781
+ """
1782
+ names of the post-processors for this calculation
1783
+ """
1784
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1785
+ """
1786
+ names of the monitors for this calculation
1787
+ """
1788
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1789
+ """
1790
+ names of the results for this calculation
1791
+ """
1792
+ tags: Optional[List[str]] = None
1793
+ """
1794
+ entity tags
1795
+ """
1796
+ statusTrack: Optional[List[StatusTrackItem]] = None
1797
+
1798
+
1799
+ class Type133(Enum):
1800
+ assignment = "assignment"
1801
+
1802
+
1803
+ class AssignmentUnitSchema11(BaseModel):
1804
+ model_config = ConfigDict(
1805
+ extra="allow",
1806
+ )
1807
+ type: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1808
+ """
1809
+ type of the unit
1810
+ """
1811
+ input: List[WorkflowUnitInputSchema]
1812
+ """
1813
+ Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.
1814
+ """
1815
+ operand: str
1816
+ """
1817
+ Name of the global variable. e.g. 'x'
1818
+ """
1819
+ value: Union[str, bool, float]
1820
+ """
1821
+ 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)
1822
+ """
1823
+ field_id: Optional[str] = Field(None, alias="_id")
1824
+ """
1825
+ entity identity
1826
+ """
1827
+ isDraft: Optional[bool] = None
1828
+ name: str
1829
+ """
1830
+ name of the unit. e.g. pw_scf
1831
+ """
1832
+ status: Optional[Status] = None
1833
+ """
1834
+ Status of the unit.
1835
+ """
1836
+ head: Optional[bool] = None
1837
+ """
1838
+ Whether this unit is the first one to be executed.
1839
+ """
1840
+ flowchartId: str
1841
+ """
1842
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1843
+ """
1844
+ next: Optional[str] = None
1845
+ """
1846
+ Next unit's flowchartId. If empty, the current unit is the last.
1847
+ """
1848
+ enableRender: Optional[bool] = None
1849
+ """
1850
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1851
+ """
1852
+ context: Optional[Dict[str, Any]] = None
1853
+ slug: Optional[str] = None
1854
+ """
1855
+ entity slug
1856
+ """
1857
+ systemName: Optional[str] = None
1858
+ schemaVersion: Optional[str] = "2022.8.16"
1859
+ """
1860
+ entity's schema version. Used to distinct between different schemas.
1861
+ """
1862
+ isDefault: Optional[bool] = False
1863
+ """
1864
+ Identifies that entity is defaultable
1865
+ """
1866
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1867
+ """
1868
+ names of the pre-processors for this calculation
1869
+ """
1870
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1871
+ """
1872
+ names of the post-processors for this calculation
1873
+ """
1874
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1875
+ """
1876
+ names of the monitors for this calculation
1877
+ """
1878
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1879
+ """
1880
+ names of the results for this calculation
1881
+ """
1882
+ tags: Optional[List[str]] = None
1883
+ """
1884
+ entity tags
1885
+ """
1886
+ statusTrack: Optional[List[StatusTrackItem]] = None
1887
+ scope: Optional[str] = None
1888
+
1889
+
1890
+ class Type134(Enum):
1891
+ processing = "processing"
1892
+
1893
+
1894
+ class ProcessingUnitSchema11(BaseModel):
1895
+ model_config = ConfigDict(
1896
+ extra="allow",
1897
+ )
1898
+ type: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1899
+ """
1900
+ type of the unit
1901
+ """
1902
+ operation: str
1903
+ """
1904
+ Contains information about the operation used.
1905
+ """
1906
+ operationType: str
1907
+ """
1908
+ Contains information about the specific type of the operation used.
1909
+ """
1910
+ inputData: Any
1911
+ """
1912
+ unit input (type to be specified by the child units)
1913
+ """
1914
+ field_id: Optional[str] = Field(None, alias="_id")
1915
+ """
1916
+ entity identity
1917
+ """
1918
+ isDraft: Optional[bool] = None
1919
+ name: str
1920
+ """
1921
+ name of the unit. e.g. pw_scf
1922
+ """
1923
+ status: Optional[Status] = None
1924
+ """
1925
+ Status of the unit.
1926
+ """
1927
+ head: Optional[bool] = None
1928
+ """
1929
+ Whether this unit is the first one to be executed.
1930
+ """
1931
+ flowchartId: str
1932
+ """
1933
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
1934
+ """
1935
+ next: Optional[str] = None
1936
+ """
1937
+ Next unit's flowchartId. If empty, the current unit is the last.
1938
+ """
1939
+ enableRender: Optional[bool] = None
1940
+ """
1941
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
1942
+ """
1943
+ context: Optional[Dict[str, Any]] = None
1944
+ slug: Optional[str] = None
1945
+ """
1946
+ entity slug
1947
+ """
1948
+ systemName: Optional[str] = None
1949
+ schemaVersion: Optional[str] = "2022.8.16"
1950
+ """
1951
+ entity's schema version. Used to distinct between different schemas.
1952
+ """
1953
+ isDefault: Optional[bool] = False
1954
+ """
1955
+ Identifies that entity is defaultable
1956
+ """
1957
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1958
+ """
1959
+ names of the pre-processors for this calculation
1960
+ """
1961
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
1962
+ """
1963
+ names of the post-processors for this calculation
1964
+ """
1965
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
1966
+ """
1967
+ names of the monitors for this calculation
1968
+ """
1969
+ results: Optional[List[Union[NameResultSchema, str]]] = None
1970
+ """
1971
+ names of the results for this calculation
1972
+ """
1973
+ tags: Optional[List[str]] = None
1974
+ """
1975
+ entity tags
1976
+ """
1977
+ statusTrack: Optional[List[StatusTrackItem]] = None
1978
+
1979
+
1980
+ class Type135(Enum):
1981
+ map = "map"
1982
+
1983
+
1984
+ class Input(BaseModel):
1985
+ target: str
1986
+ """
1987
+ Name of the target variable to substitute using the values below. e.g. K_POINTS
1988
+ """
1989
+ scope: Optional[str] = None
1990
+ """
1991
+ Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.
1992
+ """
1993
+ name: Optional[str] = None
1994
+ """
1995
+ Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.
1996
+ """
1997
+ values: Optional[List[Union[str, float, Dict[str, Any]]]] = None
1998
+ """
1999
+ 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
2000
+ """
2001
+ useValues: Optional[bool] = None
2002
+
2003
+
2004
+ class MapUnitSchema(BaseModel):
2005
+ model_config = ConfigDict(
2006
+ extra="allow",
2007
+ )
2008
+ type: Literal["7#-datamodel-code-generator-#-object-#-special-#"]
2009
+ """
2010
+ type of the unit
2011
+ """
2012
+ workflowId: str
2013
+ """
2014
+ Id of workflow to run inside map
2015
+ """
2016
+ input: Input
2017
+ """
2018
+ Input information for map.
2019
+ """
2020
+ field_id: Optional[str] = Field(None, alias="_id")
2021
+ """
2022
+ entity identity
2023
+ """
2024
+ isDraft: Optional[bool] = None
2025
+ name: str
2026
+ """
2027
+ name of the unit. e.g. pw_scf
2028
+ """
2029
+ status: Optional[Status] = None
2030
+ """
2031
+ Status of the unit.
2032
+ """
2033
+ head: Optional[bool] = None
2034
+ """
2035
+ Whether this unit is the first one to be executed.
2036
+ """
2037
+ flowchartId: str
2038
+ """
2039
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
2040
+ """
2041
+ next: Optional[str] = None
2042
+ """
2043
+ Next unit's flowchartId. If empty, the current unit is the last.
2044
+ """
2045
+ enableRender: Optional[bool] = None
2046
+ """
2047
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
2048
+ """
2049
+ context: Optional[Dict[str, Any]] = None
2050
+ slug: Optional[str] = None
2051
+ """
2052
+ entity slug
2053
+ """
2054
+ systemName: Optional[str] = None
2055
+ schemaVersion: Optional[str] = "2022.8.16"
2056
+ """
2057
+ entity's schema version. Used to distinct between different schemas.
2058
+ """
2059
+ isDefault: Optional[bool] = False
2060
+ """
2061
+ Identifies that entity is defaultable
2062
+ """
2063
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2064
+ """
2065
+ names of the pre-processors for this calculation
2066
+ """
2067
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2068
+ """
2069
+ names of the post-processors for this calculation
2070
+ """
2071
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2072
+ """
2073
+ names of the monitors for this calculation
2074
+ """
2075
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2076
+ """
2077
+ names of the results for this calculation
2078
+ """
2079
+ tags: Optional[List[str]] = None
2080
+ """
2081
+ entity tags
2082
+ """
2083
+ statusTrack: Optional[List[StatusTrackItem]] = None
2084
+
2085
+
2086
+ class Type136(Enum):
2087
+ subworkflow = "subworkflow"
2088
+
2089
+
2090
+ class SubworkflowUnitSchema(BaseModel):
2091
+ model_config = ConfigDict(
2092
+ extra="allow",
2093
+ )
2094
+ type: Literal["8#-datamodel-code-generator-#-object-#-special-#"]
2095
+ """
2096
+ type of the unit
2097
+ """
2098
+ field_id: Optional[str] = Field(None, alias="_id")
2099
+ """
2100
+ entity identity
2101
+ """
2102
+ isDraft: Optional[bool] = None
2103
+ name: str
2104
+ """
2105
+ name of the unit. e.g. pw_scf
2106
+ """
2107
+ status: Optional[Status] = None
2108
+ """
2109
+ Status of the unit.
2110
+ """
2111
+ head: Optional[bool] = None
2112
+ """
2113
+ Whether this unit is the first one to be executed.
2114
+ """
2115
+ flowchartId: str
2116
+ """
2117
+ Identity of the unit in the workflow. Used to trace the execution flow of the workflow.
2118
+ """
2119
+ next: Optional[str] = None
2120
+ """
2121
+ Next unit's flowchartId. If empty, the current unit is the last.
2122
+ """
2123
+ enableRender: Optional[bool] = None
2124
+ """
2125
+ Whether Rupy should attempt to use Jinja templating to add context variables into the unit
2126
+ """
2127
+ context: Optional[Dict[str, Any]] = None
2128
+ slug: Optional[str] = None
2129
+ """
2130
+ entity slug
2131
+ """
2132
+ systemName: Optional[str] = None
2133
+ schemaVersion: Optional[str] = "2022.8.16"
2134
+ """
2135
+ entity's schema version. Used to distinct between different schemas.
2136
+ """
2137
+ isDefault: Optional[bool] = False
2138
+ """
2139
+ Identifies that entity is defaultable
2140
+ """
2141
+ preProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2142
+ """
2143
+ names of the pre-processors for this calculation
2144
+ """
2145
+ postProcessors: Optional[List[Union[NameResultSchema, str]]] = None
2146
+ """
2147
+ names of the post-processors for this calculation
2148
+ """
2149
+ monitors: Optional[List[Union[NameResultSchema, str]]] = None
2150
+ """
2151
+ names of the monitors for this calculation
2152
+ """
2153
+ results: Optional[List[Union[NameResultSchema, str]]] = None
2154
+ """
2155
+ names of the results for this calculation
2156
+ """
2157
+ tags: Optional[List[str]] = None
2158
+ """
2159
+ entity tags
2160
+ """
2161
+ statusTrack: Optional[List[StatusTrackItem]] = None
2162
+
2163
+
2164
+ class WorkflowUnitSchema(
2165
+ RootModel[
2166
+ Union[
2167
+ DataIOUnitSchema11,
2168
+ ReduceUnitSchema11,
2169
+ ConditionUnitSchema11,
2170
+ AssertionUnitSchema11,
2171
+ ExecutionUnitSchemaBase11,
2172
+ AssignmentUnitSchema11,
2173
+ ProcessingUnitSchema11,
2174
+ MapUnitSchema,
2175
+ SubworkflowUnitSchema,
2176
+ ]
2177
+ ]
2178
+ ):
2179
+ root: Union[
2180
+ DataIOUnitSchema11,
2181
+ ReduceUnitSchema11,
2182
+ ConditionUnitSchema11,
2183
+ AssertionUnitSchema11,
2184
+ ExecutionUnitSchemaBase11,
2185
+ AssignmentUnitSchema11,
2186
+ ProcessingUnitSchema11,
2187
+ MapUnitSchema,
2188
+ SubworkflowUnitSchema,
2189
+ ] = Field(..., discriminator="type", title="workflow unit schema")
2190
+
2191
+
2192
+ class WorkflowPropertySchema(BaseModel):
2193
+ name: Name
2194
+ """
2195
+ entity name
2196
+ """
2197
+ subworkflows: List[Subworkflow]
2198
+ """
2199
+ Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting
2200
+ """
2201
+ units: List[WorkflowUnitSchema]
2202
+ """
2203
+ Contains the Units of the Workflow
2204
+ """
2205
+ properties: Optional[List[Union[str, Dict[str, Any]]]] = None
2206
+ """
2207
+ Array of characteristic properties calculated by this workflow (TODO: add enums)
2208
+ """
2209
+ isUsingDataset: Optional[bool] = None
2210
+ """
2211
+ Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.
2212
+ """
2213
+ workflows: Optional[List[Dict[str, Any]]] = None
2214
+ """
2215
+ Array of workflows with the same schema as the current one.
2216
+ """
2217
+ field_id: Optional[str] = Field(None, alias="_id")
2218
+ """
2219
+ entity identity
2220
+ """
2221
+ slug: Optional[str] = None
2222
+ """
2223
+ entity slug
2224
+ """
2225
+ systemName: Optional[str] = None
2226
+ schemaVersion: Optional[str] = "2022.8.16"
2227
+ """
2228
+ entity's schema version. Used to distinct between different schemas.
2229
+ """
2230
+ isDefault: Optional[bool] = False
2231
+ """
2232
+ Identifies that entity is defaultable
2233
+ """
2234
+ metadata: Optional[Dict[str, Any]] = None