class_docstr: File handler for the IASI L2 SO2 BUFR product.
class_docstr_tok: ["File","handler","for","the","IASI","L2","SO2","BUFR","product","."]
docstr: Get the first and last date from the bufr file.
docstr_tok: ["Get","the","first","and","last","date","from","the","bufr","file","."]
code: def get_start_end_date(self):
      """Get the first and last date from the bufr file."""
      fh = open(self.filename, "rb")
      i = 0
      while True:
          # get handle for message
          bufr = ec.codes_bufr_new_from_file(fh)
          if bufr is None:
              break
          ec.codes_set(bufr, "unpack", 1)
          year = ec.codes_get(bufr, "year")
          month = ec.codes_get(bufr, "month")
          day = ec.codes_get(bufr, "day")
          hour = ec.codes_get(bufr, "hour")
          minute = ec.codes_get(bufr, "minute")
          second = ec.codes_get(bufr, "second")
  
          obs_time = datetime(
              year=year,
              month=month,
              day=day,
              hour=hour,
              minute=minute,
              second=second,
          )
  
          if i == 0:
              start_time = obs_time
  
          ec.codes_release(bufr)
  
          i += 1
  
      end_time = obs_time
  
      fh.close()
  
      return start_time, end_time
  
file_path: satpy/satpy/readers/iasi_l2_so2_bufr.py
imports: import logging
  from datetime import datetime
  import dask.array
  import numpy
  import xarray
  from satpy.readers.file_handlers import BaseFileHandler
  from satpy.utils import get_legacy_chunk_size
label_desc: Use image node_id 5 for calling the IASIL2SO2BUFR obj's underlying member method code with example usage: obj.get_start_end_date() and returns: start_time,  end_time