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.
- mat3ra/esse/data/examples.py +1 -1
- mat3ra/esse/data/schemas.py +1 -1
- mat3ra/esse/models/core/abstract/_2d_data.py +2 -2
- mat3ra/esse/models/core/abstract/_2d_plot.py +2 -6
- mat3ra/esse/models/core/primitive/_1d_data_series.py +3 -3
- mat3ra/esse/models/core/primitive/axis_3d_names_enum.py +13 -0
- mat3ra/esse/models/core/reference/__init__.py +8 -8
- mat3ra/esse/models/core/reference/exabyte.py +2 -8
- mat3ra/esse/models/core/reference/experiment/__init__.py +2 -2
- mat3ra/esse/models/core/reusable/coordinate_conditions/__init__.py +1 -78
- mat3ra/esse/models/core/reusable/coordinate_conditions/index.py +80 -0
- mat3ra/esse/models/core/reusable/hubbard_parameters.py +48 -0
- mat3ra/esse/models/core/reusable/kpoint.py +16 -0
- mat3ra/esse/models/core/reusable/repetition.py +14 -0
- mat3ra/esse/models/definitions/material.py +13 -0
- mat3ra/esse/models/element.py +10 -8
- mat3ra/esse/models/job/__init__.py +62 -62
- mat3ra/esse/models/material/__init__.py +12 -12
- mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +80 -80
- mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +80 -80
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +35 -35
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +80 -80
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +53 -53
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +53 -53
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +29 -29
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +32 -32
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +12 -12
- mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +12 -12
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +52 -52
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +32 -32
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +32 -32
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +32 -32
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +1151 -0
- mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +17 -17
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +52 -52
- mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +12 -12
- mat3ra/esse/models/methods_directory/physical/psp/__init__.py +2 -2
- mat3ra/esse/models/methods_directory/physical/psp/file.py +2 -2
- mat3ra/esse/models/methods_directory/physical/psp/file_data_item.py +2 -2
- mat3ra/esse/models/properties_directory/derived_properties.py +6 -6
- mat3ra/esse/models/properties_directory/elemental/atomic_radius.py +1 -1
- mat3ra/esse/models/properties_directory/elemental/electronegativity.py +1 -2
- mat3ra/esse/models/properties_directory/elemental/ionization_potential.py +3 -4
- mat3ra/esse/models/properties_directory/jupyter_notebook_endpoint.py +20 -0
- mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +4 -8
- mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +5 -9
- mat3ra/esse/models/properties_directory/non_scalar/charge_density_profile.py +4 -8
- mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +5 -8
- mat3ra/esse/models/properties_directory/non_scalar/dielectric_tensor.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/file_content.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/final_structure.py +22 -0
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_u.py +4 -4
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_v.py +3 -4
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_v_nn.py +3 -4
- mat3ra/esse/models/properties_directory/non_scalar/is_relaxed.py +22 -0
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +10 -14
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +10 -14
- mat3ra/esse/models/properties_directory/non_scalar/potential_profile.py +8 -12
- mat3ra/esse/models/properties_directory/non_scalar/reaction_energy_profile.py +8 -12
- mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +5 -7
- mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +64 -51
- mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +10 -14
- mat3ra/esse/models/properties_directory/non_scalar/workflow.py +2234 -0
- mat3ra/esse/models/properties_directory/reusable/__init__.py +3 -0
- mat3ra/esse/models/properties_directory/reusable/hubbard_parameters.py +48 -0
- mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +1 -1
- mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +1 -1
- mat3ra/esse/models/properties_directory/scalar/formation_energy.py +1 -1
- mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/pressure.py +3 -4
- mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/surface_energy.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/total_energy.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/total_force.py +3 -4
- mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +3 -3
- mat3ra/esse/models/properties_directory/structural/atomic_forces.py +5 -5
- mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +3 -3
- mat3ra/esse/models/properties_directory/structural/basis/boundary_conditions.py +30 -0
- mat3ra/esse/models/properties_directory/structural/basis/predicted_properties.py +82 -0
- mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +23 -1
- mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +5 -5
- mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +5 -5
- mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +1 -1
- mat3ra/esse/models/properties_directory/structural/patterns/ring.py +1 -1
- mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +1 -1
- mat3ra/esse/models/properties_directory/workflow/convergence/electronic.py +4 -4
- mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +6 -6
- mat3ra/esse/models/property/base.py +1492 -14
- mat3ra/esse/models/property/holder.py +3568 -0
- mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py +3 -0
- mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py +31 -0
- mat3ra/esse/models/property/meta_holder.py +140 -0
- mat3ra/esse/models/property/proto_holder.py +86 -0
- mat3ra/esse/models/property/raw.py +27 -11
- mat3ra/esse/models/property/source.py +26 -3
- mat3ra/esse/models/workflow/__init__.py +54 -54
- mat3ra/esse/models/workflow/base_flow.py +4 -4
- mat3ra/esse/models/workflow/subworkflow/__init__.py +13 -13
- mat3ra/esse/models/workflow/subworkflow/unit.py +10 -10
- mat3ra/esse/models/workflow/unit/__init__.py +12 -12
- mat3ra/esse/models/workflow/unit/io/__init__.py +4 -4
- mat3ra/esse/models/workflow/unit/io/db.py +2 -2
- mat3ra/esse/models/workflow/unit/io/object_storage.py +1 -1
- {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/METADATA +1 -1
- {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/RECORD +122 -103
- mat3ra/esse/models/property/meta.py +0 -200
- {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/WHEEL +0 -0
- {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/licenses/LICENSE.md +0 -0
- {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: property/meta_holder.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Unit(Enum):
|
|
13
|
+
Ry = "Ry"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class AccuracyLevel(Enum):
|
|
17
|
+
standard = "standard"
|
|
18
|
+
low = "low"
|
|
19
|
+
high = "high"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class FieldUsedForSuggestedWavefunctionAndChargeDensityCutoffs(BaseModel):
|
|
23
|
+
unit: Unit
|
|
24
|
+
"""
|
|
25
|
+
Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.
|
|
26
|
+
"""
|
|
27
|
+
accuracy_level: AccuracyLevel
|
|
28
|
+
"""
|
|
29
|
+
Accuracy level determines suggested scalar value.
|
|
30
|
+
"""
|
|
31
|
+
value: float
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: property/meta_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, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat, conint, constr
|
|
11
|
+
|
|
12
|
+
from .Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e import (
|
|
13
|
+
g,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Type(Enum):
|
|
18
|
+
us = "us"
|
|
19
|
+
nc = "nc"
|
|
20
|
+
nc_fr = "nc-fr"
|
|
21
|
+
paw = "paw"
|
|
22
|
+
coulomb = "coulomb"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ExchangeCorrelation(BaseModel):
|
|
26
|
+
approximation: Optional[str] = None
|
|
27
|
+
"""
|
|
28
|
+
DFT approximation
|
|
29
|
+
"""
|
|
30
|
+
functional: Optional[str] = None
|
|
31
|
+
"""
|
|
32
|
+
Exchange correlation functional
|
|
33
|
+
"""
|
|
34
|
+
path: Optional[str] = Field(None, title="category path schema")
|
|
35
|
+
"""
|
|
36
|
+
TODO: Use regex once schema draft version has been updated
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class AtomicOrbitalSchema(BaseModel):
|
|
41
|
+
orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None
|
|
42
|
+
orbitalIndex: Optional[conint(ge=1)] = None
|
|
43
|
+
principalNumber: Optional[conint(ge=1, le=7)] = None
|
|
44
|
+
angularMomentum: Optional[conint(ge=0, le=3)] = None
|
|
45
|
+
occupation: Optional[confloat(ge=0.0, le=14.0)] = None
|
|
46
|
+
"""
|
|
47
|
+
Shell occupation
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class Name(Enum):
|
|
52
|
+
pseudopotential = "pseudopotential"
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class Cutoffs(BaseModel):
|
|
56
|
+
model_config = ConfigDict(
|
|
57
|
+
extra="forbid",
|
|
58
|
+
)
|
|
59
|
+
wavefunction: Optional[List[g.FieldUsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None
|
|
60
|
+
"""
|
|
61
|
+
Energy cutoff values for wavefunction plane wave expansion.
|
|
62
|
+
"""
|
|
63
|
+
density: Optional[List[g.FieldUsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None
|
|
64
|
+
"""
|
|
65
|
+
Energy cutoff values for charge density plane wave expansion.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class FileDataItem(BaseModel):
|
|
70
|
+
element: str
|
|
71
|
+
"""
|
|
72
|
+
chemical element
|
|
73
|
+
"""
|
|
74
|
+
hash: str
|
|
75
|
+
"""
|
|
76
|
+
MD5 hash of the pseudopotential file
|
|
77
|
+
"""
|
|
78
|
+
type: Type
|
|
79
|
+
source: str
|
|
80
|
+
"""
|
|
81
|
+
explains where this came from
|
|
82
|
+
"""
|
|
83
|
+
version: Optional[str] = None
|
|
84
|
+
"""
|
|
85
|
+
explains the version of where this came from
|
|
86
|
+
"""
|
|
87
|
+
exchangeCorrelation: ExchangeCorrelation
|
|
88
|
+
valenceConfiguration: Optional[List[AtomicOrbitalSchema]] = None
|
|
89
|
+
"""
|
|
90
|
+
contains pseudo orbital information, including orbital names and occupations
|
|
91
|
+
"""
|
|
92
|
+
path: str
|
|
93
|
+
"""
|
|
94
|
+
location of the pseudopotential file on filesystem
|
|
95
|
+
"""
|
|
96
|
+
apps: List[str]
|
|
97
|
+
"""
|
|
98
|
+
The names of the simulation engines that can use this pseudopotential, e.g. espresso
|
|
99
|
+
"""
|
|
100
|
+
filename: Optional[str] = None
|
|
101
|
+
"""
|
|
102
|
+
filename of pseudopotential file on filesystem
|
|
103
|
+
"""
|
|
104
|
+
name: Name
|
|
105
|
+
"""
|
|
106
|
+
name of the data category
|
|
107
|
+
"""
|
|
108
|
+
cutoffs: Optional[Cutoffs] = None
|
|
109
|
+
"""
|
|
110
|
+
Suggested cutoff values for wave function and charge density.
|
|
111
|
+
"""
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
class Source(BaseModel):
|
|
115
|
+
type: str
|
|
116
|
+
"""
|
|
117
|
+
Type of the material property's source.
|
|
118
|
+
"""
|
|
119
|
+
info: Optional[Dict[str, Any]] = None
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class MetaPropertyHolderSchema(BaseModel):
|
|
123
|
+
data: FileDataItem
|
|
124
|
+
"""
|
|
125
|
+
container of the information, specific to each property
|
|
126
|
+
"""
|
|
127
|
+
source: Source
|
|
128
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
129
|
+
"""
|
|
130
|
+
entity identity
|
|
131
|
+
"""
|
|
132
|
+
slug: Optional[str] = None
|
|
133
|
+
"""
|
|
134
|
+
entity slug
|
|
135
|
+
"""
|
|
136
|
+
systemName: Optional[str] = None
|
|
137
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
138
|
+
"""
|
|
139
|
+
entity's schema version. Used to distinct between different schemas.
|
|
140
|
+
"""
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: property/proto_holder.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import List, Optional, Union
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, Field
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Name(Enum):
|
|
14
|
+
atomic_constraints = "atomic_constraints"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class AtomicConstraintSchema(BaseModel):
|
|
18
|
+
value: List[bool] = Field(..., title="vector boolean 3d schema")
|
|
19
|
+
"""
|
|
20
|
+
value of this entry
|
|
21
|
+
"""
|
|
22
|
+
id: int
|
|
23
|
+
"""
|
|
24
|
+
integer id of this entry
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class AtomicConstraintsPropertySchema(BaseModel):
|
|
29
|
+
name: Name
|
|
30
|
+
values: List[AtomicConstraintSchema] = Field(..., title="atomic constraints schema")
|
|
31
|
+
"""
|
|
32
|
+
atomic constraints schema
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class Name634(Enum):
|
|
37
|
+
boundary_conditions = "boundary_conditions"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class Type(Enum):
|
|
41
|
+
pbc = "pbc"
|
|
42
|
+
bc1 = "bc1"
|
|
43
|
+
bc2 = "bc2"
|
|
44
|
+
bc3 = "bc3"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class BoundaryConditionsPropertySchema(BaseModel):
|
|
48
|
+
name: Name634
|
|
49
|
+
type: Optional[Type] = "pbc"
|
|
50
|
+
"""
|
|
51
|
+
If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab.
|
|
52
|
+
"""
|
|
53
|
+
offset: float
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class Info(BaseModel):
|
|
57
|
+
materialId: Optional[str] = None
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class Source(BaseModel):
|
|
61
|
+
type: str
|
|
62
|
+
"""
|
|
63
|
+
Type of the material property's source.
|
|
64
|
+
"""
|
|
65
|
+
info: Info
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class ProtoPropertyHolderSchema(BaseModel):
|
|
69
|
+
data: Union[AtomicConstraintsPropertySchema, BoundaryConditionsPropertySchema]
|
|
70
|
+
"""
|
|
71
|
+
container of the information, specific to each property
|
|
72
|
+
"""
|
|
73
|
+
source: Source
|
|
74
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
75
|
+
"""
|
|
76
|
+
entity identity
|
|
77
|
+
"""
|
|
78
|
+
slug: Optional[str] = None
|
|
79
|
+
"""
|
|
80
|
+
entity slug
|
|
81
|
+
"""
|
|
82
|
+
systemName: Optional[str] = None
|
|
83
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
84
|
+
"""
|
|
85
|
+
entity's schema version. Used to distinct between different schemas.
|
|
86
|
+
"""
|
|
@@ -5,13 +5,20 @@
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from enum import Enum
|
|
8
|
-
from typing import Any, Dict, List, Optional
|
|
8
|
+
from typing import Any, Dict, List, Optional, Union
|
|
9
9
|
|
|
10
10
|
from pydantic import BaseModel, Field
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
|
|
13
|
+
class Info(BaseModel):
|
|
14
|
+
jobId: str
|
|
15
|
+
"""
|
|
16
|
+
Job's identity
|
|
17
|
+
"""
|
|
18
|
+
unitId: str
|
|
19
|
+
"""
|
|
20
|
+
Id of the unit that extracted the result
|
|
21
|
+
"""
|
|
15
22
|
|
|
16
23
|
|
|
17
24
|
class Type(Enum):
|
|
@@ -55,7 +62,7 @@ class LocationSchema(BaseModel):
|
|
|
55
62
|
"""
|
|
56
63
|
|
|
57
64
|
|
|
58
|
-
class
|
|
65
|
+
class Type71(Enum):
|
|
59
66
|
literature = "literature"
|
|
60
67
|
|
|
61
68
|
|
|
@@ -65,7 +72,7 @@ class PagesSchema(BaseModel):
|
|
|
65
72
|
|
|
66
73
|
|
|
67
74
|
class LiteratureReferenceSchema(BaseModel):
|
|
68
|
-
type: Optional[
|
|
75
|
+
type: Optional[Type71] = None
|
|
69
76
|
doi: Optional[str] = None
|
|
70
77
|
"""
|
|
71
78
|
Digital Object Identifier of the reference.
|
|
@@ -154,12 +161,24 @@ class InfoForCharacteristicObtainedByExperiment(BaseModel):
|
|
|
154
161
|
"""
|
|
155
162
|
|
|
156
163
|
|
|
164
|
+
class PropertySourceSchema(BaseModel):
|
|
165
|
+
type: Optional[str] = None
|
|
166
|
+
"""
|
|
167
|
+
Type of the material property's source.
|
|
168
|
+
"""
|
|
169
|
+
url: Optional[str] = None
|
|
170
|
+
"""
|
|
171
|
+
Internet address of the reference.
|
|
172
|
+
"""
|
|
173
|
+
info: Union[Info, InfoForCharacteristicObtainedByExperiment]
|
|
174
|
+
|
|
175
|
+
|
|
157
176
|
class SystemTag(Enum):
|
|
158
177
|
isRefined = "isRefined"
|
|
159
178
|
isBest = "isBest"
|
|
160
179
|
|
|
161
180
|
|
|
162
|
-
class
|
|
181
|
+
class PropertyRawSchema(BaseModel):
|
|
163
182
|
slug: Optional[str] = None
|
|
164
183
|
"""
|
|
165
184
|
property slug, e.g. total_energy
|
|
@@ -172,10 +191,7 @@ class SchemaOfMaterialSPreliminaryProperty(BaseModel):
|
|
|
172
191
|
"""
|
|
173
192
|
container of the information, specific to each property
|
|
174
193
|
"""
|
|
175
|
-
source:
|
|
176
|
-
...,
|
|
177
|
-
title="The source of a property. This could be an article, a simulation on Exabyte, an external simulation, etc.",
|
|
178
|
-
)
|
|
194
|
+
source: PropertySourceSchema = Field(..., title="Property source schema")
|
|
179
195
|
exabyteId: Optional[List[str]] = None
|
|
180
196
|
"""
|
|
181
197
|
Id of the corresponding item in the entity bank that this property is obtained for
|
|
@@ -5,11 +5,22 @@
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from enum import Enum
|
|
8
|
-
from typing import Any, Dict, List, Optional
|
|
8
|
+
from typing import Any, Dict, List, Optional, Union
|
|
9
9
|
|
|
10
10
|
from pydantic import BaseModel, Field
|
|
11
11
|
|
|
12
12
|
|
|
13
|
+
class Info(BaseModel):
|
|
14
|
+
jobId: str
|
|
15
|
+
"""
|
|
16
|
+
Job's identity
|
|
17
|
+
"""
|
|
18
|
+
unitId: str
|
|
19
|
+
"""
|
|
20
|
+
Id of the unit that extracted the result
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
|
|
13
24
|
class Type(Enum):
|
|
14
25
|
experiment = "experiment"
|
|
15
26
|
|
|
@@ -51,7 +62,7 @@ class LocationSchema(BaseModel):
|
|
|
51
62
|
"""
|
|
52
63
|
|
|
53
64
|
|
|
54
|
-
class
|
|
65
|
+
class Type78(Enum):
|
|
55
66
|
literature = "literature"
|
|
56
67
|
|
|
57
68
|
|
|
@@ -61,7 +72,7 @@ class PagesSchema(BaseModel):
|
|
|
61
72
|
|
|
62
73
|
|
|
63
74
|
class LiteratureReferenceSchema(BaseModel):
|
|
64
|
-
type: Optional[
|
|
75
|
+
type: Optional[Type78] = None
|
|
65
76
|
doi: Optional[str] = None
|
|
66
77
|
"""
|
|
67
78
|
Digital Object Identifier of the reference.
|
|
@@ -148,3 +159,15 @@ class InfoForCharacteristicObtainedByExperiment(BaseModel):
|
|
|
148
159
|
"""
|
|
149
160
|
references to literature articles
|
|
150
161
|
"""
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
class PropertySourceSchema(BaseModel):
|
|
165
|
+
type: Optional[str] = None
|
|
166
|
+
"""
|
|
167
|
+
Type of the material property's source.
|
|
168
|
+
"""
|
|
169
|
+
url: Optional[str] = None
|
|
170
|
+
"""
|
|
171
|
+
Internet address of the reference.
|
|
172
|
+
"""
|
|
173
|
+
info: Union[Info, InfoForCharacteristicObtainedByExperiment]
|