code: def open_final_ddb(self):
          
          ddb_path = self.outdir.has_abiext("DDB")
          if not ddb_path:
              if self.status == self.S_OK:
                  logger.critical("%s reached S_OK but didn't produce a GSR file in %s" % (self, self.outdir))
              return None
  
          from abipy.dfpt.ddb import DdbFile
          try:
              return DdbFile(ddb_path)
          except Exception as exc:
              logger.critical("Exception while reading DDB file at %s:\n%s" % (ddb_path, str(exc)))
              return None
docs: Open the DDB file located in the output directory of the flow.
  
          Return:
              :class:`DdbFile` object, None if file could not be found or file is not readable.