code: def _get_combined_start_end_times(
      metadata_objects: Iterable[Mapping],
  ) -> tuple[datetime | None, datetime | None]:
      """Get the start and end times attributes valid for the entire dataset series."""
      start_time = None
      end_time = None
      for md_obj in metadata_objects:
          if "start_time" in md_obj and (
              start_time is None or md_obj["start_time"] < start_time
          ):
              start_time = md_obj["start_time"]
          if "end_time" in md_obj and (
              end_time is None or md_obj["end_time"] > end_time
          ):
              end_time = md_obj["end_time"]
      return start_time, end_time
  
file_path: satpy/satpy/multiscene/_blend_funcs.py
imports: from __future__ import annotations
  from datetime import datetime
  from typing import Callable, Iterable, Mapping, Optional, Sequence
  import pandas
  import xarray
  from dask import array
  from satpy.dataset import combine_metadata
label_desc: Use image node_id 9 for calling a global function with example usage: _get_combined_start_end_times(metadata_objects) and returns: start_time,  end_time