33from datetime import datetime
44from typing import TYPE_CHECKING
55
6+ from emmet .core .mpid import MPID , AlphaID
67from emmet .core .tasks import CoreTaskDoc
78
89from mp_api .client .core import BaseRester , MPRestError
910from mp_api .client .core .utils import validate_ids
1011
1112if TYPE_CHECKING :
13+ from typing import Any
14+
1215 from pydantic import BaseModel
1316
1417
@@ -17,17 +20,21 @@ class TaskRester(BaseRester):
1720 document_model : type [BaseModel ] = CoreTaskDoc # type: ignore
1821 primary_key : str = "task_id"
1922
20- def get_trajectory (self , task_id ) :
23+ def get_trajectory (self , task_id : MPID | AlphaID | str ) -> list [ dict [ str , Any ]] :
2124 """Returns a Trajectory object containing the geometry of the
2225 material throughout a calculation. This is most useful for
2326 observing how a material relaxes during a geometry optimization.
2427
2528 Args:
26- task_id (str): Task ID
29+ task_id (str, MPID, AlphaID ): Task ID
2730
31+ Returns:
32+ list of dict representing emmet.core.trajectory.Trajectory
2833 """
2934 traj_data = self ._query_resource_data (
30- {"task_ids" : [task_id ]}, suburl = "trajectory/" , use_document_model = False
35+ {"task_ids" : [AlphaID (task_id ).string ]},
36+ suburl = "trajectory/" ,
37+ use_document_model = False ,
3138 )[0 ].get (
3239 "trajectories" , None
3340 ) # type: ignore
0 commit comments