88
99from emmet .core .electronic_structure import BSPathType
1010from emmet .core .mpid import MPID , AlphaID
11- from emmet .core .tasks import TaskDoc
1211from emmet .core .types .enums import ThermoType
1312from emmet .core .vasp .calc_types import CalcType
1413from packaging import version
3837if TYPE_CHECKING :
3938 from typing import Any , Literal
4039
40+ from emmet .core .tasks import CoreTaskDoc
4141 from pymatgen .analysis .phase_diagram import PDEntry
4242 from pymatgen .entries .computed_entries import ComputedEntry
4343
44+
4445DEFAULT_THERMOTYPE_CRITERIA = {"thermo_types" : ["GGA_GGA+U" ]}
4546
4647RESTER_LAYOUT = {
4748 "molecules/core" : LazyImport (
4849 "mp_api.client.routes.molecules.molecules.MoleculeRester"
4950 ),
50- "materials/core" : MATERIALS_RESTERS ["materials" ],
51- ** {
52- f"materials/{ k } " : v
53- for k , v in MATERIALS_RESTERS .items ()
54- if k not in {"materials" , "doi" }
55- },
51+ "materials/core" : LazyImport (
52+ "mp_api.client.routes.materials.materials.MaterialsRester"
53+ ),
54+ ** {f"materials/{ k } " : v for k , v in MATERIALS_RESTERS .items () if k not in {"doi" }},
5655 "doi" : MATERIALS_RESTERS ["doi" ],
57- ** {
58- f"molecules/{ k } " : v
59- for k , v in MOLECULES_RESTERS .items ()
60- if k
61- not in {
62- "molecules" ,
63- }
64- },
56+ ** {f"molecules/{ k } " : v for k , v in MOLECULES_RESTERS .items ()},
6557 ** GENERIC_RESTERS ,
6658}
6759
@@ -1134,22 +1126,21 @@ def get_wulff_shape(self, material_id: str):
11341126
11351127 def get_charge_density_from_task_id (
11361128 self , task_id : str , inc_task_doc : bool = False
1137- ) -> Chgcar | tuple [Chgcar , TaskDoc | dict ] | None :
1129+ ) -> Chgcar | tuple [Chgcar , CoreTaskDoc | dict ] | None :
11381130 """Get charge density data for a given task_id.
11391131
11401132 Arguments:
11411133 task_id (str): A task id
11421134 inc_task_doc (bool): Whether to include the task document in the returned data.
11431135
11441136 Returns:
1145- (Chgcar, (Chgcar, TaskDoc | dict), None): Pymatgen Chgcar object, or tuple with object and TaskDoc
1137+ (Chgcar, (Chgcar, CoreTaskDoc | dict), None): Pymatgen Chgcar object, or tuple with object and CoreTaskDoc
11461138 """
1147- kwargs = dict (
1139+ chgcar = self . materials . tasks . _query_open_data (
11481140 bucket = "materialsproject-parsed" ,
11491141 key = f"chgcars/{ validate_ids ([task_id ])[0 ]} .json.gz" ,
11501142 decoder = lambda x : load_json (x , deser = True ),
1151- )
1152- chgcar = self .materials .tasks ._query_open_data (** kwargs )[0 ][0 ]["data" ]
1143+ )[0 ][0 ]["data" ]
11531144
11541145 if inc_task_doc :
11551146 task_doc = self .materials .tasks .search (task_ids = task_id )[0 ]
@@ -1159,15 +1150,16 @@ def get_charge_density_from_task_id(
11591150
11601151 def get_charge_density_from_material_id (
11611152 self , material_id : str , inc_task_doc : bool = False
1162- ) -> Chgcar | tuple [Chgcar , TaskDoc | dict ] | None :
1153+ ) -> Chgcar | tuple [Chgcar , CoreTaskDoc | dict ] | None :
11631154 """Get charge density data for a given Materials Project ID.
11641155
11651156 Arguments:
11661157 material_id (str): Material Project ID
11671158 inc_task_doc (bool): Whether to include the task document in the returned data.
11681159
11691160 Returns:
1170- (Chgcar, (Chgcar, TaskDoc | dict), None): Pymatgen Chgcar object, or tuple with object and TaskDoc
1161+ (Chgcar, (Chgcar, CoreTaskDoc | dict), None): Pymatgen Chgcar object,
1162+ or tuple with object and CoreTaskDoc
11711163 """
11721164 # TODO: really we want a recommended task_id for charge densities here
11731165 # this could potentially introduce an ambiguity
@@ -1177,7 +1169,7 @@ def get_charge_density_from_material_id(
11771169 if not task_ids :
11781170 return None
11791171
1180- results : list [TaskDoc ] = self .materials .tasks .search (
1172+ results : list [CoreTaskDoc ] = self .materials .tasks .search (
11811173 task_ids = task_ids , fields = ["last_updated" , "task_id" ]
11821174 ) # type: ignore
11831175
0 commit comments