class_docstr: Timetable that never schedules anything.
  
  This should not be directly used anywhere, but only set if a DAG is triggered by datasets.
  
  :meta private:
code: def data_interval_for_events(
      self,
      logical_date: DateTime,
      events: Collection[DatasetEvent],
  ) -> DataInterval:
      if not events:
          return DataInterval(logical_date, logical_date)
  
      start = min(
          events,
          key=operator.attrgetter("source_dag_run.data_interval_start"),
      ).source_dag_run.data_interval_start
      end = max(
          events,
          key=operator.attrgetter("source_dag_run.data_interval_end"),
      ).source_dag_run.data_interval_end
      return DataInterval(start, end)
  
imports: from __future__ import annotations
  import operator
  from typing import TYPE_CHECKING, Any, Collection
  from pendulum import DateTime
  from airflow.timetables.base import DagRunInfo, DataInterval, Timetable
label_desc: Use image node_id 3 for calling the DatasetTriggeredTimetable obj's underlying member method code with example usage: obj.data_interval_for_events(logical_date, events) and returns: DataInterval, DataInterval