def _render_log_id(self, ti: TaskInstance, try_number: int) -> str: dag_run = ti.get_dagrun() dag = ti.task.dag assert dag is not None # For Mypy. try: data_interval: Tuple[datetime, datetime] = dag.get_run_data_interval(dag_run) except AttributeError: # ti.task is not always set. data_interval = (dag_run.data_interval_start, dag_run.data_interval_end) if self.json_format: data_interval_start = self._clean_date(data_interval[0]) data_interval_end = self._clean_date(data_interval[1]) execution_date = self._clean_date(dag_run.execution_date) else: if data_interval[0]: data_interval_start = data_interval[0].isoformat() else: data_interval_start = "" if data_interval[1]: data_interval_end = data_interval[1].isoformat() else: data_interval_end = "" execution_date = dag_run.execution_date.isoformat() return self.log_id_template.format( dag_id=ti.dag_id, task_id=ti.task_id, run_id=getattr(ti, "run_id", ""), data_interval_start=data_interval_start, data_interval_end=data_interval_end, execution_date=execution_date, try_number=try_number, map_index=ti.map_index, )
def render_log_filename( self, ti: TaskInstance, try_number: Optional[int] = None, *, session: Session = NEW_SESSION, ): """ Renders the log attachment filename :param ti: The task instance :param try_number: The task try number :rtype: str """ dagrun = ti.get_dagrun(session=session) attachment_filename = render_log_filename( ti=ti, try_number="all" if try_number is None else try_number, filename_template=dagrun.get_log_filename_template( session=session), ) return attachment_filename