1010
1111import logging
1212
13+ from datetime import datetime
1314from typing import Dict , List , Optional
1415from logging import Logger
1516
@@ -84,7 +85,9 @@ def __init__(self,
8485 avg_power : Optional [float ] = None ,
8586 priority : Optional [int ] = None ,
8687 files : Optional [List [File ]] = None ,
87- logger : Optional [Logger ] = None
88+ logger : Optional [Logger ] = None ,
89+ launch_dir : Optional [str ] = None ,
90+ start_time : Optional [str ] = None ,
8891 ) -> None :
8992 """A task in a workflow."""
9093 self .logger : Logger = logging .getLogger (
@@ -106,7 +109,8 @@ def __init__(self,
106109 self .files : List [File ] = files if files else []
107110 self .machine : Machine = machine
108111 self .priority : Optional [int ] = priority
109-
112+ self .launch_dir : Optional [str ] = launch_dir
113+ self .start_time : Optional [str ] = str (datetime .now ().astimezone ().isoformat ()) if not start_time else start_time
110114 self .logger .debug (
111115 f"created { self .type } task { self .name } : runtime => { self .runtime } seconds." )
112116
@@ -156,5 +160,8 @@ def as_dict(self) -> Dict:
156160 task_obj ['command' ]['arguments' ] = self .args
157161 if self .machine is not None :
158162 task_obj ['machine' ] = self .machine .name
159-
163+ if self .launch_dir :
164+ task_obj ['launchDir' ] = self .launch_dir
165+ if self .start_time :
166+ task_obj ['startedAt' ] = self .start_time
160167 return task_obj
0 commit comments