|
19 | 19 | pass |
20 | 20 |
|
21 | 21 |
|
| 22 | +def _get_available_properties(atoms: ase.Atoms) -> list[str]: |
| 23 | + available_properties = list(atoms.arrays.keys()) |
| 24 | + available_properties += list(atoms.info.keys()) |
| 25 | + if atoms.calc is not None: |
| 26 | + available_properties += list(atoms.calc.results.keys()) |
| 27 | + return available_properties |
| 28 | + |
| 29 | + |
22 | 30 | log = logging.getLogger(__name__) |
23 | 31 |
|
24 | 32 |
|
@@ -130,10 +138,7 @@ class Properties2D(AnaylsisMethod): |
130 | 138 | def model_json_schema_from_atoms(cls, atoms: ase.Atoms) -> dict: |
131 | 139 | schema = cls.model_json_schema() |
132 | 140 |
|
133 | | - available_properties = list(atoms.arrays.keys()) |
134 | | - available_properties += list(atoms.info.keys()) |
135 | | - if atoms.calc is not None: |
136 | | - available_properties += list(atoms.calc.results.keys()) # global ATOMS object |
| 141 | + available_properties = _get_available_properties(atoms) |
137 | 142 |
|
138 | 143 | available_properties += ["step"] |
139 | 144 | schema["properties"]["x_data"]["enum"] = available_properties |
@@ -195,10 +200,7 @@ class ForceCorrelation(AnaylsisMethod): |
195 | 200 | def model_json_schema_from_atoms(cls, atoms: ase.Atoms) -> dict: |
196 | 201 | schema = cls.model_json_schema() |
197 | 202 |
|
198 | | - available_properties = list(atoms.arrays.keys()) |
199 | | - available_properties += list(atoms.info.keys()) |
200 | | - if atoms.calc is not None: |
201 | | - available_properties += list(atoms.calc.results.keys()) |
| 203 | + available_properties = _get_available_properties(atoms) |
202 | 204 | schema["properties"]["x_data"]["enum"] = available_properties |
203 | 205 | schema["properties"]["y_data"]["enum"] = available_properties |
204 | 206 |
|
@@ -254,11 +256,7 @@ class Properties1D(AnaylsisMethod): |
254 | 256 | def model_json_schema_from_atoms(cls, atoms: ase.Atoms) -> dict: |
255 | 257 | schema = cls.model_json_schema() |
256 | 258 |
|
257 | | - available_properties = list(atoms.arrays.keys()) |
258 | | - available_properties += list(atoms.info.keys()) |
259 | | - if atoms.calc is not None: |
260 | | - available_properties += list(atoms.calc.results.keys()) |
261 | | - log.critical(f"AVAILABLE PROPERTIES: {available_properties=}") |
| 259 | + available_properties = _get_available_properties(atoms) |
262 | 260 | schema["properties"]["value"]["enum"] = available_properties |
263 | 261 |
|
264 | 262 | return schema |
|
0 commit comments