code: def _parse_timestamps_in_log_file(lines: Iterable[str]):
      timestamp = None
      next_timestamp = None
      for idx, line in enumerate(lines):
          if line:
              with suppress(Exception):
                  # next_timestamp unchanged if line can't be parsed
                  next_timestamp = _parse_timestamp(line)
              if next_timestamp:
                  timestamp = next_timestamp
              yield timestamp, idx, line
  
imports: from __future__ import annotations
  import inspect
  import logging
  import os
  import warnings
  from contextlib import suppress
  from enum import Enum
  from functools import cached_property
  from pathlib import Path
  from typing import TYPE_CHECKING, Any, Callable, Iterable
  from urllib.parse import urljoin
  import pendulum
  from airflow.configuration import conf
  from airflow.exceptions import AirflowException, RemovedInAirflow3Warning
  from airflow.executors.executor_loader import ExecutorLoader
  from airflow.utils.context import Context
  from airflow.utils.helpers import parse_template_string, render_template_to_string
  from airflow.utils.log.logging_mixin import SetContextPropagate
  from airflow.utils.log.non_caching_file_handler import NonCachingFileHandler
  from airflow.utils.session import create_session
  from airflow.utils.state import State, TaskInstanceState
label_desc: Use image node_id 3 for calling a global function with example usage: _parse_timestamps_in_log_file(lines) without return types